久久99亚洲精品久久频_久久久久久久久久久身材好_日本一区二区免费高清视频_www.九九精品_国产做a爱一级毛片久_国产高潮流白浆啊免费A片动态

18842388900

網(wǎng)站建設(shè) APP開發(fā) 小程序

Article/文章

記錄成長點(diǎn)滴 分享您我感悟

您當(dāng)前位置>首頁 > 知識(shí) > 網(wǎng)站建設(shè)

PHP Hash更有缺陷并影響大量Web網(wǎng)站登錄身份驗(yàn)證

1(6).jpg最近一個(gè)被稱為“Magic Hash”的PHP漏洞可以使得攻擊者非法獲取用戶的賬號(hào)信息。漏洞原因是PHP以一種特定的方式處理被哈希的字符串,攻擊者可以利用其從中嘗試并可能獲取密碼,繞過登錄認(rèn)證系統(tǒng)和其它運(yùn)行在PHP哈希比較之上的函數(shù)。

漏洞描述

當(dāng)PHP處理哈希字符串時(shí),它使用“!=”或“==”來比較哈希值。它將每個(gè)以“0E”開頭的哈希值解釋為0,所以如果兩個(gè)不同的密碼經(jīng)過哈希處理后,它們的哈希值以“0E”開頭,那么PHP會(huì)認(rèn)為它們是相同的,都是0。

攻擊者可以通過輸入以“0E”開頭的字符串開頭的字符串來利用此漏洞,該字符串由PHP解釋為0。如果數(shù)據(jù)庫中的密碼以“0E”開頭,即使沒有真實(shí)密碼,他也可以以該用戶身份登錄。

攻擊案例:?

4月8日,WordPress發(fā)布了一個(gè)重要的更新,其中修復(fù)了一系列安全漏洞。其中最突出的是cookie偽造漏洞(CVE-2014-0166)。

我們來看看修補(bǔ)后的代碼:

