實驗目的
掌握POST型CSRF基礎知識
實驗原理
管理員點擊惡意鏈接,密碼被修改
實驗內容
POST型CSRF漏洞
實驗環境描述
帶有CSRF漏洞的注冊登錄系統
實驗步驟
登錄密碼
用戶名為 root 密碼 toor
打開apache2
首先,雙擊,kali左側快捷欄,從上往下數第二個圖標,從而打開終端,之后,輸入 service apache2 restart 並回車,如出現下圖所示情況,即apache啟動成功。
打開mysql
繼續輸入service mysql start並回車,如出現下圖所示情況,即mysql啟動成功
注冊賬戶
雙擊kali左側快捷欄從上往下數第一個圖標,打開kali自帶瀏覽器,在上面的地址欄中輸入如下的地址
http://127.0.0.1/index.html
選擇快速注冊,填寫相關信息后即可注冊成功
登錄賬戶
注冊后點擊登錄跳轉至登錄頁面,輸入用戶名密碼即可登錄
低級別POST型CSRF
查看源代碼
雙擊,kali左側快捷欄,從上往下數第三個圖標,打開文件管理,進入目錄 /var/www/html/chpasswd,打開low_post.php
可以看到這里使用了$_REQUEST
來獲取參數,這樣get和post的數據都能夠處理
點擊惡意鏈接
在瀏覽器新開一個頁面,在地址欄中輸入http://127.0.0.1/exploit/low_post_exp.html
,模擬管理員點擊惡意鏈接的操作
進入頁面后右鍵點擊View Page Source可以查看網頁源代碼,可以看到底部有一個
<img src=http://127.0.0.1/csrf/low_post.php?new_pass=123456&conf_pass=123456>
相當於管理員訪問了這個鏈接,密碼會被修改為123456
再一次登錄
這時回到原來的頁面,點擊注銷,登陸時可以發現原先的密碼不對了,密碼變為了123456
為方便后面的學習,可以點擊修改密碼將密碼修改回去
高級別POST型CSRF
查看源代碼
雙擊,kali左側快捷欄,從上往下數第三個圖標,打開文件管理,進入目錄 /var/www/html/chpasswd,打開plus_post.php
點擊惡意鏈接
在瀏覽器新開一個頁面,在地址欄中輸入http://127.0.0.1/exploit/plus_post.html
,模擬管理員點擊惡意鏈接的操作
進入頁面后右鍵點擊View Page Source可以查看網頁源代碼,可以看到構造了一個post類型的表單
相當於管理員發送了這個post數據,密碼會被修改為123456
再一次登錄
這時回到原來的頁面,點擊注銷,登陸時可以發現原先的密碼不對了,密碼變為了123456
完美防御
雙擊,kali左側快捷欄,從上往下數第三個圖標,打開文件管理,進入目錄 /var/www/html/chpasswd,打開impossible_ch.php
可以看到使用了post方式傳遞數據,並使用了checkpass
函數檢測原有密碼是否正確
此時就比較安全了