【SRC】CSRF漏洞

CSRF

CSRF (Cross-site request forgery,跨站请求伪造)也被称为One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户请求受信任的网站。

最简单的方法就是抓取一个正常请求的数据包,如果没有Referer字段和token,那么极有可能存在CSRF漏洞。

image-20240415164909558

靶场练习

https://portswigger.net/web-security/csrf

实战案例

首先我们可以操作的功能有创建项目,发布项目,发布项目后会在公开的项目里面展示。保存项目是数据包是以下这样子的,如何来测试csrf漏洞呢?

image-20240417095352193

image-20240417095335280

我关注的点是在thumbnailUrl参数,这个参数是控制我们项目的图片的,如果我们把项目公开,是不是图片也能展示在公共区域。那么怎么造成危害呢?

image-20240417095603460

在退出这个功能点找到了csrf,只要访问https://xxx.com/users/sign_out用户就会退出。那么我们将图片的地址改成退出的链接是不是可以让其他访问那个页面的人退出?

修改成功,但是现在我们项目只能自己看到,别人还看不到,所以我们把项目公开展示了。

如果<img src=”xx”标签可以控制src的地址,那么我们就开始使用刚刚那个方法。

想起来没有,我们返回刚刚分析的csrf里面,是不是可以看到有个get请求包,那么我们是不是可以将这个get链接设置成我们图片项目。只要别人一访问公开展示页面,就会复制我们的项目,访问一次就复制一次。并且影响全网的用户。危害是不是来了!

image-20240417102101172

Burp抓包点击这个功能,出现两个数据包,POST包是保存项目,我就不放出来了。

主要是看这个get包,我只要一访问这个get请求就会复制一个项目。

https://xxxx.xxx/projects/weblab/Og3EHffvvEWChRUyqXInpQ/remix

我们利用无痕浏览器登陆另一个账户,访问此链接,成功复制了项目,说明此功能点存在csrf漏洞,但是危害比较小。

加入我们的数据包不是get请求怎么办,post请求该如何利用?

image-20240417102159461

image-20240417103126075

可以看到<img>标签里面已经是刚刚我 们复制项目的地址了,然后我们公开作品,公共区域已经展示了。

每次访问一下公开项目都会创建一个项目,并且可以复制我们私密的项目,并且复制的项目名我们可以控制,那么我们就可以伪造被盗号的错觉,最后成功将P3危害提升到P2,最后获得1250刀。

案例2

image-20240417105422031

因为这是个较大的影视站点,像某讯某b站都有评论区这些,而评论肯定会加载 img里面的src,头像嘛。既然加载头像那么是不是可以前提在保存头像里的xl参 数进行更改恶意链接进行CSRF攻击呢

更改头像地址,头像:<img src="退出接口"> 在视频评论底下评论,用户点进视频的时候会加载评论区,并且加载用户头像 (退出接口) 导致csrf