今天是來自 XBOW 的 Salesforce XSS [1]
Aura Framework 是 Salesforce 在 2014 年推出的前端框架,對於動態效果支援蠻靈活的,採模組化設計。
使用時結構包含
然後帶入的參數常常形如 aura.tag/aura.title 等來把特定資料傳入 aura template 讓它知道現在該解析什麼。
有點意外好笑的一個黑箱測試過程?
(以下圖片都來源於 XBOW 貼文)
首先是 Agent 自行寫了個腳本做 URL Endpoint Fuzzing + Trial 一些常見參數,試著去找出可能會有可控回顯得網址參數組合。

而 Agent 在第一次嘗試無果後,認為 Aura Template 的 "動態載入特性" 將導致有更多可能隱藏的可控內容,於是專門寫了個 script 針對常見 Aura 參數與相關 URL Fuzz。

最後雖然控成功了,但是回傳的 Content-Type 是 text/plain,瀏覽器會把內容原封不動輸出不渲染 ...
結果 Agent 再找了一輪發現 aura.format=JSON 會回傳 Content-Type: text/html;charset=utf-8 ????
神奇的後端結構,事實證明就算是框架提出團隊自己還是會寫亂七八糟的程式碼、、、
那總之就是這樣成功彈了一個 XSS 啦~
我覺得這個案例可以學到兩件事情
安安