2007年2月26日 星期一

Firefox 2.0.0.x 及 IE 6,7 共有的 onUnload 漏洞

若在 onUnload 事件處理函數當中透過 document.write() 寫入 script, 則 IE 和 Firefox 都會執行之.

由於輸入新 URL 亦將觸發 onUnload 事件, 攻擊者可透過上述 script 構造出 phishing 頁面.
不過攻擊者將不知道 User 究竟想連到哪裡, 所以他只能瞎猜或總是構造出某個特定頁面, 希望可以矇對.

但 Firefox 的漏洞更糟糕, 它使得攻擊者得以取得 User 欲前往的 URL.
原因是 Firefox 不但執行了該 script, 還以新的 context 執行之, 也就是說, 倘若我們在該 script 當中修改了 location 屬性, 則 Firefox 不但將導向至新 location, 還會夾帶 Referer tag, 當中正是 User 欲前往的 URL.
Proof of concept: IE, Firefox

沒有留言: