關於雙位元組漏洞的檢測

2021-12-29 16:34:52 字數 842 閱讀 4240

from:

by 職業欠錢

昨天花了點時間去看寬字元的問題,才發現之前的理解一直有誤。

%df 被php轉義(開啟gpc、用addslashes函式,或者icov等),單引號被加上反斜槓

變成了 %df

其中的十六進製制是 %5c ,很好,現在 %df = %df%5c%27

其實這也沒什麼,可是問題來了, 如何對待這3個字元?

取決於後台處理程式的預設編碼(包括gbk在內的所有寬字元編碼,具體可以看neeao大牛blog上的fuzz結果,貌似有4個編碼都會有問題?本文出於方便的角度只說gbk為)。

mysql用gbk的編碼時,會認為 %df%5c 是乙個寬字元,也就是「\」

現在 %df = %df%5c%27=\

總結一下:

%df』 --》 %df = %df%5c』 = \

%df 並不是唯一的乙個字元,應該是% 81-%fe 之間任意的乙個都可以。

單引號在注入裡絕對是個好東西,尤其是,很多程式設計師過分依賴於gpc或者addslashes的轉義。理論上說,只要資料庫連線**設定了gbk或者是預設編碼是gbk,現在程式裡到處都是注入漏洞。(事實上,這種變換在xss等領域也發揮了巨大的作用,在php和linux後台程式結合的時候,還可能造成命令注入)

可以參考的測試方法(替代原來的 and 1=1 ):

%df%27 or 1=1/*

%df%27 or 1=2/*

不過,在實際環境裡,我google了好久,找到的幾個門戶**注入點,都是沒開啟gpc,直接就能注的,被kj大牛鄙視以後,很尷尬的停止了這種重複性同質化體力勞動。

理解這個漏洞,不應該去看80sec的漏洞公告,或者上次那個什麼總結。

關於雙位元組漏洞的檢測

關於雙位元組漏洞的檢測 from url by 職業欠錢 昨天花了點時間去看寬字元的問題,才發現之前的理解一直有誤。df 被php轉義 開啟gpc 用addslashes函式,或者icov等 單引號被加上反斜槓 變成了 df 其中 的十六進製制是 5c 很好,現在 df df 5c 27 其實這也沒...

PHP雙位元組 寬位元組編碼漏洞

用乙個demo.php顯示效果,如下 header content type text html charset gb2312 echo get str 受汙染的,但還有gpc echi echo addslashes get str 呼叫addslashes函式過濾有害字元 此時gpc on。先看...

js判斷輸入的是單位元組還是雙位元組

計算機上每乙個字元 數字 漢字 字母等,都對應著unicode編碼,unicode編碼小於255的為單位元組,大於255 小於65535的為雙子節或三位元組 檢視乙個字元對應的unicode編碼 var str 你好世界 escape str 也可以單獨檢視乙個字元的編碼,unicode 你 une...