DVWA系列之17 CSRF攻击介绍与实施
CSRF(Cross-Site Request Forgery)跨站點請求偽造,這種攻擊方式的特點是:攻擊者盜用你的身份,以你的名義進行某些非法操作。CSRF能夠使用你的帳戶發送郵件,獲取你的敏感信息,甚至盜走你的財產。
當我們打開或登錄某個網站后,在瀏覽器與網站之間將會產生一個會話,在這個會話沒有結束時,你就可以利用你的權限對網站進行某些操作,如:發表文章、發送郵件、刪除文章等。當這個會話結束后,你再進行某些操作的時候,Web應用程序可能會提示“您的會話已過期”、“請重新登錄”等提示。
比如當我們登錄網上銀行后,瀏覽器就已經與可信的站點建立了一個經過認證的會話。之后,所有通過這個經過認證的會話發送請求,都被視為可信的動作,例如轉賬、匯款等操作。當我們在一段時間內不進行操作后,經過認證的會話可能會斷開,再次進行轉賬、匯款操作時,這個站點可能會提示你:您的身份已過期,請重新登錄、會話已結束等信息。
CSRF攻擊正是建立在會話之上的,比如當你登錄了網上銀行,正在進行轉賬業務,這時你的某個QQ好友(攻擊者)發來一條消息(URL),這條消息是攻擊者精心構造的轉賬業務代碼,而且與你所登錄的是同一家網絡銀行,你可能認為這個網站是安全的,然而當你打開了這條URL后,你帳戶中的余額可能會全部丟失。
下面我們就來實施一次CSRF攻擊。進入DVWA,選擇low級別,可以看到這里的CSRF測試是要進行更改管理員密碼的操作。默認的管理員密碼是password,為了能夠直觀地查看管理員密碼,我們在開始菜單中找到AppServ,執行其中的“MySQL Command Line Client”,進入MySQl操作界面。執行“use dvwa;”命令打開dvwa數據庫,執行“select user,password from users where user = ‘admin’;”命令,可以查看到目前的admin用戶密碼的md5值。
?
下面我們在CSRF的頁面中將管理員密碼改為123,可以查看到md5值隨之改變。
?
此時我們仔細觀察瀏覽器地址欄中的URL:
| http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change# |
如果黑客獲知了這個URL,那么是否就可以隨意更改管理員密碼呢?比如構造下面這個URL,是否就可以將管理員密碼修改為abc?
| http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=abc&password_conf=abc&Change=Change# |
如果黑客是在自己的電腦上直接執行這個URL,那么肯定是無效的。原因是必須要具有管理員的權限,才可以修改密碼。也就是前面所介紹的,必須要先以管理員身份與網站之間建立好一個會話之后,才可以執行修改密碼的操作。
那么黑客就可以構造一個網頁,將上面這段代碼放入網頁中,然后誘騙管理員打開這個頁面,如果此時管理員恰好正在對網站進行操作,在管理員的瀏覽器與網站之間建立好了會話,那么上面這段代碼就會生效。
比如我們在一臺已經搭建好Web環境的虛擬機(IP地址192.168.80.132)中編寫一個名為csrf.html的網頁,代碼如下:
| <img src=mm.jpg> <iframe src="http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=abc&password_conf=abc&Change=Change#" frameborder="0" ;0" /> |
然后在已經登錄進入DVWA的狀態下,在本地的瀏覽器中打開這個網頁http://192.168.80.132/csrf.html:
?
此時就會發現管理員密碼已經被自動修改為了abc:
這就是一次典型的CSRF攻擊,由此可見CSRF的兩個主要特點:
-
CSRF攻擊建立在瀏覽器與Web服務器的會話中;
-
欺騙用戶訪問URL。
本文轉自 yttitan 51CTO博客,原文鏈接:http://blog.51cto.com/yttitan/1727756
總結
以上是生活随笔為你收集整理的DVWA系列之17 CSRF攻击介绍与实施的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Less学习笔记 -- Mixins(混
- 下一篇: php-fpm详解