DVWA--CSRF

    @noneface  07 Jun 2016


DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is damn vulnerable.

这是DVWA官网上的简介,通俗的讲,就是一个充满漏洞的Web应用(不过得看设置里面的安全等级)。

CSRF

Cross Site Request Forgery (CSRF)

Web安全里面继xss,sqli又一大安全漏洞。

这种类型的漏洞,大意就是网站上a.com某个操作只需要验证cookies用户状态。

从而让别人可以伪造一个请求,让用户打开浏览器去访问b.com,b.com这个网页又包括了a.com的一个请求(自动触发)。

这个时候,浏览器一般记录了用户在a.com的cookies信息,这样在b.com里面出发了a.com的请求。

并且通过了。这样就是一个CSRF的漏洞。

光看理论,是整不明白的,看一个DVWA里面的例子。

首先,DVWA的security level设为low。

这样才会存在csrf漏洞。

这是一个重置用户密码的例子,只需要输入新密码以及确认密码。

那么,我们再构造一个新的html页面,假设这个页面为b.com,构造出来让用户去访问。

构造的html页面就是一个简单的form,然后value值已经填好了,并且自动提交。

DVWA运行在虚拟机,ip为:192.168.1.107

然后把这个html文件放在物理机器上,并且用python建一个简单的server。

python -m SimpleHTTPServer

一个简单的Server就搭建好,访问localhost:8000。

这样也算是cross site了,从192.168.1.107到localhost,在不同的域。

诱使用户去点击csrf.html,这样就完成了一次CSRF的攻击。

最后结果:

再来看看用户没有登录状态下,结果会是怎么样。

当用户不在登录状态下,页面也就请求失败,跳转到登录界面。

防御

  • referer检验
  • 验证码
  • token

现在的referer可以随意修改,所以防御起来也没什么用。

验证码很繁琐,降低用户的体验度。

所以最好的方法也就是加随机的token进行验证。

EOF


Follow your heart  |   nonefacesay@gmail.com