某搜索引擎Self-XSS點擊劫持案例分享
在AI橫飛的今天,網站頁面不掛個聊天機器人都會覺得low,筆者在某搜索引擎的頁面上就發現了這樣一個聊天AI,無聊一試發現了一個xss。
0x00 確定xss類型
首先,嘗試過其他瀏覽器後發現都沒有成功,原因很簡單,其他瀏覽器連這個機器人都沒有,喪…,那麼首先推測這個xss的危害用戶應該是比較小眾的一部分,接下來看這個xss如何去利用。由於只是一個娛樂型的機器人,所以與機器人的聊天內容不會較長時間的去保存,一旦瀏覽器關閉,聊天內容也就丟失,不是存儲或者反射型的xss,其實這個xss是一個self型的xss,也就是自己xss自己
0x01 思考利用方式
Slef型的xss利用比較多的方式就是csrf和clickjacking了,我們來看第一種csrf是否可行,首先我們看看這個聊天提交的數據包長的什麼樣?
如圖,關鍵位置都已經打碼,留意未打碼的位置有一個叫sessionId的參數,這個參數標識著當前用戶在這個AI聊天系統中的身份標識,也就相當於一個token,其的來源是cookie中的某一個欄位,於是在這樣的情況下想要成功的利用csrf是比較困難的,我目前的想法就是找到另一個xss把這個sessionId先打出來,亦或者有沒有其他地方會泄露這個sessionId要麼就是存不存在可以直接給這個sessionId直接賦值的情況。
於是想到了第二種方法clickjacking
0x02 clickjacking的利用框架
首先,為了快速生成clickjacking的poc框架,我在gayhub上找到了這個
https://github.com/samyk/quickjack
可以通過截圖的方式方便的把需要劫持的部分網頁截取出來,這個工具也提供在線的使用
http://samy.pl/quickjack/quickjack.html
通過截取之後按下「I『am done「按鈕就會生成對應的截取代碼
0x03 利用這個self-xss
首先,默認情況下是需要用戶點擊去打開這個AI聊天機器人的,於是我們就得先去劫持打開這個AI聊天機器人的按鈕,像下面這樣構造一個註冊跳轉頁面
當用戶點擊之後也就相當於點擊了button背後的聊天的按鈕
至於為什麼是註冊頁面呢,靈感來源於此http://www.freebuf.com/articles/web/130462.html通過剪貼板的劫持我們可以劫持並篡改用戶的輸入,我們來看看註冊頁面長什麼樣?
這裡的第一框是當前頁面上的,只是偽造了樣式,第二次「repeat your email「的框是劫持目標頁面的,包括那個send按鈕也是劫持來的,因為這個提交在劫持的頁面上,所以對我們劫持替換的內容有一點要求:就是我們的替換的xss代碼不能太明目張胆,想啊想啊我想到了這個「x3cimg src=1onerror=alert(document.cookie)x3e 」+copycontent,在xss code後面加上大量的空格然後加上用戶複製的內容,然後因為框就那麼大,所以在用戶ctrl+a,ctrl+c,ctrl+v(具體細節看上面的鏈接)後界面看起來就會像下面這樣
嗯,基本沒有什麼異常,當用戶點擊send,bingo
0x04 結論
這是http://www.freebuf.com/articles/web/130462.html的結論
如今的漏洞賞金項目都將點擊劫持和Self-XSS排除在外,一旦這兩個漏洞同時存在,那麼要在目標機器上強制執行XSS payload也不再是難事。
Dylan Ayrey表示談到很多公司會忽略XSS相關的漏洞報告,他特別提到
攻擊者現在有越來越多創新的方法利用Self-XSS,我認為企業在收到這樣的報告之後,也會開始重視這樣的問題。
我的結論是對上面的結論別太樂觀XD。
*本文原創作者:nancce,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※對不起,我是音樂人:探索音樂密碼學
※屆屆「招黑」的奧運會,黑客在也蠢蠢欲動
TAG:FreeBuf |