sqlmap tamper模块

本文详细介绍SQLMap中58个内置脚本的功能,包括如何通过各种编码、注释及字符替换策略绕过Web应用防火墙(WAF),适用于SQL注入攻击场景下的渗透测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知,sqlmap中自带有过waf的脚本以方便测试人员来测试,但我们实际用的并不是很多,而且了解也不多,故而整理一份出来,目前官方自带了58个脚本,目前我的是。。。

space2mssqlblank.py:
将空格随机替换为其他空格符号,内有规则,默认是%01-%0f

select id from users-->select%02id%0efrom%09users

between.py
用NOT BETWEEN 0 AND 替换>

and a > b -- --> and a NOT BETWEEN 0 AND b--

sp_password.py
从T-SQL日志的自动迷糊处理的有效载荷中追加sp_password

and 1=1--  --> and 1=1-- sp_password

charencode.py
对于payload全部字符进行url编码,不处理已编码字符,这里顺便说下一般在url编码过waf的时候,我们会将payload来两次全编码,这样对那些只解码一次的waf还是有点杀伤力的。

and 1=1-- --> %61%6e%64%20%31%3d%31%2d%2d

randomcase.py
随即大小写

select --> sELecT

percentage.py
每个字符前加%

select id -->%s%e%l%e%c%t %i%d

charunicodeencode.py
字符串的unicode编码

SELECT FIELD%20FROM TABLE --> %u0053%u0045%u004C%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004C%u0044%u0020%u0046%u0052%u004F%u004D%u0020%u0054%u0041%u0042%u004C%u0045

space2comment.py
空格替换为/**/

and 1=1 --> and/**/1=1

equaltolike.py
将=替换为like

and 1=1 -->and 1 LIKE 1

apostrophemask.py
将引号替换为utf-8编码,用于过滤单引号

AND '1'='1 --> AND %EF%BC%871%EF%BC%87=%EF%BC%871

我开始懒了,代码示例要是不是很复杂我就不再举例了阿

base64encode.py
payload进行base64编码

multiplespaces.py
围绕关键字添加几个空格,这个用处不是太大,看看就行

space2plus.py
空格替换为+号,sql语句中语句之间可以用+号连接起来的,故而空格可以此替换

nonrecursivereplacement.py
这个也用处并不大,主要双写查询关键字,现在很鸡肋

space2randomblank.py
替换空格为有效字符%09 %0C %0D %0A

unionalltounion.py
将union all select去掉all,感觉很少用的

securesphere.py
追加特定字符串

and 1=1 --> and 1=1 and "xuanying"="xuanying"

space2dash.py
将空格用–代替,并且添加随即字符串最后加换行符

equaltolike.py
greatest代替>号

and 2>1 -->and greatest(2,1+1)=2

ifnull2ifisnull.py
ifnull(a,b)替换为IF(ISNULL(a),b,a)

IFNULL(1, 2) --> IF(ISNULL(1),2,1)

modsecurityversioned.py
众所周知的内联注释模块,不用多说了

space2mysqlblank.py
替换空格为其他符号

modsecurityzeroversioned.py
还是内联注释,不过是从内联注释的随机字符变为0000

space2mysqldash.py
空格替换为–后跟换行符

bluecoat.py
在payload的随机空格处使用空白符号并且用LIKE替换=号

versionedkeywords.py
将payload中查询语句用内联注释

1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(5,2) --> 1/*!UNION*//*!ALL*//*!SELECT*//*!NULL*/,/*!NULL*/, CONCAT(CHAR(5,2)

halfversionedmorekeywords.py
每一个关键字前添加mysql版本注释

UNION --> /*!0UNION/

space2morehash.py
空格替换为# 并且加随机字符串后跟换行符

apostrophenullencode.py
非法双字节unicode字符替换单引号

appendnullbyte.py
payload结束后加null编码,null我记得默认为0,所以最后加的基本就是%00

chardoubleencode.py
之前提到的两次url编码,可以对部分之解码一次的waf无视

unmagicquotes.py
用一个多字节组合%bf%27和替换单引号并且末尾添加注释符号–

randomcomments.py
使用/**/注释来分割关键函数

累了,暂时到这吧,剩下的就下次一定吧,不早了要养生了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值