在描述五级值的这个博客中,作者将'添加到需要某些值的字段中,并得出结论认为存在SQLi漏洞:
经进一步调查,添加单引号将使服务器返回500状态错误,其中.尖叫声SQLi
HTTP500代码是否意味着它易受SQLi攻击?还是所有HTTP错误代码都意味着它是SQL注入?哪个HTTP代码不是指SQLi?
发布于 2018-04-05 09:00:56
HTTP500代码是否意味着它是一个SQLi?
500错误代码意味着内部服务器错误。请查看这里状态代码及其含义。在本例中,500段代码(添加单引号时)不一定意味着它是SQLi,因为它可能有其他原因(糟糕的SQLi预防,其他解析问题)。但是机会真的很好,它是一个SQLi!
还是所有HTTP错误代码都意味着它是SQL注入?
不是的。例如,可以给出一个400 (Bad Request),因为单引号是不允许的。这可能表明SQLi被阻止(以一种肮脏的方式)。
哪个HTTP代码不是指SQLi?
这一点永远无法确定,因为SQLi预防通常会转义字符串并将其存储在数据库中,而所有操作都正常--不抛出任何异常。因此,在这两种情况下(SQLi和SQLi预防),响应代码可以是200 (OK)。
发布于 2018-02-04 07:14:39
假设URL如下所示:
http://anysite.com/somefile.php?id=1查询内容如下:
SELECT * FROM product WHERE id='1'现在,当您尝试将单引号插入其中时,如下所示:
http://anysite.com/somefile.php?id=1'然后查询如下:
SELECT * FROM product WHERE id='1''但是在这里,您将单引号放入其中,因此它将始终返回语法错误。因为数据库不能完成查询,所以会返回语法错误。注意点是数据库正在重新测试错误,而不是服务器。因此,500服务器错误与SQL错误之间没有关系。
注意:开发人员可以通过使用@或其他方法隐藏语法错误,这样您就看不到语法错误了。然后,盲目的SQL来拯救。
https://security.stackexchange.com/questions/172319
复制相似问题