$鍵=wp_hash($用戶名$ pass_frag '|' $期滿,$方案。); $散列=hash_hmac |; - 如果($ HMAC( 'MD5',$用戶名 '' $期滿,$鍵。) !=$散列){+如果(hash_hmac( 'MD5',$ HMAC,$鍵)!==hash_hmac( 'MD5',$散列,$鍵)){

我試圖分析前一天的漏洞。我對(duì)php功能還不太了解。幾個(gè)小時(shí)我都想不起來。我無法弄清楚為什么我添加了hash_hmac來修復(fù)漏洞。那時(shí),我以為它與加密算法中的一些問題有關(guān),并放棄了。

突然,我今天看到了一篇文章,頓悟是比較運(yùn)算符的一個(gè)問題。事實(shí)上,我也注意到兩個(gè)符號(hào)“!=”和“!==”之間的區(qū)別,但我想到了使用它的可能性,我專注于hash_hmac。也許這是WordPress的障礙?哦,開玩笑。

我們將所有問題都放在“!=”和“!==”:

我們知道php有兩個(gè)相等的運(yùn)算符,一個(gè)是嚴(yán)格的,另一個(gè)是非嚴(yán)格的。 php手冊(cè)定義如下:

'==='和'!=='是嚴(yán)格的比較器,只有在類型相同時(shí)才相等。 '=='和'!='是非嚴(yán)格的比較器,在類型轉(zhuǎn)換后進(jìn)行比較。

看一下php手冊(cè)中給出的例子:

< phpvar_dump(0=='A');> truevar_dump( '1'=='01'); //1==1→truevar_dump('10 '==' 1E1' ); //10==10→truevar_dump(100=='1E2'); //100==100->真>

字符串在與數(shù)字進(jìn)行比較之前會(huì)自動(dòng)轉(zhuǎn)換為數(shù)字,因此0=='a'。

另外兩個(gè)字符串比較(如果兩者都是數(shù)字形式)同時(shí)轉(zhuǎn)換為數(shù)字以進(jìn)行比較,因此'1'=='01'。

此時(shí)你必須要問,wordpress代碼是比較cookie的哈希值和哈希的真實(shí)哈希值,與此有什么關(guān)系?

讓我們注意上面的例子'10'=='1e1',php智能將一串科學(xué)記數(shù)法轉(zhuǎn)換為相應(yīng)的數(shù)字(1e1=1 * 10 ^ 1=1)。兩個(gè)不同的角色實(shí)際上是相等的。我想知道你是否得到了啟示?

好的,來一個(gè)顯而易見的,你一定會(huì)意識(shí)到:

的var_dump( '0e123456789012345678901234567890'==='0')//falsevar_dump( '0e123456789012345678901234567890'=='0')//真

當(dāng)散列顯示為'0exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'時(shí),它等于'0'。

讓我們回到wordpress驗(yàn)證碼。首先根據(jù)wp-config.php中的用戶名($ username),密碼($ pass_frag),cookie有效期($ expiration)和密鑰($ key)生成相應(yīng)的$ hash(算法非常簡(jiǎn)單,沒有解釋),然后比較cookie中獲得的$ hmac值($ hmac!=$ hash?)來驗(yàn)證cookie的有效性。

另外提下,cookie的格式是這樣的:wordpress_hashofurl=username|expiration|hmac

我們可以控制的變量是$ username和$ expiration,其中$ username需要修復(fù)。所以我們可以通過控制cookie中的$ expiration來更改$ hash的值,然后將cookie中的$ hmac設(shè)置為0

只要$ expiration不斷更改,直到滿足$ hash=='0'的$ hash出現(xiàn),就會(huì)成功偽造有效的cookie。

當(dāng)然,粗略的數(shù)學(xué)概率運(yùn)算可以推斷出滿足條件的概率非常低。

P=總和(10 ^ N,N-=0,30)/16^32=3.26526*10^-9

有近3億個(gè)請(qǐng)求有可能遇到,嗚嗚?

有時(shí)看著角色,角色非常好,角色不如我,差不多有5億:

怎么樣,少年,寫一個(gè)多線程腳本跑起?

影響范圍

影響大量網(wǎng)站,包括登錄驗(yàn)證,“忘記密碼”,二進(jìn)制檢查,cookie等,因?yàn)樗鼈兌际褂肞HP中的哈希函數(shù)值比較,因此存在隱患。

解決方案

使用PHP分析網(wǎng)站中的哈希比較函數(shù),并分別將“==”,“!=”更改為“===”和“!===”。

網(wǎng)站建設(shè),小程序開發(fā),小程序制作,微信小程序開發(fā),公眾號(hào)開發(fā),微信公眾號(hào)開發(fā),網(wǎng)頁設(shè)計(jì),網(wǎng)站優(yōu)化,網(wǎng)站排名,網(wǎng)站設(shè)計(jì),微信小程序設(shè)計(jì),小程序定制,微信小程序定制

相關(guān)案例查看更多

主站蜘蛛池模板: 啊v中文字幕在线 | 一级黄色录像影片夫妻性生活影片 | 国产精品国产片 | 亚洲综合网站久久久 | 国产一区二区丝袜女高跟鞋 | 欧美激情在线一区二区 | 国产精品扒开腿做爽爽爽A片唱戏 | 国产九一视频在线观看 | 九一免费国产 | 久久婷婷五月综合色国产免费观看 | 骚妇BB双飞插 | 免费无码一区二区三区蜜桃 | 国产口爆吞精视频普通话 | 伊人情人综合网 | 国产精品186在线观看在线播放 | 在线观看精品视频 | 不卡不卡| 国产高清视频一区 | 久久华人 | 一二三四视频在线观看日本 | 色aⅴ性欧美 | 另类成人专区 | 91l九色lporny | 亚洲第一天堂影院 | 九月琪琪婷婷 | 国产成人久久精品流白浆黑豹 | 99久久久无码国产精品免费蜜柚 | 国产亚洲人成无码网在线观看 | 人妻有码av中文字幕久久琪 | 人妻AV无码一区二区三区 | 亚洲亚洲精品三区日韩精品在线视频 | 777cc成人 | 亚洲AV无码精品色午夜 | 国产精品区一区二区三区 | 免费亚洲精品视频 | 偷炮少妇宾馆半推半就激情 | 国产福利酱在线观看萌白酱JK | 国内自拍农村少妇在线观看 | 午夜在线视频免费观看 | av韩日| 久久夜色精品国产欧美一区麻豆 |