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

【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 记录日志,方便后续分析。

相关文章:

  • 【MySQL】:四大排名函数
  • C++蓝桥杯基础篇(五)
  • 003 SpringBoot集成Kafka操作
  • 单细胞肿瘤细胞识别机器学习研究
  • 动态数据表格:基于 PrimeFaces 的运行时列选择实现
  • 【react】TypeScript在react中的使用
  • ArcGIS JS API之ExtrudeSymbol3DLayer实现白膜效果
  • Java23种设计模式案例
  • 蓝桥杯 5.字符串
  • 【大数据】LSM树,专为海量数据读写而生的数据结构
  • MyBatis-Plus 核心设计原理
  • 基于springboot+vue的拼夕夕商城
  • LeetCode 1472.设计浏览器历史记录:一个数组完成模拟,单次操作均O(1)
  • 如何看到 git 上打 tag 的时间
  • springboot酒店管理系统的设计与实现
  • Unity最新详细下载安装教程【附安装包】
  • Java web后端转Java游戏后端
  • centos设置 sh脚本开机自启动
  • 【C++】引用
  • kafka-leader -1问题解决
  • 兰州市解封最新消息/seo服务建议
  • 水磨沟区做网站的/国际新闻最新
  • 网站建设 网站制作/seo交流群
  • ps怎么做网站模板/网站浏览器
  • 如何做wap网站/百度官方
  • 怎样说服企业做网站建设推广/郑州网站建设最便宜