背景介紹
在本文中,const 和 mrhavit 將分享他們發現跨站腳本漏洞的經驗,該漏洞可能在多個 TikTok 應用程序中導致帳戶接管。
故事是如何開始的
一切都像往常一樣從瀏覽 TikTok APP 開始,這一次他們打開了 VPN,而 VPN 有一個隨機連接位置的選項,在他們瀏覽 TikTok 應用程序時,連接設置為了中國。
當他們試圖訪問 https://tiktok.com/ 時,立即被重定向到另一個網頁,上面顯示“此頁面在您所在的地區不可用”。

新的重定向 URL 包含一些參數,第一個參數是“status”,它負責頁面內容,第二個參數是“link”,目前還不知道它會如何影響頁面。
當將“status”參數的值更改為“1”時,頁面內容發生了變化,并出現了一個新按鈕。單擊該按鈕會重定向到“link”參數的值,這就是“link”參數發揮作用的地方。

繼續挖掘!
通過插入一些常見的 XSS Payloads,如
"javascript:alert()" 和 "javascript://"
開始測試“link”參數值,但沒有任何變化,重定向鏈接仍設置為“https://go.onelink.me/BAuo/”。
過了一會兒,他們開始意識到實際上是可以控制路徑的,這就意味著可以將“link”參數值設置為“https://go.onelink.me/mrhavit/”,而這個鏈接實際上也會嵌入到 HTML 中。

那么下一步就是檢查是否會被困在“href”屬性中,或者是否有可能突破并設置一些事件,正如你所想的那樣,由于轉義設置不正確,可以成功地將一個新事件插入到“href”屬性中。

也就是在此時,他們意識到這是一個非常好的XSS線索,那么就繼續深入挖掘吧!
黑客時間
由于位于“href”屬性內,并且可能會注入想要的任何事件,因此“onclick”是最合適的,當嘗試這樣做時,他們很快就遇到了每個安全人員都遇到過的麻煩事——WAF!

由于這是一個非常特殊的案例和一個獨特的注入點,因此,他們開始琢磨如何處理這個 WAF,并試圖通過制作一個獨特的Payloads來繞過它。
繞過 WAF 并非易事, “>”和“<”等特殊字符被正確轉義或編碼,在花了一些時間并利用 JavaScript 技能之后,他們終于找到了一個很酷的繞過方法,可以讓他們成功地執行 JavaScript!

FreeBuf
安全客
一顆小胡椒
E安全
HACK之道
一顆小胡椒
安全牛
FreeBuf
合天網安實驗室
一顆小胡椒
FreeBuf
LemonSec