# CSRF (Cross-site request forgery) ###### tags: `web hacking` 這是 portswigger 的 web hacking academey 系列,我目前就是看一篇原理然後做一個初步的練習,之後再來補完。 這是種 web 攻擊手法,簡單講是在 cookie based session 的網站上誘導使用者點選一些選項,而該選項背後會觸發某種需要使用者權限的動作(更改帳密、重設 email 之類),當然使用者本身對這些更改的動作毫不知情。 ## Impact 視行為和使用者權限而定,小的如換密碼、 email ,大一點的到把攻擊者權限提升。 ## 要素 1. 要騙使用者攻擊的目標 2. 基於 cookie based session 的網頁 3. 沒有攻擊者無法掌控的要素 :::info 雖然說是基於 cookie based session 但像 http basic 驗證或憑證驗證也可以 ::: ## 使用場景 以下場景基於 portswigger 的 academy 要知道那些點可以攻擊前,我們必須先探查一下網站,透過網站給的帳密登入進網頁:  看到有 change email 的選項,似乎可以誘導使用者在不知情的情況下更改掉 email 在攻擊前還是必須要知道更改 email 的 http request 長什麼樣子:  用 burp suite 攔截之  看到更改 email 的 http request 格式了,透過 [CSRF poc generator](https://github.com/merttasci/csrf-poc-generator) 可以生成類似的 http request  (我擷取上次的 poc generaotr 所以有點不一樣,但不影響) (pro 版本的 burp suite 有自帶,但我窮所以...) 到這邊後先去 exploit server :  貼上剛剛生成好的一串 poc  因為實驗要求要自動送出,所以自己補上 `document.forms[0].submit()`  就好了,剩下就是等使用者上當開啟這個網頁,這個 request 就會被送出然後 email 就被改掉 不過這是沒有任何防護的 CSRF 就是了
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.