三、SQLMAP自带绕过脚本tamper的讲解


三、SQLMAP自带绕过脚本tamper的讲解

sqlmap在默认情况下除了使用CHAR()函数防止出现单引号,没有对注入的数据进行修改,还可以使用--tamper参数对数据做修改来绕过WAF等设备,其中大部分脚本主要用正则模块替代攻击载荷字符编码的方式来绕过WAF的检测规则。

sqlmap.py   xxxx --tampet ”模块名“

目前官方提供53个绕过脚本,在日常使用中,我们会对一些网站是否有安全防护(WAF/IDS/IPS)进行试探,可以使用参数--identify-waf进行检测。下面介绍一些常用的tamper脚本。

1apostrophemask.py :将引号替换为UTF-8,用于过滤单引号。

2base64encode.py :替换为base64编码。

3multiplespaces.py:围绕SQL关键字添加多个空格。

4space2plus.py:+号替换为空格。

5nonrecursivereplacement.py:作为双重查询语句,用双重语句替代预定义的SQL关键字(适用于非常弱的自定义过滤器,例如将SELECT替换为空)。

6space2randomblank.py:将空格替换为其他有效字符。

7unionalltounion.py:UNION ALL SELECT替换为UNION SELECT

8securespher.py:追加特制的字符串。

9space2hash.py:将空格替换为#号,并添加一个随机字符串和换行符。

10space2mssqlblank.pymssql):将空格替换为其他空符号。

11spce2mssqlhash.py:将空格替换为#号,并添加一个换行符。

12between.py:NOT BETWEEN 0 AND 替换大于号(>,BETWEN AND 替换等号(=)

13percentage.py:ASP允许在每个字符前面添加一个%1.

14sp_password.py:DBMS日志的自动模糊处理的有效载荷中追加sp_password

15charencode.py:对给定的Payload全部字符使用URL编码(不处理已经编码的字符)。

16randomcase.py:随机大小写。

17charunicodeencode.py:字符串unicode编码。

18space2comment.py:将空格替换为/**/

19equaltolike.py:将等号替换为like

20greatest.py:绕过对”>"的过滤,用GREATEEST替换大于号。

以上测试通过的数据库类型和版本:

mysql4mysql5.0mysql5.5

orcale10g

postgresql8.3postgresql 8.4postgresql9.0

21ifnull2ifisnull.py:绕过对IFNULL的过滤,替换类似IFNULLA,B)IFISNULL(A),B,A)

测试通过的数据库类型和版本为MySQL 5.0MySQL 5.5

22modsecurityversioned.py:过滤空格,使用MySQL内联注释的方式进行注入。

测试通过的数据库类型和版本为MySQL5.0

23space2mysalblank.py:将空格替换为其它空白符号(适用于MySQL)

测试通过的数据库类型和版本为MySQL5.1

24modesecurityzeroversioned.py:使用MySQL内联注释的方式(/*00000*/

测试通过的数据库类型和版本为MySQL 5.0

25space2mysqldash.py:将空格替换为--,并添加一个换行符。

26bluecoat.py:SQL语句之后用有效的随机空白符替换空格符,随后用LIKE替换等于号。

测试通过的数据库类型和版本为MySQL5.1SGOS

27versionedkeywords.py:注释绕过。

28halfversionedmorekeywords.py:当数据库为MySQL时绕过防火墙,在每个关键字之前添加MySQL版本注释。

测试通过的数据库类型和版本为MySQL 4.0.18MySQL 5.0.22

29space2morehash.py:将空格替换为#号,并添加一个随机字符串和换行符。

测试通过的数据库类型和版本为MySQL5.1.14

30apostrophenullencode.py:用非法双字节unicode字符替换单引号。

31appendnullbyte.py:在有效负荷的结束位置加载零字节字符编码。

32chardoubleeencode.py:对给定的Payload全部字符使用双重URL编码(不处理已编码的字符)。

33unmagicquotes.py:用一个多字节组合(%bf%27)和末尾通用注释也一起替换空格。

34randomcomments.py:/**/分割SQL关键字。

 

 

虽然SQLMAP自带的tamper可以做很多事情,但在实际环境中,往往比较复杂,可能会遇到很多情况,tamper不可能很全面地应对各种环境。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM