兩個簡單的CSRF漏洞實例
00
前言
CSRF(Cross-site request forgery)跨站請求偽造,通過偽裝來自受信任用戶的請求來利用受信任的網站,這邊分享兩個漏洞代碼示例。
01
實例一:利用CSRF備份資料庫
環境搭建:
DocCms官網:http://www.doccms.com
程序源碼:DocCms2016
下載地址:https://pan.baidu.com/s/1pLclifL
代碼分析:
在doccmsadminicontrollerssystemack.php中,
export函數直接對提交上來的參數tables/sizelimit進行處理,導出sql備份文件,未對訪問來源進行有效驗證,導致資料庫備份模塊存在CSRF漏洞。
漏洞利用:
1、構造CSRF漏洞利用代碼,只備份管理員用戶表doc_user:
2、在網站首頁在線留言提交CSRF漏洞利用代碼:
3、當管理員在後台查看留言信息時,自動備份資料庫到/doccms/temp/data目錄下:
02
實例二:利用CSRF添加管理員
環境搭建:
YzmCMS官網:http://www.yzmcms.com
程序源碼下載:http://pan.baidu.com/s/1pKA4u99
代碼分析:
漏洞文件位置: /application/admin/controller/admin_manage.class.php第35-59行中:
這段函數中進行添加管理員操作,只進行管理員身份驗證,未對訪問來源進行識別,導致程序在實現上存在CSRF漏洞。
漏洞利用:
1、構造CSRF漏洞利用代碼如下:
1.>
2.
3.
4.
5.OWASP CRSFTester Demonstration
6.
7.
8.
34.OWASP CRSFTester Demonstration
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
2、當管理員瀏覽該頁面時,自動創建管理員賬號admin
3、利用admin賬號可成功登錄後台進行任意操作。
03
修復建議
在服務端的防禦,如驗證HTTP Referer欄位、在請求地址中添加token並驗證、在HTTP頭中自定義屬性並驗證。
04
END
不少CMS缺少對代碼安全的考慮,CSRF仍然是一個普遍存在的安全問題。一些企業網站類型的CMS,利用CSRF備份數據、添加管理員等操作,都是很常見的漏洞場景。
Bypass
About Me
一個網路安全愛好者,對技術有著偏執狂一樣的追求。致力於分享原創高質量乾貨,包括但不限於:滲透測試、WAF繞過、代碼審計、安全運維。
TAG:Bypass |