寬字節注入:是屬于sql注入的一種繞過方式
一、寬字節概念:
1、單字節字符集:所有的字符都使用一個字節來表示,比如 ASCII 編碼(0-127)
在多字節字符集中,一些字符由多個字節組成,而其他字符則由單個字節表示(有些字符可能沒有單字節表示)。
3、UTF-8 編碼: 是一種編碼的編碼方式(多字節編碼),它可以使用1~4個字節表示一個符號,根據不同的符號而變化字節長度。
4、常見的寬字節: GB2312、GBK、GB18030、BIG5、Shift_JIS?GB2312 不存在寬字節注入,可以收集存在寬字節注入的編碼。
5、寬字節注入時利用mysql的一個特性,使用GBK編碼的時候,會認為兩個字符是一個漢字
二、addslashes()函數
1、addslashes() 函數返回在預定義字符之前添加反斜杠的字符串。
2、預定義字符:單引號(’),雙引號(”),反斜杠(),NULL
3、實例
https://xxxxx?name=hello%27
輸入的單引號被轉義了,沒辦法逃逸
然后翻看了下頁面源碼及請求頭,發現客戶端編碼是gbk
嘗試輸入hello%df%27,console報錯提示引號未閉合了,后面就是構造而外的js代碼,并把后面的對于字符注釋掉,讓語法正確
三、靶場實戰
1.首先打開頁面,看到維護信息,點進去觀察其帶有id參數,因為題意是寬字節注入
2.直接輸入寬字節注入經典繞過方式:%df’,即可看到報錯頁面,
3.在SQLmap中直接將id參數修改,進行常規探測
4.密碼采用了MD5加密,解密以后即可得到登錄密碼,登錄即得到KEY
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END