⼀個通殺絕⼤多數交易平臺的 XSS 0day 漏洞
https://xssor.io/s/x.js
那麼,另外兩個引數(disabledFeatures 與 enabledFeatures)為什麼是必要的?繼續看程式碼(同樣是 library 開頭的那個 js 檔案):
這段程式碼在觸發點之前,如果沒有提供合法的 disabledFeatures 及 enabledFeatures 引數格式,這段程式碼就會因為報錯而沒法繼續。很容易知道,合法引數格式只要滿足這兩個引數是 JSON 格式即可。所以,最終利用連結是:
漏洞威力
為什麼我們會說這個 XSS 可以繞過 Cloudflare 等防禦機制?這個“等”其實還包括了瀏覽器內建的 XSS 防禦機制。原因很簡單,因為這是一個 DOM XSS,DOM XSS 的優點是不需要經過服務端,不用面對服務端的防禦機制,同時不會在服務端留下日誌(除非自己特別去處理)。也正是因為這是 DOM XSS 且非常簡單的觸發方式,瀏覽器端的 XSS 防禦機制也沒觸發。
然後這個 XSS 的觸發域和目標重要業務所在的域幾乎沒有做什麼分離操作,利用程式碼其實非常好寫,比如直接基於 $ 裡的一堆方法就可以輕易獲取目標平臺的目標使用者隱私,甚至偷偷發起一些高階操作。
有經驗的攻擊者,是知道如何大批量找到目標的,然後寫出漂亮的利用程式碼。這裡就不展開了。
最後做個補充:
前端黑裡,需要特別去做好的安全有:XSS、CSRF、CORS、Cookie 安全、HTTP 響應頭安全、第三方 js 安全、第三方 JSON 安全、HTTPS/HSTS 安全、本地儲存安全等。可以檢視這篇近一步瞭解:
雜談區塊鏈生態裡的前端黑:
ofollow,noindex" target="_blank"> https://mp.weixin.qq.com/s/d_4gUc3Ay_He4fintNXw6Q本文作者:餘弦@慢霧安全團隊