如果在網站中使用了urldecode或者rawurldecode函數,則會導緻二次解碼生成單引号而引發注入。
原理是我們送出參數到WebServer時,WebServer會自動解碼一次,假設目标程式開啟了GPC,我們送出/1.php?id=1%25%27,因為我們送出的參數裡面沒有單引号,是以第一次解碼後的結果為id=1%27,%25解碼的結果是%,如果程式裡面使用了urldecode或者rawurldecode函數來解碼id參數,則解碼後的結果是id=1'單引号成功出現引發注入。
tips:
可以通過搜尋urldecode和rawurldecode函數來挖掘二次urldecode注入漏洞。
%25編碼會成為%
%27編碼會成為'
浏覽器會把非字母數字進行編碼,而"%"+"字母的ascii碼的十六進制"解碼會成為對應的字母
例如%61就會被解碼為a