批量查找SQL注入小技巧
字数 1281 2025-08-18 11:39:11

批量查找SQL注入漏洞技术指南

1. SQL注入概述

SQL注入是一种将恶意SQL命令注入到后台数据库执行的安全漏洞,攻击者可以利用应用程序对用户输入数据过滤不严的缺陷,欺骗数据库服务器执行非授权操作。

1.1 漏洞原理

  • 应用程序对用户输入数据的合法性缺乏判断或过滤不严
  • 攻击者可以在预定义查询语句后添加额外SQL命令
  • 导致数据库执行非预期的任意查询,获取敏感数据

2. 批量查找SQL注入方法

2.1 Google Hacking技术

2.1.1 常用搜索语法

inurl:Post.php?id=
inurl:asp?id=
inurl:Show.asp?Id=

2.1.2 关键词列表

  • 在等号后添加数字构造搜索关键词
  • 示例:inurl:".php?id=1"

2.2 Sqlmap自动化检测

2.2.1 基本批量检测命令

sqlmap.py -m c:/1.txt --batch
  • -m:批量检测注入
  • c:/1.txt:包含URL列表的文本文件
  • --batch:使用所有默认配置

2.2.2 实用技巧

  • 长时间卡顿时按Ctrl+C,输入X选择next target
  • 对多参数注入提示选择No以节省时间

2.2.3 集成Google搜索

sqlmap.py -g "inurl:\".php?id=1\""
  • 通过代理使用Google:
sqlmap.py -g "inurl:\".php?id=1\"" --proxy http://127.0.0.1:1080

2.3 BurpSuite与Sqlmap结合

2.3.1 配置步骤

  1. 在BurpSuite中启用请求日志记录(Project Options→Misc)
  2. 浏览目标网站,Burp自动记录请求到日志文件
  3. 使用Sqlmap扫描日志:
sqlmap.py -l 文件名 --batch -smart

2.3.2 参数说明

  • -l:指定日志文件
  • -smart:启发式快速判断

2.4 专用工具批量扫描

2.4.1 傀儡URL采集器

  • 基于Java环境
  • 支持多种注入方式扫描:
    • Access显错扫描
    • Mysql显错扫描
    • Mssql显错扫描
    • And数字/字符注入
    • Xor注入测试
    • Svn源代码泄露
    • 备份扫描

2.4.2 使用流程

  1. 设置线程数、关键字类型
  2. 可导入自定义关键字列表
  3. 开始扫描生成URL列表
  4. 导出URL后使用Sqlmap二次检测

2.5 URL预处理

2.5.1 必要性

  • 批量获取的URL可能存在大量无响应地址
  • 需要过滤掉无效URL提高检测效率

2.5.2 实现方法

  • 使用Python脚本批量检测URL存活性
  • 保留响应正常的URL进行后续扫描

3. 实用技巧与注意事项

  1. CNVD漏洞提交策略

    • 追求数量而非深度
    • 发现一个注入点即可提交
    • 不必深入测试所有参数
  2. 效率优化

    • 合理设置线程数
    • 及时终止无响应目标的检测
    • 使用-smart参数加速判断
  3. 关键字扩展

    • 收集整理各类注入点特征
    • 建立自定义关键字库
    • 定期更新关键字列表
  4. 代理使用

    • 配置代理解决Google访问问题
    • 注意代理稳定性对扫描的影响

4. 防御建议

  1. 输入验证

    • 严格过滤用户输入
    • 使用参数化查询
  2. 最小权限原则

    • 数据库账户使用最低必要权限
  3. 错误处理

    • 避免显示详细错误信息
    • 使用自定义错误页面
  4. 安全审计

    • 定期进行代码审计
    • 使用自动化工具扫描漏洞
  5. WAF防护

    • 部署Web应用防火墙
    • 配置SQL注入防护规则

通过以上方法和技术,安全研究人员可以高效地批量发现SQL注入漏洞,同时开发人员也能了解如何更好地防范此类安全风险。

批量查找SQL注入漏洞技术指南 1. SQL注入概述 SQL注入是一种将恶意SQL命令注入到后台数据库执行的安全漏洞,攻击者可以利用应用程序对用户输入数据过滤不严的缺陷,欺骗数据库服务器执行非授权操作。 1.1 漏洞原理 应用程序对用户输入数据的合法性缺乏判断或过滤不严 攻击者可以在预定义查询语句后添加额外SQL命令 导致数据库执行非预期的任意查询,获取敏感数据 2. 批量查找SQL注入方法 2.1 Google Hacking技术 2.1.1 常用搜索语法 2.1.2 关键词列表 在等号后添加数字构造搜索关键词 示例: inurl:".php?id=1" 2.2 Sqlmap自动化检测 2.2.1 基本批量检测命令 -m :批量检测注入 c:/1.txt :包含URL列表的文本文件 --batch :使用所有默认配置 2.2.2 实用技巧 长时间卡顿时按 Ctrl+C ,输入 X 选择 next target 对多参数注入提示选择 No 以节省时间 2.2.3 集成Google搜索 通过代理使用Google: 2.3 BurpSuite与Sqlmap结合 2.3.1 配置步骤 在BurpSuite中启用请求日志记录(Project Options→Misc) 浏览目标网站,Burp自动记录请求到日志文件 使用Sqlmap扫描日志: 2.3.2 参数说明 -l :指定日志文件 -smart :启发式快速判断 2.4 专用工具批量扫描 2.4.1 傀儡URL采集器 基于Java环境 支持多种注入方式扫描: Access显错扫描 Mysql显错扫描 Mssql显错扫描 And数字/字符注入 Xor注入测试 Svn源代码泄露 备份扫描 2.4.2 使用流程 设置线程数、关键字类型 可导入自定义关键字列表 开始扫描生成URL列表 导出URL后使用Sqlmap二次检测 2.5 URL预处理 2.5.1 必要性 批量获取的URL可能存在大量无响应地址 需要过滤掉无效URL提高检测效率 2.5.2 实现方法 使用Python脚本批量检测URL存活性 保留响应正常的URL进行后续扫描 3. 实用技巧与注意事项 CNVD漏洞提交策略 : 追求数量而非深度 发现一个注入点即可提交 不必深入测试所有参数 效率优化 : 合理设置线程数 及时终止无响应目标的检测 使用 -smart 参数加速判断 关键字扩展 : 收集整理各类注入点特征 建立自定义关键字库 定期更新关键字列表 代理使用 : 配置代理解决Google访问问题 注意代理稳定性对扫描的影响 4. 防御建议 输入验证 : 严格过滤用户输入 使用参数化查询 最小权限原则 : 数据库账户使用最低必要权限 错误处理 : 避免显示详细错误信息 使用自定义错误页面 安全审计 : 定期进行代码审计 使用自动化工具扫描漏洞 WAF防护 : 部署Web应用防火墙 配置SQL注入防护规则 通过以上方法和技术,安全研究人员可以高效地批量发现SQL注入漏洞,同时开发人员也能了解如何更好地防范此类安全风险。