本帖最后由 yun 于 2017-4-30 21:46 编辑
HTTP Parameter Pollution简称HPP,所以有的人也称之为“HPP参数污染”。 如文章中所言,HPP并非一个漏洞,但是网站存在SQL或者XSS,在有WAF的情况之下可以帮助黑客进行绕过WAF。
那么什么是HPP参数污染呢?
假设这个URL:http://www.xxxx.com/search.php?id=110&id=911 百度会理解成让百度搜索:110 #选择了第一个参数,放弃了第二个参数。 雅虎会理解成让雅虎搜索:911 #选择了第二个参数,放弃了第一个参数。 谷歌会理解成让谷歌搜索:110 911 #两个参数同时选择。 主要的就是这三种情况了。 这主要是源于,不同的网站对处理参数的处理方式不同。
那么注入是怎么跟HTTP污染产生关系的呢?
倘若是第三种情况,也就是第一个参数取第二个参数也取。那么大家请看下面的URL http://www.xxx.com/hello.php?id=select 1&id=2,3,3 from admin 该种情况还可用于Bypass WAF. 当然还可以与XSS结合。
具体服务端处理方式如下: Web服务器 | 参数获取函数 | 获取到的参数 | PHP/Apache | $_GET(“par”) | Last | JSP/Tomcat | Request.getParameter(“par”) | First | Perl(CGI)/Apache | Param(“par”) | First | Python/Apache | Getvalue(“par”) | All(List) | ASP/IIS | Request.QueryString(“par”) | All(comma-delimited string) |
|