我正在一个web应用程序上做一些测试,我在一个存储过程中发现了一个SQL注入。就像这样:
Stored_procedure [input]存储过程验证输入,它必须是一个整数,但我可以插入另一个SQL语句,如下所示:
Stored_procedure 1;SELECT CURRENT_USER;web应用程序没有向我显示第二个SQL语句的结果,因此我尝试根据时间执行SQL注入:
Stored_procedure 1;WAITFOR DELAY '00:00:10';它不起作用,因为web应用程序用的是单引号,所以我更改了我的SQL注入:
Stored_procedure 1;WAITFOR DELAY (CHAR(48)+CHAR(48)+CHAR(58)+CHAR(48)+CHAR(48)+CHAR(58)+CHAR(49)+CHAR(48));这不起作用,它会产生一个错误。你能帮我弄清楚它为什么不起作用吗?或者我如何利用它?
发布于 2016-09-16 07:59:30
有许多方法可以绕过SQL语句的抓取,特别是如果它没有递归地执行输入的刮取(或清除)。您有时可以通过将输入封装到您知道将被过滤掉的其他字符中,有时只需在每个受限或筛选的字符前面放置一个wack即可。关于这一主题的更多内容,我强烈建议在“Web应用程序黑客手册”( Wiley )中找到大量的例子。严重提高了我的SQLi和其他网络应用破解游戏。
https://security.stackexchange.com/questions/136914
复制相似问题