簡介
http參數污染即HPP(HTTP Parameter Pollution),是一種注入型漏洞,攻擊者通過 在HTTP請求中插入特定的參數來發起攻擊。如果web應用中存在這樣的漏洞可以被攻擊者利用來進行客戶端或服務器端的攻擊。
在sql注入的應用則是可以達到繞過sqlwaf的目的。
原理
在跟服務器交互的過程中,http允許get或者post多次傳同一個參數,造成覆蓋從而繞過waf的效果。也就是http協議允許同樣的名稱的參數出現多次
但是不同服務器的處理方式會不一樣。
必應:
對於同樣的參數,必應會處理后一個參數
但是對於谷歌,會兩個參數一起處理。
一些常見的web服務器對同樣名稱的參數出現多次的處理方式:
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) |
應用
waf繞過
如果waf會將union給過濾掉,那么我們可以利用HHP繞過
如上傳的參數為在特定情況下為bbs=u&bbs=n&bbs=i&bbs=o&bbs=n&bbs=select 1,user(),3
如果服務器端是將獲取到的參數組合的話,就可以達到繞過的目的。
組合起來就是union select 1,user(),3
文件上傳
XSS
暫不詳細介紹