HTTP Parameter Pollution簡稱HPP,所以有的人也稱之為“HPP參數污染”。
一篇很不錯關於HPP參數污染的文章:http://www.paigu.com/a/33478/23535461.html
如文章中所言,HPP並非一個漏洞,但是網站存在SQL或者XSS,在有WAF的情況之下可以幫助黑客進行繞過WAF。
那么什么是HPP參數污染呢?
假設這個URL:http://www.xxxx.com/search.php?id=110&id=911
百度會理解成讓百度搜索:110 #選擇了第一個參數,放棄了第二個參數。
雅虎會理解成讓雅虎搜索:911 #選擇了第二個參數,放棄了第一個參數。
谷歌會理解成讓谷歌搜索:110 911 #兩個參數同時選擇。
主要的就是這三種情況了。
這主要是源於,不同的網站對處理參數的處理方式不同。PS:跟米哥一起學習的,總結米哥的,感覺我總結的還是欠妥當。
那么注入是怎么跟HTTP污染產生關系的呢?
倘若是第三種情況,也就是第一個參數取第二個參數也取。那么大家請看下面的URL
http://www.xishaonian.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) |