记一次神奇的垂直越权漏洞挖掘案例

2023-05-10 8,658
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。


现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安设为星标”,否则可能看不到了


这篇文章由群里某位师傅原创投稿,打码较为严重,主要分享的是一次垂直越权漏洞的挖掘思路,希望大家能够从中有所收获吧!


0x01 背景

某个阳光明媚的下午,技术组长安排了一个项目给我,本以为只是一个普普通通的渗透项目,没想到过程不普通,结果也不普通,算不上好,但是总归是收获了一个别致的越权漏洞。


0x02 过程

因为沟通不是很到位,开局直接被嘲讽、buff拉满(假装有图)虽然很生气,但是作为安服仔的我只能吃包辣条消消火,手里不能放松,干他就完事儿了。


使用rad对网站JS简单爬取一下,爬到了许多js文件,其中一个名为common.js


尝试简单利用下,发现返回码大都是405或者302,405是使用的http方法不对,302是由于接口做了鉴权直接跳转至登录页面了。


客户提供了一个普通用户和管理员账户,先登录上管理员用户,然后调用接口:/user/getUserList?role=0


成功调用该接口使用get方法,并且无需添加其他参数即可成功。此时将接口路径复制到带有普通用户凭证的数据包中并且尝试请求,依然可以正常访问。


就挺开心的,发现了一个垂直越权漏洞,并且越权可以查看的内容包含700多个用户的信息。


分享给另一个测试的小伙伴:


但是意外总是来的猝不及防,过了一段时间后再次测试,发现无法垂直越权查看了,直接返回状态码302,我重新登录普通用户获取新的用户凭证继续访问发现:


淦,俺的垂直越权咋没了。重新登录了管理员用户,发现接口又可以正常使用。


此时突发奇想,比对了管理员用户的SESSION值,发现普通用户和管理员的SESSION值一致。


联想前面管理员用户不在线,普通用户无法进行垂直越权,瞬间明白了这个特殊的垂直越权利用的最终奥义。


原理:

短时间内普通用户和管理员的用户凭证一致,当管理员在线的时候,普通用户可以直接越权,管理员不在线,无法越权。


回归到越权访问到的数据本身,发现了用户未加密的密码,尝试登录其中一个用户。


整理出来770多条数据,也就是说拿到了770多个用户的账号和密码;得到的数据为json格式,这里我是用json5-to-table对数据进行处理。


json5-to-table是一个将json文件转化为html或者xlsx表格的工具,默认支持html表格,支持xlsx还需要额外安装扩展包。此次在kali 2021.2下测试安装:


安装要求:

npm版本为7
设置镜像仓库为淘宝的地址


安装命令:

npm config set registry https://registry.npm.taobao.org    # 配置淘宝镜像仓库
npm config get registry    # 有淘宝仓库地址即为配置成功

npm install --global json5-to-table    # 安装
json5-to-table
npm install --global xlsx  # 安装支持json to xlsx的扩展包


使用效果:


整理过数据以后发现弱口令:123456的使用数量在722,占据所有用户比例的93%左右。


先将问题同步给甲方对应负责人(假装有图)当场能给我笑死,然后在文字描述不行的时候,在电话里给负责人讲的时候牵扯到了这个特殊的垂直越权,然后他说这个洞之前就有了,并且询问能否更改数据?


然后我就从common.js文件里面掏出一个用户删除接口,当场创建个测试用户,然后用越权漏洞删除了那个测试用户。


删除前:


删除后:


除了这个垂直的越权以外,删除用户的时候也会返回所有用户的信息,就蛮离谱的,给到负责人:(假装有图)


0x03 总结

1. 给开发大哥的建议:
  • 给用户生成凭证的时候一定要生成不一样,有问题及时修,拖着系统容易出大问题。


2. 给各位好兄弟的建议:
  • 多观察、多想、多实践,总会挖出奇奇怪怪的漏洞。


本文作者:潇湘信安

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/200200.html

Tags:
评论  (0)
快来写下你的想法吧!

潇湘信安

文章数:57 积分: 15

关注微信公众号【潇湘信安】,一起学习网络安全知识!

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号