寬位元組注入:是屬於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'
輸入的單引號被轉義了,沒辦法逃逸
然後翻看了下頁面源碼及請求頭,發現客戶端編碼是gbk
嘗試輸入hello�',console報錯提示引號未閉合了,後面就是構造而外的js程式碼,並把後面的對於字元註解掉,讓語法正確
#三、靶場實戰
1.先打開頁面,看到維護訊息,點進去觀察其帶有id參數,因為題意是寬字節注入
2.直接輸入寬位元組注入經典繞過方式:�',即可看到報錯頁面,
#3.在SQLmap中直接將id參數修改,進行常規探測
#4.密碼採用了MD5加密,解密以後即可得到登入密碼,登入即得到KEY
#以上是SQL注入中寬位元組注入是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!