SQL Injection accept-language php


SQL Injection accept-language php

我正在处理由Accunetix生成的php应用程序的安全评估报告。

该报告声称存在 SQL 注入漏洞。 该应用程序是带有MySQL的PHP。 以下是它所说的进行攻击的标头(特别是接受语言标头):

GET /user_login.php HTTP/1.1
user-agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
accept-language: 1;select pg_sleep(1); --
X-Requested-With: XMLHttpRequest
Cookie: PHPSESSID=35kno6h8kmkbin973q02gojp82; uniqueuser=1382404387
Host: xxx.xxx.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate

我在应用程序中的任何地方都没有找到"接受语言"或"accept_language"。 此外,pg_sleep()不是MySQL函数。

我在PHP中搜索了一个已知的漏洞,但没有找到任何东西。这是误报,还是我错过了什么?

Accept-Language是客户端浏览器发送的请求标头。

Accunetix 试图通过注入恶意代码来操纵这些标头,以查找安全整体(模仿黑客)以测试您的应用程序是否容易受到它们的攻击。

如果您没有在数据库查询中使用接受语言标头或请求标头,则可能是误报。为了确保这一点,请查看该请求的响应,如果响应正常,则一切正常。

代码可能会将该标头视为选择语言的源,这是通过数据库查询完成的。生成查询时,HTTP 标头的内容被不正确地解析。

您没有看到这一点的原因可能是因为 HTTP 标头的获取是间接完成的(如 $_SERVER[$language_header] )。