針對web應用安全中csrf漏洞兩種典型的攻擊方式:即輸入和執行,這種簡單模式下的攻擊手段以及中途包含確認頁面的攻擊方法。web
圖解什麼是csrf漏洞瀏覽器
咱們先進行約束,好比存在csrf漏洞的網站叫webA攻擊者webB,受害者userA它訪問的是webA,也就是webA對於受害者user來講它是一個可信的網站。用戶經過瀏覽器登陸了網站A後,輸入了帳號密碼,登陸成功,確認經過,這個時候,這個網站的認證信息產生的cookie就會保存在用戶user的電腦,用戶user在沒有退出登陸網站A的狀況下,去訪問了惡意網站B,B 構造了一個惡意的請求,要求訪問第三方網站,也就是信任網站,這個第三方是相對於B來講的,訪問第三方網站A,發出一個請求,用戶user接收到了這個請求根據B在第四步的要求,瀏覽器帶着2認證經過的cookie信息來訪問A,這個時候網站A就沒法確認這個請求是由用戶user主動發起仍是由惡意網站發起,或者其餘訪問方式發起,沒法判斷這個信息。可是因爲用戶user在第一步已經成功登陸了網站,此時它的cookie信息已經保存,在第四步訪問惡意請求之後這個網站已是登陸狀況下,第四步構造的惡意請求就會在這個執行。假如這裏是要刪用戶user的帖子,那它在訪問這個網站之後網站A裏面發佈的帖子就會自動刪除。安全
實例1:家用路由器CSRF服務器
路由器能夠以這樣的方式登陸,通常狀況下帳號admin,密碼admin登陸地址是192.168.1.1,若是以上面的圖解進行講解,用戶user在訪問網站的時候訪問了惡意的網站B,由於攻擊者已經拆解到了它的默認帳號和密碼,默認信息(ip),那用戶user就不用再登陸路由器,如今咱們構造一個這樣的信息,修改DHCP服務器,好比它的DHCP服務範圍,默認網關已經dns信息,這個時候若是網關和dns信息都改爲一個惡意的服務器地址,那用戶user在訪問這個網站之後,他的路由器裏面的信息就會被篡改,篡改後有什麼效果呢?好比dns服務器地址被改到了攻擊者指定的惡意服務器,那這個時候,用戶上網,經過域名訪問的全部請求均可以在那臺惡意服務器上時事的看到。好比咱們要登陸網銀,那這個時候登陸網銀的帳號和密碼就有可能被攻擊者截取。cookie
<img src=http://admin:admin@192.168.1.1></img>dom
<img src=http://192.168.1.1/userRpm/LanDhcpServerRpm.htm?dhcpserver=1&ip1=192.168.1.100&ip2=192.168.1.199&Lease=120&gateway=0.0.0.0&domain=&dnsserver=8.8.8.8&dnsserver2=0.0.0.0&Save=%B1%A3+%B4%E6></img>測試
實例2網站
在演示環境裏測試一下更改密碼的操做。spa
當前密碼是password,修改爲admin,能夠看到password changedcsrf
若是說當前用戶已經登陸這個網站,咱們知道它修改密碼的方式是用get修改,做爲攻擊者,怎麼來構造這個參數呢?
假設攻擊者構造了這樣一個連接,讓被攻擊者來訪問。用戶密碼由admin改爲了12345678
http://192.168.20.141/dvwa/vulnerabilities/csrf/?password_current=admin&password_new=12345678&password_conf=12345678&Change=Change#
被攻擊者訪問這個連接後會出現什麼問題呢?
在登陸狀態下,被攻擊者訪問了這個連接後,密碼就會從admin改爲了12345678,能夠看到登陸成功。
從這個案例中咱們瞭解到雖然csrf不能獲取到用戶的cookie信息,但它的攻擊效果或殺傷力仍是很是大的。