# DOM-based Lab4 這題是 DOM-based Open Redirection 的練習題,目的是讓你透過 JavaScript 內處理 URL 的方式,把使用者從原網站偷偷重導到攻擊者的網站(通常是釣魚站或 exploit server)。 所以一樣先進入網站。  主頁我看過一遍都是一些文字跟圖片連結,沒有特別的東西,所以我查看每一篇文章的內容,結果在原始碼發現下列線索: ```html <div class="is-linkback"> <a href='#' onclick='returnUrl = /url=(https?:\/\/.+)/.exec(location); location.href = returnUrl ? returnUrl[1] : "/"'>Back to Blog</a> </div> ``` 看起來有點像是被壓縮改過的,所以嘗試把她展開來看: ```js let returnUrl = /url=(https?:\/\/.+)/.exec(location.href); if (returnUrl) { location.href = returnUrl[1]; } else { location.href = "/"; } ``` 也就代表: 這個按鈕點擊後,會把你網址中的 `url=` 參數值直接塞進 `location.href`,而這是 DOM-based redirect,只會在用戶端點擊時才執行。 ``` https://0a7e005a040037b7804c03930043008d.web-security-academy.net/post?postId=6&url=https://exploit-0ace00ec048237c480ce029a017e00b1.exploit-server.net/ ```  我們點 `Back to Blog` 時,頁面就會被跳轉,也意味著這題完成。  :::success ### 為什麼要「點擊 Back to Blog」? 這題是針對那些: - 使用 onclick 操作跳轉的網站 - 沒有好好檢查 url 參數的來源 造成攻擊者可以帶入任意外部網址,誘導使用者點擊後跳轉到惡意網站 ::: ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up