其实你越会记得他。人的烦恼就是记性太好,如果可以把所有事都忘掉,以后每一日是个新开始,你说多好。——欧阳锋 《东邪西毒》
某次渗透项目中存在一个github 2k⭐的产品。
没啥说的,看过程
官网的在线试用平台
有在线试用,申请一个账号,然后进行试用
在里面找到测试脚本
执行成功
但这是有账号密码的前提,而且很多项目都给开发出来了
而我们的测试系统长这个样子。
因为这个系统在互联网上还有几千条,找找看有没有带注册接口的
有一个,然后我们尝试一下,看接口通不通用
看来没什么问题,注册成功了
基本上啥都没有,然后就在js里面翻接口,还有官方文档
因为我们已经登录了,所以有session,现在就看这个系统鉴权严格不严格,因为这两个接口是管理员才能查看的。
Get一下,发现没问题
因为没有许可证,所以我普通用户创建不了任何东西,也查看不了
现在只能继续在官方文档里面翻,或者在试用网站里找相同的接口。
创建项目成功
但是里面啥都没有
然后找到了这里
添加成员,点击这里
会自动把所有用户显示出来
手机号,邮箱这些都有,算是一个信息泄露漏洞
然后点击添加成员,就可以获取到这样的一个数据包
Namespace是项目名称,分析发现是最开始发现的project_name
数据包里有个uid,这不就是用户的id嘛,看来是绑定uid以及namespace的,试试绑定别人的namespace到我的uid。
然后就成功获取到被人的项目
获取到这些信息,然后去尝试在试用系统上执行命令的操作
命令执行成功
整体来说整个过程就是:
1.信息搜集发现官方文档以及同站,试用站点
2.通过越权可以做任意操作
3.信息泄露
4.逻辑漏洞绑定项目和uid
5.执行命令
补充:后面测试发现官方文档中api存在大量未授权,也就是报告前面的部分越权其实是未授权漏洞
往期文章推荐