2015-04-28 31 views
0

我想在Firefox上演示基於DOM「本地」的跨站腳本。 28.禁用urlbar過濾器 - Firefox 28

我對的index.php

<SCRIPT> var pos=document.URL.indexOf("jmeno=")+6; document.write(document.URL.substring(pos,document.URL.length)); </SCRIPT>

這個劇本,我想通過打開URL運行XSS

www.mydomain.com/index.php?jmeno=<script>alert(document.cookie)</script>

在IE11我只是在安全禁用XSS篩選器setings和腳本作品。

Altrought在Firefox中有解決方案禁用此過濾器:browser.urlbar.filter.javascriptabout:config。此解決方案不起作用。腳本總是逃脫。

有沒有解決方法如何讓這個腳本在Firefox中工作?

回答

1

browser.urlbar.filter.javascript不會嘗試從輸入的URL過濾數據,它不是IE錯誤導入的反XSS過濾器的模擬。這只是關於在歷史記錄查詢中顯示javascript:網址,在這裏無關緊要。

您的示例URL不適用於我的任何瀏覽器,因爲字符<>根本無法包含在URL中。輸入時,瀏覽器會自動將它們更正爲URL編碼版本%3C%3E。所以當你訪問location.href時,你會得到一個帶%編碼的尖括號的URL。用天真的字符串切片處理它會使編碼版本留下來,因此標籤不會被解析。

調用decodeURIComponent()通過提取的子字符串使示例正確地易受攻擊(!)。 (儘管一般可靠地提取的查詢參數是更復雜一些。)

+0

我試圖添加'decodeURIComponent()'中的腳本: '' 但現在我得到錯誤「pos.decodeURIComponent不是函數」 – metjuf

+0

'pos'是一個數字,字符串中的索引。你會解碼提取的子串。 – bobince