freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

DVWA-CSRF
儒道易行 2023-01-08 16:24:37 108971
所属地 河北省

审核大大,这是一篇靶场通关教程学习分享,谢谢。

1.CSRF(Low)

相关代码分析

在这里插入图片描述

可以看到,服务器收到修改密码的请求后,会检查参数password_new与password_conf是否相同,如果相同,就会修改密码,并没有任何的防CSRF机制(当然服务器对请求的发送者是做了身份验证的,是检查的cookie,只是这里的代码没有体现)。

修改密码,然后抓包,记录下修改密码的连接

http://43.247.91.228:81/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

在这里插入图片描述

或者burp右键生成CSRF的poc,保存成HTML文档

<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://43.247.91.228:81/vulnerabilities/csrf/">
<input type="hidden" name="password&#95;new" value="123456" />
<input type="hidden" name="password&#95;conf" value="123456" />
<input type="hidden" name="Change" value="Change" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>

CSRF最关键的是利用受害者的cookie向服务器发送伪造请求, 这里注意, A浏览器留下的cookie不能在B浏览器上使用。

所以当了受害者用了不同的游览器点击链接时, 攻击是不会被触发的。

这里用同一浏览器,打开构造的链接或者HTML文档

在这里插入图片描述

在这里插入图片描述

之后可以用修改后的密码去登陆了

这里构造的链接还可以通过短网址平台来修改

https://dwz.cn/

2.CSRF(Medium)

相关代码分析

在这里插入图片描述

eregi(string pattern, string string)

检查string中是否含有pattern(不区分大小写),如果有返回True,反之False。

可以看到,Medium级别的代码检查了保留变量 HTTP_REFERER(http包头的Referer参数的值,表示来源地址)中是否包含SERVER_NAME(http包头的Host参数,及要访问的主机名),希望通过这种机制抵御CSRF攻击。

在这里插入图片描述

过滤规则是http包头的Referer参数的值中必须包含主机名(这里是43.247.91.228)

我们可以将攻击页面命名为43.247.91.228.html(页面被放置在攻击者的服务器里,这里是x.x.x.x)就可以绕过了

构造CSRF的poc,保存成HTML文档

<img src="http://43.247.91.228:81/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#" border="0"style="display:none;"/>
<h1>404<h1>
<h2>file not found.<h2>

在这里插入图片描述

这里一样用同一浏览器,打开构造的链接抓包

burp里的url可以自己构造

http://43.247.91.228:81/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

在这里插入图片描述

可以看到密码成功修改

在这里插入图片描述

之后可以用修改后的密码去登陆了

3.CSRF(High)

相关代码分析

在这里插入图片描述

可以看到,High级别的代码加入了Anti-CSRF token机制,用户每次访问改密页面时,服务器会返回一个随机的token,向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。

现在要想进行 CSRF 攻击就必须获取到用户的 token,而要想获取到 token 就必须利用用户的 cookie 去访问修改密码的页面,然后截取服务器返回的 token 值。这里可以利用 XSS(Stored) 的 high 级别的漏洞,我们注入一个攻击脚本,使得每次打开页面时都弹出 token 值。

注入的 payload 如下,别忘了 high 级别的 XSS(Stored) 需要抓包后改 name 参数。

<iframe src="../csrf/" onload=alert(frames[0].document.getElementsByName('user_token')[0].value)>

在这里插入图片描述

放包后,每次打开页面都会弹出 token 值

在这里插入图片描述

在页面弹出的iframe框里修改密码,就可成功修改

在这里插入图片描述

之后可以用修改后的密码去登陆了

4.CSRF(Impossible)

相关代码分析

在这里插入图片描述

可以看到,Impossible级别的代码利用PDO技术防御SQL注入,至于防护CSRF,则要求用户输入原始密码(简单粗暴),攻击者在不知道原始密码的情况下,无论如何都无法进行CSRF攻击。

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

博客:

https://rdyx0.github.io/

先知社区:

https://xz.aliyun.com/u/37846

CSDN:

https://blog.csdn.net/weixin_48899364?type=blog

公众号:

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

FreeBuf:

https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85

# 渗透测试 # 网络安全 # web安全 # 漏洞分析
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 儒道易行 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
儒道易行 LV.7
谢天谢地、不忘祖先、敬偎圣贤
  • 77 文章数
  • 80 关注者
红队攻防文库文章集锦
2023-11-27
红队攻防文库文章集锦
2023-11-27
CTFer成长之路之逻辑漏洞
2023-02-27
文章目录