不一样的CSRF
2023-2-6 11:4:1 Author: JDArmy(查看原文) 阅读量:21 收藏

前言

在网络安全从业者中,相信都免不了学习OWASP TOP10漏洞进行入门学习,从而真正开始认识网络安全。在TOP10中,CSRF虽然最容易挖掘,但是因为其需要用户点击交互才会触发,又随着安全知识的普及诱骗他人点击第三方链接也越来越困难,就显得其是那么的鸡肋。也因为需要交互的原因,所以国内大部分SRC都是不收取这个漏洞,以至于现在还大量存在着CSRF漏洞。

大家都知道组合拳漏洞通过将不同危害较低的漏洞组合在一起,重新组合成为高危漏洞。今天给大家介绍的是如何通过组合CSRF漏洞以及一些挖掘小tips,使其变成无感交互成为被动触发式CSRF达到不一样的效果。

组合拳(XSS+CSRF)

因为CSRF漏洞需要用户主动发起请求才会进行触发,所以我们的思路就是如何让用户在正常使用应用操作中,用户无任何感觉自动发起恶意请求。那就是XSS+CSRF了,通过利用HTML标签中的IMG标签,在src属性值中填入CSRF链接,用户就会在加载页面的同时自动发起恶意请求。

但是对于现在这个WAF满天飞、WAF规则不断完善、开发人员安全意识不断增强的时代,挖掘XSS漏洞也已不像从前那么容易了。所以我们需要对这个组合拳再进行拆解。我们不一定要挖掘到XSS漏洞,我们真正需要的是IMG标签中的src属性可控,这样就会大大降低漏洞挖掘的门槛了。

常见的漏洞点挖掘

IMG标签的作用是为被引用的图像创建占位符,加载图片。而我们要挖掘的点是src属性值可控,所以就需要寻找图片上传功能点,图片展示功能点。因为现在许多网站为了防止网站被攻击者上传webshell,都会通过将图片上传存储在桶上或者第三方站点上再通过设置url的方式加载第三方图片,这就让我们有了许多的机会,常见的漏洞点:

  • • 头像上传功能

  • • 消息发送功能

  • • 文章发布、评论功能

  • • 隐藏的图片上传功能(下面给大家分享)

案例分享一(头像上传)

这是个目前很常见的头像上传功能点,首先通过POST方法上传图片到第三方网站,返回图片url链接。再通过PUT请求设置图片的url,导致这里是src属性值可控。

案例分享二(文章评论)

大部分的网站在文章发布、评论功能点上传图片然后发布过程中获取图片的方式是通过图片id来获取图片,但是也有的网站并不是这么获取的。如下图,在发布评论的时候拦截数据包发现是通过直接设置src属性来加载图片的。

案例分享三(消息发送)

部分网站上传图片功能不支持本地加载,直接让我们自己填入一个图片url地址然后进行加载。当然单单这么看是不能确定你填入的url最后真的会被写入到src属性值中,需要自己发送完成后再进行验证。

不知道大家记不记得文章上面说的一句话我们要挖掘的点是src属性值可控,所以就需要寻找图片上传功能点。这句话其实是错的,我们要找的其实不是图片上传功能点,我们要找的是能加载第三方资源的功能点。除了图片加载功能,视频加载功能也是可以触发的。

如何寻找合适的CSRF功能点进行配合

上面讲了如何挖掘加载第三方资源链接可控的方法,接下来谈谈如何配合合适的CSRF功能点进行危害最大化。

第一个案例分享的是头像上传功能点src属性值可控。在别人访问我们的主页、我们评论帖子、我们访问别人主页等功能之后都会加载我们的头像,所以我们可以配合容易被忽略组合之后危害又大的功能点登出功能。试想一下如果自己的帖子很火在首页展示,头像也展示出来是不是就没人可以成功登录这个网站了。又或者可以官方发布的帖子中随便评论只要自己头像被加载,用户一访问官方帖子就自动退出。对用户的影响很大,当然如果能结合像什么支付CSRF、修改密码CSRF等重要功能点就更好了。

第二个案例分享的是文章评论功能。在这个流量时代,粉丝量关注量显得那么重要。如果在像某书这种平台挖到取关CSRF,我们就可以在大博主或者视频下插入取关CSRF,只要粉丝一访问就自动取关。当然还可以在大博主视频下插入给自己关注的CSRF,让自己瞬间涨粉成为大博主。

第三个案例分享的是消息功能,相信应该每个人看到有人给你发送消息都会打开看看详情吧。当时作者在挖掘CSRF点的时候发现登出这个功能并不存在CSRF,但是删除好友功能却存在CSRF。但是我们又怎么获取对方的好友列表呢?这就得感谢开发了,开发把好友列表展示功能是默认打开的,所以我们只要访问别人主页就可以获取对方及其所有好友id。在发送消息中填入对方所有好友id,只要对方一打开消息查看就会把自己所有好友删除。默认好友展示这个功能怎么看都不像bug,但是在这个组合拳中却体现了其重要性。

隐藏的漏洞点挖掘

相信大家访问过的网站一定存在没有图片上传功能的网站。其实有一定的概率是被开发隐藏起来了,我们一起来看看如何发现。

以下是个没有图片上传功能的评论功能,但是我们发现文字加粗功能是以[b][/b]形式加载的。

又联想到其他漏洞点存在[img]标签,所有我们可以猜测是否存在隐藏的[img][/img]可以加载图片。事实证明确实存在隐藏的[img]标签,当然大家也通过fuzz发现其他的隐藏标签。

WAF的绕过

虽然src属性的拦截不像xss拦截那么严格,但或多或少还是会存在拦截。分享下作者自己的一些绕过思路,如有其他方法可以互相交流下。

①黑名单绕过:有的网站如果你在src属性填写该网站链接会直接被拦截。绕过的思路:通过短地址转换进行bypass。

②匹配绕过一:有的网站拦截规则是是否存在xxx.com且必须是域名不能添加@这种字符。绕过思路:创建相似域名+302跳转bypass。

我们可以通过注册aaaxxx.comaa.com的域名+在域名下部署302跳转链接来绕过。

③匹配绕过二:于上面的匹配规则不同,有的网站是匹配是否存在http://xxx.com。相较于上面匹配就比较好绕过。绕过思路:更改关键字位置bypass。

http://csrf.com?csrf=http://xxx.com

④通用的绕过思路:分块编码、pipline绕过、编码等等

其他的一些利用思路

当我们发现img标签可控,但是无CSRF点的时候改如何利用呢?现在企业的waf都会自动识别攻击请求,当量达到一定程度就会自动封禁对方IP。我们可以通过像在文章评论这种功能点可以插大量图片的功能点,插入大量的攻击payload。用户访问就会自动向网站发起攻击请求,被企业waf误判而封禁正常用户IP,造成用户正常使用影响。

祝大家看完文章能有所收货!如有不足之处还望指出。


文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0ODI2NjUzMQ==&mid=2247484095&idx=1&sn=96f5f760422e76f9117f2cfe6b73784c&chksm=c36b71f3f41cf8e5be759fa9b88e365cfff9a906e2c18a5e9ddde6ced9143fb8e8070cb3665f#rd
如有侵权请联系:admin#unsafe.sh