SRC实战:分享一个不到500块的高危,史低价(在steam都可以上头条了)。

最近工作忙得飞起,挖洞的时间变少了,一般有什么活动之类的才会花个半天时间去尝试一下。今天这个漏洞有点意思,不到500块的高危,但是我个人认为是严重低估了的,但没办法,白帽子在审核面前没人权啊。

以下主要是过程与思路分析,没截图,因为几百块的高危不配有图。

0x00

入口

这次的入口是小程序,某厂商的一个考试类的小程序,先尝试了一下登录,发现它正常是不对外提供的,使用微信登录后会提示无权限,也没有注册入口。那咋办?直接下一个?我一般看心情,如果心情不好,就下一下,如果当时心情不错的话,我给给予它一点耐心,反编译之后,进行一波代码审计。

代码审计当然是从登录功能开始,这一看就发现了大雷,也不知道是哪个大聪明写的登录功能,正常来说,我们实现登录时,一般是使用账号密码登录,如果成功,则返回用户信息和token,如果错误,则失败。

但是这个小程序有意思了,它登录成功后,只返回用户信息,然后再使用用户信息,通过另外一个接口去获取token。黑人问号?这不白送吗?

敏感数据泄露

直接拿到获取token的接口,先试一下不传任何参数请求一下这个接口,发现它也可以返回一个token,通过这个token,我们进到小程序后,发现有一个获取自己的考试列表的功能,但是请求会报错,这是正常的,因为我们的这个token是没有用户信息的

但是都有列表了,那获取指定数据的详情的接口应该也有吧,而且能写出这种登录功能的开发,我认为存在数据越权的概率大于90%。 (关于数据越权不清楚, 可以看一下这篇《挖逻辑漏洞不懂数据权限怎么赚大钱?》)

继续分析源码,找到获取考试详情的接口,发现只有一个id参数,随便传个数字试一下,这不巧了嘛,返回了别人的考试结果,其中包含了用户的真实姓名、手机号、得分等等。由于id是自增id,通过能够获取到数据的id的最大值来判断,泄露考试详情数据量近7位数,即使去除重复用户的考试记录,泄露的用户隐私数据最少也应该是6位数了。

管理员权限

到这其实就可以交了,但是我都能获取任意用户的token了,不得再深度利用一下?上面有说到, token是通过用户信息获取的,那如果我们知道管理的id,是不是就可以拿到管理员的token了

那这个信息哪里拿?一般公告、题目之类的肯定是由有管理员权限的用户编辑的(不明白为什么可以看一下这篇,有简单提到过《SRC实战:改个返回包就严重了?》),那就看看会不会返回创建者ID之为类的咯。幸运的是,在获取题目信息的接口中,返回了create_id,甚至还返回了create_name(管理员),真的是贴心呢。

拿到管理员的id后,通过管理员的id创建了一个token登录,发现小程序内也没有多出什么功能?那看来这只是一个纯用户端,那后台在哪里?

一般情况下,我会先尝试将小程序的域名直接放到浏览器中访问一下,没想到,在浏览器中访问后直接就跳到管理后台页面了。这还有什么可说的,JS代码审计呗,先找到token的传输方式,再随便找一个接口,用之前小程序获取到的token试一下,直接返回数据,原地起飞,管理员权限拿下。

其实这一步后面也没这么简单,它的管理后台菜单项是后台返回的,还要去猜解参数、构造返回值等,搞了我挺久的。不过都有token了,这些都不是重点了。

0x01

虽然但是,看起来好像危害挺大的样子,最终厂商给的是高危,不过是一个不到500块的高危,理由是边缘产品(虽然它的公告也没有明确的对产品进行分类),我只能说,没见过哪个边缘产品有超过6位数用户的。就这样吧,毕竟话语权在人家那里。


欢迎关注我的公众号“混入安全圈的程序猿”,更多原创文章第一时间推送!

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值