在一本书中,看到关于如何避开过滤,有这么一段话:如:SELECT被列入黑名单,则attacker想避开过滤的话,可以使用以下输入:1.SeLect2.SELSELECTECT3.%53%45%4c%45%43%544.%2553%2545%254c%2545%2543%2554其中方法1和2容易理解方法1:利用对大小写敏感来避开过滤方法2:利用程序replaceSELECT的特点其中,方法3和方法4该如何理解呢?方法3的话,payload:?id=1'union%53%45%4c%45%43%541,2,3--+,则在服务端收到的$_GET['id']的值为'1'unionSELECT1,2,3--',此处,并没办法避开SELECT关键字啊?
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
(3)是对select所有字符编码一次(4)是对(3)的百分号再编一次表单传过去的时候,服务器会自动解码一次,所以服务端取得select很正常,也就是说(3)的办法绕不过过滤。(4)的话貌似sql引擎不会自动解码,你可以在自己的workbench上面试一试,应该提示sql语句错误。
添加回答
举报
0/150
提交
取消
