CSRF&SSRF練習(自用筆記)

花奴丶發表於2024-03-13

什麼是CSRF

CSRF(Cross-site request forgery)跨站請求偽造:攻擊者誘導受害者進入第三方網站,在第三方網站中,向被攻擊網站傳送跨站請求。利用受害者在被攻擊網站已經獲取的註冊憑證,繞過後臺的使用者驗證,達到冒充使用者對被攻擊的網站執行某項操作的目的。

一個典型的CSRF攻擊有著如下的流程:

  • 受害者登入a.com,並保留了登入憑證(Cookie)。
  • 攻擊者引誘受害者訪問了b.com。
  • b.com 向 a.com 傳送了一個請求:a.com/act=xx。瀏覽器會預設攜帶a.com的Cookie。
  • a.com接收到請求後,對請求進行驗證,並確認是受害者的憑證,誤以為是受害者自己傳送的請求。
  • a.com以受害者的名義執行了act=xx。
  • 攻擊完成,攻擊者在受害者不知情的情況下,冒充受害者,讓a.com執行了自己定義的操作。

CSRF和XSS區別:

CSRF 和 XSS 可以理解為兩個不同維度上的分類。XSS 是實現 CSRF 的其中一種方式。通常習慣把透過 XSS 來實現的 CSRF 稱為 XSRF。

解釋:

通俗易懂的說法就是利用偽造連結誘導小A點選,在小A點選之前如果恰好登入過某網站,網站上存有小A的cookie資訊,在資訊還未過期的情況下小A點選你發過去的網站

利用小A賬號進行操作,實現從csrf攻擊,以受害者的身份像伺服器發起請求,從而實現非法攻擊(改密)。

CSRF的攻擊過程兩個條件:
1、目標使用者已經登入了網站,能夠執行網站的功能.
2、目標使用者訪問了攻擊者構造的URL。
CSRF安全問題黑盒怎麼判斷:
1、看驗證來源不-修復
2
看憑據有無tqken--修復
3、看關鍵操作有無驗證-修復
CSRF安全問題白盒怎麼審計:
同黑盒思路一樣,程式碼中分析上述三看\

low:

透過GET方式獲取兩次密碼,兩次密碼輸入一致的話,就可以直接帶入資料中修改密碼

#輸入自己的網頁
<img src="http://127.0.0.3/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#" border="0" style="display:none;"/>

#404網頁構造
<h1>404<h1>

<h2>file not found.<h2>

在 C:\phpstudy_pro\WWW 資料夾中建立一個 1.html ,裡面寫入

medium:

 Medium級別的程式碼檢查了保留變數 HTTP_REFERER(http包頭的Referer引數的值,表示來源地址)中是否包含SERVER_NAME(http包頭的Host引數,及要訪問的主機名,這裡是127.0.0.3),希望透過這種機制抵禦CSRF攻擊。

漏洞復現

其實意思是這個referer中只要出現Host就可以正常操作

惡意網站中是這樣的,顯然是不成立的

Host 127.0.0.3

Referer http://127.0.0.1/

如果是這樣的呢

Host 127.0.0.3

Referer http://127.0.0.1/127.0.0.3.html

這樣就可以繞過,從而實現改密的操作了。

High:

(1)利用XSS獲取cookie

<script>alert(document.cookie)</script>

拿到cookie

security=low; PHPSESSID=7lj6tnrk14bv6a20ethtnq0hs6

再用抓包工具進行修改

相關文章