web滲透 33 寬位元組注入

2021-08-28 04:08:15 字數 678 閱讀 5531

寬位元組注入是相對於單位元組注入而言的,該注入跟html頁面編碼無關,寬位元組注入常見於mysql中,gb2312gbkgb18030big5shift_jis等這些都是常說的寬位元組,實際上只有兩位元組。寬位元組帶來的安全問題主要是吃ascii字元(一位元組)的現象,當%df'被php轉義(開啟gpc、用addslashes函式,或者icov等),單引號被加上反斜槓\,變成了%df\',其中\的十六進製制是%5c,那麼現在%df\' = %df%5c%27,如果程式的預設字符集是gbk等寬位元組字符集,則mysql用gbk的編碼時,會認為%df%5c是乙個寬字元,也就是x',也就是說:%df\' = %df%5c%27=x',有了單引號可以注入了。

php+mysql的搭配,則需要進行檢測。

檢測時,了解了其原理為:php使用php_escape_shell_cmd這個函式來轉義命令列字串時是作為單位元組處理的,而當作業系統設定了gbk、euc-kr、sjis等寬位元組字符集時候,將這些命令列字串傳遞給mysql處理時是作為多位元組處理的,如:<

33 注入篇 寬位元組注入

在注入時通常會使用單引號 雙引號等特殊字元。在應用中,通常為了安全,開發者會開啟php的magic quotes gpc,或者是addslashes mysql real escape string等函式對客戶端傳染到的引數沒有進行過濾,則注入的單引號或雙引號就會被 轉義,但是,如果伺服器端的資料庫...

寬位元組注入

大家都知道 df 被php轉義 開啟gpc 用addslashes函式,或者icov等 單引號被加上反斜槓 變成了 df 其中 的十六進製制是 5c 那麼現在 df df 5c 27,如果程式的預設字符集是gbk等寬位元組字符集,則mysql用gbk的編碼時,會認為 df 5c 是乙個寬字元,也就是...

寬位元組注入

在使用php連線mysql的時候,當設定 set character set client gbk 時會導致乙個編碼轉換的問題,也就是我們熟悉的寬位元組注入,當存在寬位元組注入的時候,注入引數裡帶入 df 27,即可把 5c 吃掉,舉個例子。當提交 1 1 23 時,mysql的執行的sql語句為 ...