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

ops/2025/2/27 19:33:12/

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.ppmy.cn/ops/161759.html

相关文章

计算机毕设-基于springboot的仁和机构的体检预约系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

视频字幕识别和翻译

下载的视频很多不是汉语的,我们需要用剪映将语音识别出来作为字幕压制到视频中去。 剪映6.0以后语音识别需要收费,但是低版本还是没有问题。 如果想要非汉语字幕转成中文,剪映低版本不提供这样功能。但是,用剪映导出识别字幕&am…

取消票证会把指定的票证从数据库中删除,同时也会把票证和航班 等相关表中的关联关系一起删除。但在删除之前,它会先检查当前用户是否拥有这张票

在做航班智能客服问答系统时会遇到取消票证的场景,这里涉及数据库的操作时会把指定的票证从数据库中删除,同时也会把票证和航班等相关表中的关联关系一起删除。但在删除之前,需要先检查当前用户是否拥有这张票,只有票主才有权限取…

前端面试真题 2025最新版

文章目录 写在前文CSS怪异盒模型JS闭包闭包的形成闭包注意点 CSS选择器及优先级优先级 说说flex布局及相关属性Flex 容器相关属性:Flex 项目相关属性 响应式布局如何实现是否用过tailwindcss,有哪些好处好处缺点 说说对象的 prototype属性及原型说说 pro…

使用 Three.js 转换 GLSL 粒子效果着色器

大家好!我是 [数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | AI…

JavaScript AJAX 库

注意&#xff1a;如果正在寻找可与React一起使用的AJAX库&#xff0c;请参阅React 的 AJAX 库。 这就是没有库来简化它的 AJAX 的样子。 <!DOCTYPE html> <!-- basic_ajax.html --> <html lang"en"> <head> <meta charset"UTF…

Python基于Flask的豆瓣Top250电影数据可视化分析与评分预测系统(附源码,技术说明)

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

网络原理---HTTP/HTTPS

通过之前的网络编程&#xff0c;我们已经初步了解UDP和TCP的基本实现方法&#xff0c;接下来我们对其进一步的学习。 在网络编程中&#xff1a; 1.读和写数据通过Socket&#xff0c;通过Socket内置的InputStream和OutputStream(读写的基本单位都是字节&#xff09;。2.当在编…