针对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信息,但它的攻击效果或杀伤力仍是很是大的。