在windows xp系統中配置Damn Vulnerable Web Application (DVWA),藉此安裝一個web服務器,這個應用程序有若干基於web的漏洞,比如跨站腳本 (XSS), SQL注入, CSRF,命令注入等。
安裝步驟
Step 1: 下載並安裝XAMPP
Step 2: 打開XAMPP Control Panel,開啓Apache和MySQL服務
點擊”Start”按鈕,打開服務
Step 3: 查看Windows XP系統主機的ip地址,以便在Kali linux系統上登錄到該Web服務器上。
可以看到Windows XP系統的主機的ip地址爲192.168.43.56
Step 4: 在另一個主機(kali linux系統)上登錄到該服務器上:打開瀏覽器,輸入http://192.168.43.56/dvwa/login.php,回車後可以以下登錄界面:
Step 5: 採用DVWA默認的賬號密碼進(admin/password)行登錄,登錄進去:
Step 6: 點擊“CSRF”功能模塊,會彈出一個修改密碼的頁面:
下面在kali linux中使用Burp Suite,分析剛剛那個修改密碼界面中修改密碼的Http請求包,生成一個修改密碼的URL,然後將這個URL僞裝成html文件,進行CSRF重放攻擊。
Step 1: 配置網絡代理:
① 配置Burp Suite端口監聽
打開Burp Suite,選擇”Proxy”選項卡,然後選擇”Options”選項卡,在”Proxy Listeners(代理監聽)”模塊中可以看到三個按鈕,分別是Add、Edit和Remove。
點擊”Add”按鈕,在”Bind to port”框中輸入端口號8080,在”Bind to address”單選框中選擇”Loopback only”,然後點擊“OK”按鈕。
這樣就完成了Burp Suite端口監聽的配置。
② 配置瀏覽器的代理設置:我們採用的是火狐瀏覽器。
打開Firefox,在工具欄中選擇:“選項”->”高級”->“網絡”->“設置”->“手動配置代理”。
在HTTP代理框中輸入127.0.0.1,端口框中輸入和Burp Suite一樣的端口號,也就是8080
這樣,瀏覽器的代理設置也成功了。
Step 2: 關閉Burp Suite的攔截功能,這樣,瀏覽器就可以正常的收到Web服務器的應答包了,而且在Burp Suite也可以看到瀏覽器和Web服務器之間通信的所有包。
Step 3: 在DVWA頁面中修改密碼後,這裏我們將密碼修改爲12345,再次確認後,點擊Change按鈕。
在Burp Suite找出對應的Http的請求包。
Step 4: 分析這個http請求包:點開這個包,如下圖:
我們可以發現整個修改密碼的過程中,請求數據包中只攜帶了兩個關鍵性的參數:
密碼修改的3對 key:value值:password_new、password_conf、Change
當前用戶的cookie值:PHPSESSID、Security
除此以外,整個密碼修改的請求數據包中再也沒有任何其他可以證明或者校驗客戶端請求的內容了,也就是因爲沒有任何其他的校驗的存在,爲“跨站請求僞造”提供了可乘之機,也是漏洞產生的主要原因。
Step 5:
其中,密碼修改的3對 key:value值:password_new、password_conf、Change 分別對應web頁面的三個框
因此,我們可以提取密碼修改操作的GET請求的URL,然後通過相應的處理後,結合社工的方法誘騙他人點擊鏈接,修改他人的賬號密碼信息,進行重放攻擊。具體方法如下:
① 直接構造URL,誘使已經登錄在DVWA上的用戶點擊:
構造的URL如下:
http://192.168.43.56/dvwa/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change
只要用戶點了這個鏈接,他的賬號的密碼就將修改爲123,效果如下:
② 第一種方式有個很大的缺陷就是:構造的URL指向性太過明顯,誘惑性不夠大,別人不會輕易點擊。所以可以構造一個惡意html表單,更好的僞裝這個URL。
僞裝好的html源碼如下:
用瀏覽器打開後,會出現以下頁面:
只要用戶點了這個按鈕,他的用戶密碼就會自動改爲12
PS:這裏的DVWA服務器的安全等級設置是low,關於其他等級的破解,可以參考:
https://blog.csdn.net/yaofeino1/article/details/54667698
另外,如果過程中把密碼搞沒了,可以參考這個博客:
https://www.cnblogs.com/picaso/p/3195805.html
剛剛是在我們自己搭建的Web服務器上進行的CSRF攻擊,現在嘗試實戰練習一下
此次攻擊的網站是杭州電子科技大學的Online Judge網站,因爲這種Online Judge網站都是刷題網站,用戶登錄後,可以選擇網站上的算法題目並進行編程解答,用戶可以將自己的程序代碼提交給網站的服務器,進行在線判題。由於網站的用戶量大,提交的次數很多,所以此類網站在提交時,沒有任何的驗證等措施,爲我們實施CSRF攻擊提供了可乘之機。
Step 1:打開杭州電子科技大學的Online Judge網站:http://acm.hdu.edu.cn/
Step 2:按照之前在DVWA上一樣,配置好Burp Suite和火狐瀏覽器。
Step 3: 登錄到杭電的Online Judge上(由於我經常在此網站刷題,就用了自己賬號進行的登錄)
Step 4. 在此網站上選擇一道算法題,點擊”Submit” 提交代碼(這裏的代碼是隨便寫的,輸出一個hello),進行答題:
提交成功後,可以在提交列表中,看到我們剛剛的提交記錄:
點擊Code Len那一欄的”98B”字樣,可以看到我們剛剛提交的代碼:
Step 5.到Burp Suite界面找出,剛剛提交代碼的http請求包,如下圖所示
Step 6: 分析該請求包:
請求數據包中只攜帶了兩個關鍵性的參數:
提交代碼的4對 key:value值:check、problemid(題號)、language(代碼語言)、 usercode(用戶提交的代碼)
當前用戶的cookie值:exesubmitlang、PHPSESSID
因此,我們可以構造一個惡意URL,只要用戶點擊這個URL,就會自動選擇一道我們設定的題目,並且提交我們設定好的代碼。
我們將這個URL僞裝到一個html頁面中,html的源碼如下:
只要用戶點個這個html頁面中的按鈕,就會自動選擇題號爲1005的題目,並且提交一段輸出”hello world”的代碼!
Step 7: 將這個文件發給另一臺電腦,在那臺電腦上登錄到杭電的Online Judge網站平臺,打開我們的html文件,如下圖:
點擊按鈕,就會自動按照攻擊者設定的一樣,向題號爲1005的那題,提交攻擊者設定的代碼。