XSS漏洞想必很多行內人士都有所耳聞,這次我要分享的挖洞經歷也是非常的意外。
很多時候自己隨手播種下的xss代碼,有可能會在某一天神奇的帶給你驚喜。
這裡不會講XSS的基礎知識,但是會通過一個真實的案例帶你挖掘百度網盤的一個存儲型XSS漏洞,這個漏洞原理非常簡單,我能挖掘到更多的是靠運氣,同時他也會是一個非常基礎的實戰教材。
故事還要從很久以前說起,在以前百度網盤的客戶端上有一個可以修改昵稱的地方,當時使用百度網盤客戶端本身來修改這個昵稱最多隻能修改10位,但是我通過抓包,修改包,重發包這個步驟發現可以將該昵稱修改為一個很長的字符串。
當時就想,既然他們這裡隻是前端做瞭限制,那麼是不是意味著我把<script>alert(1)<script>這樣的字符串放進去也是不會做過濾?而且剛好通過這種方法也繞過瞭前端的長度限制,有可能這裡存在存儲型XSS漏洞,因此我將昵稱修改為瞭<script>alert(document.cookie)<script>。
存儲型XSS是什麼呢?存儲型XSS漏洞又叫做持久型XSS漏洞,因為這種漏洞本身是將具有攻擊性的代碼(又叫playload)持久化的存儲在目標業務中的某個地方(比如說數據庫, 緩存等),在另一個地方又會把這個攻擊代碼顯示到頁面上,顯示的時候瀏覽器會將它當作合法的script腳本執行,便開始執行瞭具有攻擊性的JavaScript腳本。這個提交你的攻擊代碼的地方就叫做輸入點,顯示你具有攻擊性代碼的那個位置就叫做輸出點。
既然是挖掘存儲型XSS漏洞,並且我們已經找到瞭輸入點,那麼就要找輸出點瞭。當時我在百度網盤的各個頁面都做瞭全局搜索,結果能找到的地方都過濾瞭輸出。於是我就沒有去管這個漏洞瞭。
大概過瞭幾個月之後,偶然有一天晚上我在網上認識的一個網友準備通過百度網盤自帶的給好友分享功能給我分享文件的時候,突然他跟我說在點擊分享列表準備選擇分享用戶的時候突然彈出瞭一個網頁對話框,內容就是他的cookie,我突然心中一驚,莫非輸出點是在這個地方?原來這種輸出點是需要交互,點開某個窗口之後才會渲染出來的,這屬於一種比較隱蔽的輸出點,怪不得我之前一直沒有找到。看來滲透測試是一個細節點都不能放過啊。
如果大傢有心,平時可以隨手把自己註冊過的一些網站的個人信息改成各種xss腳本,說不定哪天運氣好就挖到瞭一個XSS。隨手播種,坐等收獲。
於是趕忙再去通過抓包,改包,重放這個過程,將昵稱改為xss平臺的收信腳本,然後重現這個過程,發現居然可以打到cookie,而且cookie中包含瞭百度賬號最關鍵的BDUSS字段,該字段是百度賬號用於鑒別用戶身份的唯一字段,幾乎所有百度業務中隻要有該字段,等於擁有瞭同等賬號權限。
通過社工讓對方給你分享文件的時候,神不知鬼不覺的情況下,你就把對方的百度賬號淪陷瞭,而且現在很多人都用瞭百度網盤的雲盤同步等功能,導致你手機上的短信,通話記錄,通訊錄,照片圖庫等一覽無餘。尤其是短信同步功能很危險,比如說百度貼吧的吧主審批操作就是通過短信驗證碼的方式判斷,如果短信同步瞭,那麼我們在擁有這個賬號的情況下,隻要通過查看同步到雲端的短信,就可以通過他的賬號審批通過自己賬號的吧主申請,想想多麼可怕。
這個漏洞最後我是提交到瞭烏雲,rank給瞭13,送瞭娃娃鑰匙扣等小禮物。後來我聽一個安全圈的朋友說他提交過類似漏洞是有很多積分,可以換各種購物卡之類的等額現金獎勵,我這個漏洞如果提交到百度私有的BSRC可能有三位數到四位數的現金獎勵,唉有點可惜啊。
如果你們在各大烏雲鏡像站搜索【百度網盤】等關鍵詞應該能找到該漏洞詳情。
End.
如果對軟件測試感興趣,想瞭解更多的軟件測試知識,請大傢關註“51Testing軟件測試網”頭條號。
原文鏈接:
http://www.51testing.com/html/23/n-3720723.html
相關熱門文章:
http://www.toutiao.com/i6426594521361940994/
http://www.toutiao.com/i6439201903241855490/
http://www.toutiao.com/i6439580855500276226/
http://www.toutiao.com/i6439919722615013889/