漏洞挖掘之科创网存在跨站请求伪造漏洞
YFH
Yi1FH2024/02/16原创 软件综合 IP:广东
中文摘要
CSRF跨站请求伪造漏洞
关键词
网络安全计算机科创网漏洞挖掘CSRF

今天也是闲来无事,于是对科创进行了一次漏洞挖掘逛了一圈,发现了科创网多处功能点存在CSRF(跨站请求伪造漏洞)

首先我们来了解下什么是CSRF漏洞:

直白来说就是攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义关注某个了用户,修改用户账户的个人信息

了解完CSRF后接下来我们开始进入主题,首先我们需要分析科创网的功能点

首先我们找到一个用户的主页 我们这里以虎哥的主页为例子

base64ToFile.jpg

可以看到上面有关注用户的功能,关注了那就是虎哥的粉丝了。我们点击一下关注然后再抓一下请求内容的数据包,然后我们可以看到它是发送了一个POST请求到https://www.kechuang.org/u/10/subscribe,并携带了一个请求包内容为{"cid":[]}是用来添加关注分类的,无分类时cid则为空值。发送请求成功后便成功关注成为了虎哥的粉丝 base64ToFile.jpg


再看看请求的地址可以看到https://www.kechuang.org/u/10/subscribe当中有个数值为10再看看虎哥的KCID也是为10这个时候可以猜测地址中的10就是KCID就是用来控制关注的用户的,我们可以尝试看看修改为其他用户的KCID看看会不会成功关注,看尝试修改为科创喵的KCID看到也是成功关注了,所以可以确定地址中的数值就是用来控制关注的用户的,并且数值为用户ID

base64ToFile.jpg

可以看到这里所带的请求包和地址内部没有使用token进行校验(请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求      ,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求),如果这个时候也没有检查 Referer则很有可能会存在CSRF漏洞,直接写POC验证下有没有就知道了,这里选择直接扔给burp生成一个POC

base64ToFile.jpg

可以看到这里是创建了一个创建了form 表单并指定了请求的地址和请求类型并在点击按钮后上传表单

base64ToFile.jpg

先取关虎哥,然后再用开启本机代理使用Burp构建跨域环境 base64ToFile.jpg

base64ToFile.jpg

复制地址到浏览器访问,可以看到是访问到了没有对Referer来源进行检查,再去看看有没有成功关注到 base64ToFile.jpg

看这里也是请求成功成功关注到了,那么验证是存在CSRF漏洞的

base64ToFile.jpg

这样来的话那么我只需要将KCID修改成我自己的然后再构建恶意链接放上科创网诱导兄弟们点击是不是就可以刷粉了,就像这样,不过很明显自己是不能关注自己的

base64ToFile.jpg

当然存在CSRF漏洞的点也不只有这里关注收藏专栏和文章,还有加入黑名单这里也存在了CSRF漏洞,也是只要构造链接给兄弟们点击一下就会在你自己都不知道都情况下就把别人拉黑了,或者在你自己不知情的情况下关注了别人的专栏或者收藏别人的文章

base64ToFile.jpg

可以看到上面请求包上面的Uid就是用来控制拉黑的用户的,只要修改为用户对应的KCID就可以把对方拉黑了。当然我也是都有复现过了,其他功能点的测试步骤都一样就不都放出来了。

当然修复防止CSRF的方法也是有的比如:验证HTTP Referer字段、在请求地址或者请求包内添加token进行验证等等这些我相信科创的技术人员们肯定比我懂,就不过多赘述了。到这里也就结束了,感谢科创的师傅们,还请各位师傅们多多关照 upload_downloader_1708086226220_98426846.jpg

[修改于 2个月10天前 - 2024/02/17 13:15:50]

来自:计算机科学 / 软件综合动手实践:实验报导严肃内容:专业科普
5
14
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
Yi1FH 作者
2个月10天前 IP:广东
929626

感觉自己写的不够详细于是便修改补充了一下 sticker


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
狸猫
2个月1天前 IP:上海
929911

进行渗透工作,请拿到授权书

宣布漏洞,请得到所有者授权


我虽然确信KC不会小题大做针对你,但是别把自己的习惯搞坏了

引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
Yi1FH作者
1个月11天前 IP:广东
930310
引用狸猫发表于2楼的内容
进行渗透工作,请拿到授权书宣布漏洞,请得到所有者授权我虽然确信KC不会小题大做针对你,但是别把自己的...

师傅说的也是,但我也只是将KC的问题发到KC上,便没有在其他的地方发过,再说了审核既然能将我这篇文章通过那也肯定是对文章所涉及问题的危害程度进行了一定的评估才会通过的对吧,确实渗透工作没有事先通知确实不是个好的行为,我下次注意吧,感谢师傅了 sticker

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
1个月11天前 修改于 1个月11天前 IP:四川
930311

这个问题似乎没有太完美的解决办法,你说的办法各有局限性,对于伤害不大的操作或许摆烂更好。站外按钮靠用户洁身自好不要乱按,站内只支持纯链接,大多数地方不支持写html,可以试试看有没有漏网的。

引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
Yi1FH作者
1个月11天前 IP:广东
930313
引用虎哥发表于4楼的内容
这个问题似乎没有太完美的解决办法,你说的办法各有局限性,对于伤害不大的操作或许摆烂更好。站外按钮靠用...

CSRF实际上就是攻击者能预知URL的请求参数及其参数值从而实现伪造该功能点请求。那么是不是只需要构建一个攻击者无法预知的token值就可以了呢?这个数值是随机的,需要请求时带上该token,再每次请求时都进行一次比对,攻击者就无法构建请求参数了。我也不是很明白虎哥所说的局限性到底在哪里。且该攻击不需要在站内编写html,只需要点击链接即可,假如我在KC发布一篇文章在文章中的一个内容中标明说只是我的B站但实际的链接却是我构建的实现CSRF攻击的链接,并在点击链接后发送一次请求再重定向到B站那用户是否能意识到自己已经在无意中访问了恶意链接呢?伤害大不大也是取决于功能点,如若存在该漏洞的功能点不是关注点赞呢而是购买商品、货币转账等呢

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}