使用sqlmap中tamper脚本绕过waf

使用sqlmap中tamper脚本绕过waf
最新回答
辣条的发明妨碍我当淑女

2020-12-19 23:02:40

0x00 背景

利用SQLMAP中的tamper脚本进行更有效的攻击。

收集了有关tamper脚本的知识,以便学习绕过技术。通过分析案例,了解到在不同环境下应使用特定的tamper脚本。

0x01 start

脚本名称:apostrophemask.py

作用:使用utf8代替引号,适用于所有环境。

脚本名称:equaltolike.py

作用:用like代替等号,示例输入:"SELECT * FROM users WHERE id=1",输出:"SELECT * FROM users WHERE id LIKE 1"。案例包括wooyun.org/bugs/wooyun-...

脚本名称:space2dash.py

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

脚本名称:greatest.py

作用:绕过过滤'>',用GREATEST替换大于号。适用于MySQL 4, 5.0和5.5,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0。

脚本名称:space2hash.py

作用:空格替换为#号和随机字符串,以及换行符。适用于MySQL 4.0, 5.0。

脚本名称:apostrophenullencode.py

作用:绕过双引号过滤,替换字符和双引号。适用于MySQL 4, 5.0和5.5,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0。

脚本名称:halfversionedmorekeywords.py

作用:在MySQL版本小于5.1时绕过防火墙,每个关键字前添加版本评论。适用于MySQL 4.0.18, 5.0.22。

脚本名称:space2morehash.py

作用:空格替换为 #号和更多随机字符串,以及换行符。适用于MySQL 5.1.13及以上版本。

脚本名称:appendnullbyte.py

作用:在有效负荷结束位置加载零字节字符编码。适用于Microsoft Access。

脚本名称:ifnull2ifisnull.py

作用:绕过IFNULL过滤,替换类似’IFNULL(A, B)’为’IF(ISNULL(A), B, A)’。适用于MySQL,SQLite(可能)和SAP MaxDB(可能)。测试针对MySQL 5.0和5.5。

脚本名称:space2mssqlblank.py

作用:空格替换为其他空符号。适用于Microsoft SQL Server 2000和2005。

脚本名称:base64encode.py

作用:用base64编码替换。案例包括wooyun.org/bugs/wooyun-...

脚本名称:space2mssqlhash.py

作用:替换空格字符。适用于MSSQL和MySQL。

脚本名称:modsecurityversioned.py

作用:过滤空格,包含完整的查询版本注释。适用于MySQL 5.0。

脚本名称:space2mysqlblank.py

作用:空格替换为其他空白符号(mysql)。适用于MySQL 5.1。

脚本名称:between.py

作用:用between替换大于号。适用于Microsoft SQL Server 2005,MySQL 4, 5.0和5.5,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0。

脚本名称:space2mysqldash.py

作用:替换空格字符(”)(’ – ‘)后跟一个破折号注释和一个新行。适用于MySQL和MSSQL。

脚本名称:multiplespaces.py

作用:围绕SQL关键字添加多个空格。适用于所有环境。

脚本名称:space2plus.py

作用:用+替换空格。适用于所有环境。

脚本名称:bluecoat.py

作用:代替空格字符后与一个有效的随机空白字符的SQL语句,然后替换=为like。适用于MySQL 5.1, SGOS。

脚本名称:nonrecursivereplacement.py

作用:双重查询语句,取代预定义SQL关键字with表示适合替代(例如 .replace(“SELECT”、””))过滤。适用于所有环境。

脚本名称:space2randomblank.py

作用:代替空格字符从一个随机的空白字符可选字符的有效集。适用于所有环境。

脚本名称:sp_password.py

作用:在DBMS日志的自动模糊处理的有效载荷末尾追加sp_password’。

脚本名称: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。

脚本名称:unionalltounion.py

作用:替换UNION ALL SELECT UNION SELECT。适用于所有环境。

脚本名称:charencode.py

作用:url编码。适用于Microsoft SQL Server 2005,MySQL 4, 5.0和5.5,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0。

脚本名称:randomcase.py

作用:随机大小写。适用于Microsoft SQL Server 2005,MySQL 4, 5.0和5.5,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0。

脚本名称:unmagicquotes.py

作用:宽字符绕过GPC addslashes。输入:"1′ AND 1=1",输出:"1%bf%27 AND 1=1–%20"。

脚本名称:randomcomments.py

作用:用/**/分割sql关键字。输入:“INSERT”,输出:“IN//S//ERT”。

脚本名称: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。

脚本名称:securesphere.py

作用:追加特制的字符串。适用于所有环境。

脚本名称:versionedmorekeywords.py

作用:注释绕过。适用于MySQL >= 5.1.13。

脚本名称:space2comment.py

作用:将空格字符(‘ ‘)替换为评论 ‘/**/’。适用于Microsoft SQL Server 2005,MySQL 4, 5.0和5.5,Oracle 10g,PostgreSQL 8.3, 8.4, 9.0。

脚本名称:halfversionedmorekeywords.py

作用:关键字前加注释。适用于MySQL < 5.1。测试针对MySQL 4.0.18, 5.0.22。