渗透测试之CSRF

CSRF是跨站伪造请求,常见攻击手段发送csrf的连接,通过伪造请求从而受害者点击后会利用受害者的身份发起这个请求。例如新增一个账号,修改用户密码等等。

CSRF攻击成功有两个必须的条件。1.被伪造身份的目标曾在该浏览器上访问过CSRF站点,且cookies尚未过期。2.目标被引诱在该浏览器上访问了我们放置恶意代码的域名或网站。

接下来我们用bwapp演示CSRF。

例子一:第一个例子是利用csrf更改密码

渗透测试之CSRF_第1张图片

点击change并抓取请求数据包。

渗透测试之CSRF_第2张图片

burpsuite发送到CSRF poc

渗透测试之CSRF_第3张图片

我们复制CSRF html到本地,打开


点击提交请求后自动跳转到我们的页面,并且密码被更改成功

渗透测试之CSRF_第4张图片

从上面这个最简单的例子可以知道,CSRF攻击的一个大体流程,伪造一个请求链接,发送给受害者,受害者点击后请求被执行,前提是存在CSRF漏洞的浏览器cookie还没有过期,如果过期了是没有用的。

上面这个例子我们可以直接发送一个连接请求http://192.168.23.248:88/csrf_1.php?password_new=liao1234&password_conf=liao1234&action=change

但是这样会很明显,所以可以在线转成短域名。然后加上一个诱使受害者点击。

例子二:更改密码

渗透测试之CSRF_第5张图片

同样抓包分析存在referer,没有token我们直接把referer置空,发送请求

渗透测试之CSRF_第6张图片

请求结果可以发现直接被执行了

渗透测试之CSRF_第7张图片

说明是存在csrf的。

例子三:银行转账

渗透测试之CSRF_第8张图片

同样抓请求来分析

渗透测试之CSRF_第9张图片

我们看到是一个get请求,我们把账户修改为别的账户,那么我们直接把这个请求放到浏览器中看是否会被执行

http://192.168.23.248:88/csrf_2.php?account=666666&amount=200&action=transfer

渗透测试之CSRF_第10张图片

可以看到请求被执行了账户的金额减少了。

然后总结一下,怎么找CSRF漏洞,一般抓到数据包先看看如果不带有token验证,然后还有一个固定的变量可以被控制,就像上面的密码和确认密码可以被控制一样就会存在CSRF。

还有一种是post请求是=时不验证referer也没有token,测试方法没有token,referer为空请求成功就存在CSRF

所以CSRF的关键是token,看到没token的时候CSRF走一波


你可能感兴趣的:(web安全)