当前位置: 首页 > article >正文

【SQLI】sqlmap测试过滤规则和tamper有效性的方法

sqlmap测试过滤和tamper有效性的方法

  • 1. 检测被过滤的字符或关键字
  • 2. 测试有效的 Tamper 脚本
  • 3. 自动化过滤检测
  • 4. 自定义 Tamper 脚本
  • 示例命令总结
  • 注意事项

使用 sqlmap 测试过滤规则和确定有效 tamper 脚本的步骤如下:


1. 检测被过滤的字符或关键字

方法一:使用 --level--risk

  • --level:控制测试的复杂度(1-5),级别越高,测试的 payload 和参数范围越广。
  • --risk:控制风险等级(1-3),风险越高,测试的侵入性越强。
    sqlmap -u "http://example.com/page?id=1" --level=5 --risk=3
    
    通过观察 sqlmap 的报错或响应,判断哪些字符或关键字被过滤(如单引号、UNIONSELECT 等)。

方法二:手动测试关键字符

  • 在目标参数中手动添加常见敏感字符(如 '"#--//UNION 等),观察响应是否有过滤提示(如 403 或 WAF 拦截页面):
    sqlmap -u "http://example.com/page?id=1'" -v 3
    
    使用 -v 3 显示 HTTP 请求payload详情,查看是否被过滤。

方法三:分析服务器错误

  • 使用 --parse-errors 解析服务器返回的错误信息,判断过滤规则:
    sqlmap -u "http://example.com/page?id=1" --parse-errors
    

2. 测试有效的 Tamper 脚本

步骤 1:列出所有 Tamper 脚本

sqlmap --list-tampers

步骤 2:常用 Tamper 组合

  • 根据过滤规则选择 Tamper(如空格过滤、关键字过滤等):
    sqlmap -u "http://example.com/page?id=1" --tamper=space2comment,randomcase,unmagicquotes
    
    常见场景:
    • 过滤空格:space2comment(用 /**/ 代替空格)
    • 过滤关键字:randomcase(随机大小写)、equaltolike=LIKE
    • 过滤引号:charencode(URL 编码)、unmagicquotes(绕过 magic_quotes

步骤 3:调试 Tamper 有效性

  • 使用 --proxy 配合 Burp Suite 查看请求详情:
    sqlmap -u "http://example.com/page?id=1" --tamper=space2comment --proxy=http://127.0.0.1:8080
    
    通过 Burp Suite 观察 Tamper 修改后的请求是否被拦截。

步骤 4:多 Tamper 组合测试

sqlmap -u "http://example.com/page?id=1" --tamper=between,randomcase,space2comment

3. 自动化过滤检测

使用 --test-filter

  • 仅测试特定 payload 类型(如 boolean_blind):
    sqlmap -u "http://example.com/page?id=1" --test-filter=boolean_blind
    

使用 --alert

  • 当注入成功时触发外部命令(如记录有效 Tamper):
    sqlmap -u "http://example.com/page?id=1" --tamper=space2comment --alert="echo Success >> log.txt"
    

4. 自定义 Tamper 脚本

如果内置 Tamper 无效,可编写自定义脚本(Python):

  1. 参考 tamper/ 目录下的模板。
  2. 保存为 custom_tamper.py
  3. 使用 --tamper=custom_tamper 调用。

示例命令总结

# 检测过滤字符
sqlmap -u "http://example.com/page?id=1" --level=5 --risk=3 -v 3

# 测试 Tamper 绕过
sqlmap -u "http://example.com/page?id=1" --tamper=space2comment,randomcase --proxy=http://127.0.0.1:8080

注意事项

  1. 合法授权:确保测试目标在授权范围内。
  2. 日志分析:通过 -t sqlmap.log 记录日志,方便后续分析。

http://www.kler.cn/a/560023.html

相关文章:

  • 《Netty 基础:构建高性能网络应用的基石》
  • 华山论剑之JAVA中的“方法论”
  • 嵌入式学习第二十一天--线程
  • 基于CNN的FashionMNIST数据集识别3——模型验证
  • Java多线程与高并发专题——深入synchronized
  • PythonWeb开发框架—Django之DRF框架的使用详解
  • ai-1、人工智能概念与学习方向
  • 商业化运作的“日记”
  • system运行进程以及应用场景
  • 【Python爬虫(61)】Python金融数据挖掘之旅:从爬取到预测
  • 【odoo18-文件管理】在uniapp上访问odoo系统上的图片
  • 第二个接口-分页查询
  • 网站快速收录:如何优化网站图片Alt标签?
  • 如何安装vm和centos
  • 基于 IMX6ULL 的环境监测自主调控系统
  • github如何创建空文件夹
  • 图像处理篇---图像处理中常见参数
  • 基础学科与职业教育“101计划”:推动教育创新与人才培养
  • Windows逆向工程入门之逻辑运算指令解析与应用
  • 湖北中医药大学谱度众合(武汉)生命科技有限公司研究生工作站揭牌