相信大家看完入门篇后,基本掌握了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])?>;后端检测到一句话
本文深入探讨了SQL注入中如何绕过过滤机制,包括过滤引号的Hex encoding和CHAR() Function方法,通过双写、大小写转换、拼接字符串来规避关键字过滤,以及利用括号、/**/、换行空格混淆、编码转换等方式应对各种过滤策略。还特别介绍了MySQL的内联注释和information_schema相关的绕过技术。
最低0.47元/天 解锁文章
236

被折叠的 条评论
为什么被折叠?



