大家好,這篇文章將展示我最近發現的一個很酷的漏洞,讓我們開始吧!
前不久,我對hackerone上的某個懸賞目標進行了一番研究,發現了一個Self-XSS漏洞(AngularJS模板注入)和一個OAuth的配置錯誤漏洞。這兩個漏洞本身都是低危漏洞,不會造成很大的影響,但如果結合在一起,就會生成一個高危的存儲型XSS漏洞!
出於安全等原因,我稱這個目標網站為redacted.com
。
這個網站主要提供網路存儲服務,就像Google Drive或DropBox一樣。用戶可以在這個網站上傳、下載、共享他們的文件。
我經過一番摸索在上傳文件的文件名處找到了一個XSS。只要你上傳一個文件名如{{constructor.constructor(『alert(1)』)()}}.jpg
這樣的文件,那麼你就會在上載文件的管理頁面上看到XSS彈框。
很好!但可惜這只是一個Self-XSS。
當然,有一種簡單的方法可以用它攻擊其他用戶,就是和受害者共享一個指向文件的鏈接,一旦受害者點擊,攻擊就會生效。但在這篇文章中,我將向你展示一種更有趣的利用方法。
在網站的設置中,我發現了一個從Dropbox導入文件的功能。為了使用這個功能,你需要通過OAuth將你的Dropbox帳戶和這個網站綁定。
為了方便理解,我將快速解釋一下這個OAuth流程。
- 首先,用戶單擊
Connect Dropbox
按鈕,瀏覽器就會發出如下GET請求(https://dropbox.com/oauth2/authorize?client_id=***********&response_type=code&state=****************&redirect_uri=https%3A%2F%2Fwww.redacted.com%2Faccount%2Fsettings%2Fdropbox-callback
)
- 然後用戶被重定向到Dropbox,登錄帳戶並授予訪問許可權。