一, 寬字節注入
(1)什麼時候想到這種注入方法
在尋找注入點時,回顯出現id=1\'
時
(2)防護思路和代碼分析
防護思路
- 使用
addslashes($_GET['id'])
函數對傳來的參數使用反斜線轉義,1' ----->1\'
。- 使得參數無法逃逸引號的包圍,不能執行惡意SQL語句。
(3)漏洞原因和利用
GBK編碼中漢字佔用兩個字
- 當數據庫的編碼爲GBK時,可以利用寬字節注入
/ 的URL編碼爲 %5c
運 的GBK編碼爲 %df%5c
根據這個特性可以構造payload注入
【payload】
?id=1%df' .......
(4)漏洞利用條件
數據庫編碼爲GBK