批量查找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 配置步骤
- 在BurpSuite中启用请求日志记录(Project Options→Misc)
- 浏览目标网站,Burp自动记录请求到日志文件
- 使用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 使用流程
- 设置线程数、关键字类型
- 可导入自定义关键字列表
- 开始扫描生成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注入漏洞,同时开发人员也能了解如何更好地防范此类安全风险。