2014-01-26 52 views
0

我正在嘗試做一個跨框架腳本攻擊PoC(https://www.owasp.org/index.php/Cross_Frame_Scripting)在我的工作顯示這種攻擊對任何版本的IE瀏覽器有多危險。 通過在IE8或更新版本上使用X-FRAME-OPTIONS: deny標頭,可以輕鬆防止此攻擊。但是,如果每個開發包括所有Web服務器響應中的頭部,這將是非常好的。 使用下面的代碼,我可以看到帶有鍵碼的警告窗口,但是在目標頁面上的窗體的情況下,我看不到在窗體內按下的鍵的字母。框架onkeydown反饋

<script> 
     window.onkeydown = function() { 
       alert(window.event.keyCode); 
     } 
</script> 
<frameset onload="this.focus()" onblur="this.focus()"> 
     <frame src="http://www.uol.com.br"> 
</frameset> 

使用簡單的代碼下面我可以按下鍵,看看兩者(警告窗口和窗體中的字母)。

<script> 
     window.onkeydown = function() { 
       alert(window.event.keyCode); 
     } 
</script> 
<input> 

第一個代碼塊中是否存在缺失的內容? 謝謝!

回答

0

你的代碼可能沒有問題。 Cross Frame Scripting不是一個真正的漏洞 - 它只是舊版Internet Explorer中的一個漏洞,它包含一個在父框架內觸發onkeypress事件的錯誤,儘管域不匹配,這通常會受到Same Origin Policy的保護。

其他跨幀腳本攻擊僅僅是Cross Site Scripting攻擊名稱不同,因爲它們涉及到幀。

+1

點擊劫持怎麼辦?當然,他們的攻擊面很小(只需點擊鼠標就能觸發有意義的狀態變化的頁面),但它們仍然與XSS截然不同。 – Aurand

+0

我同意你的看法,但這是我的觀點:點擊頂起是點擊頂起,我不會稱之爲跨幀腳本。 XFS似乎混淆了幾種不同類型的攻擊之間的水域,而漏洞只屬於一個類別(xss,瀏覽器錯誤或點擊頂點)。我同意添加標題是一個好主意,儘管這可以在Web服務器級而不是應用程序完成。 – SilverlightFox

+0

謝謝@SilverlightFox!我使用IE11測試了第一個代碼,並且我可以看到帶有按鍵的HTML代碼的警報窗口。我可以使用ajax發出請求並將密鑰代碼發送到惡意站點。問題在於我無法在輸入框中看到相應的字母,這意味着任何用戶都會認爲網站存在問題,因爲他/她無法看到他們正在輸入的內容。 –