0x01 前言
在日常挖掘漏洞的过程中,本想拿点edusrc,毕竟还没挖过相关方向的,动不动就是学生认证,社工、账号收集本就是让我头脑发热的
本次漏洞基本上以API接口延展的,中间经历了文件上传方面,奈何没有利用成功,后端限制严重,基本围绕逻辑漏洞、信息泄露,短信HZ等,先放一张相关企业的查询,由于权重低,注册资本低,交公益SRC了,总结最后写,希望各位观众老爷们看个开心就好
* 文章仅供分享学习参考、请勿用于非法用途、后果自负
0x02 趣事历程
打开某小程序,基本上都是介绍学校和报名的,域名是某企业做的服务,并非学校的域名,那么我就先点个人中心,抓到一个发送验证码的包,尝试第一个发送验证码和第二次发送验证码,都收到了,直接开启intruder模块,成功收到短信,按照补天的说法,超过15次就算是纵向轰炸了
短信HZ +1
修复建议:
对发送频率进行限制,如限制在5分钟内发送一次,每天限制发送3-5次
如已经限制了发送次数,则限制发送频率
后来登录进去了小程序,越权是不行的,后端会在登录的时候生成一个token,这个是没有规律的,然后有个头像上传点,经过测试,前端设置了扩展名上传白名单,此处利用失败
前端接收到文件后,会判断扩展名是否符合白名单规则,如果符合,则上传到对应的目录中去,以当前项目+时间命名,有意思的是,开发把文件落地的file.xxx.com的异机服务器了
经过测试可以断定,是白名单策略,而且没找到文件包含的相关漏洞,暂时告一段落,然后接着对此域名进行打点,fuzz根目录没找到,根据抓包的小程序路径特征,对路径进行fuzz,看到有swagger-ui
查看此页面,基本上所有的api都在这了,玩swagger-ui靠的就是运气,因为有很多请求的要求必须要ID相关的参数,如果id是明文还好说,如果是加密的或者是token无规则的,就得靠运气了
参数比较多,直接用工具碰一下运气
运气比较好,检查一遍,跑出两个信息泄露,用户和员工的,基本上是姓名,手机号,住址信息,大概几千个左右
个人信息原因需要厚码
未授权访问 +1
信息泄露 +2
修复建议:
对swagger-ui开启鉴权
如非必要则不对外开放
此域名基本上打点完了,就是api站点,打点其他子域名,先进行互联网收集其他子域名,根据当时用fofa打点的语句
host="xxx.com" && header="200" && host!="xxx.xxx.xx"
然后挨个浏览打点资产,继续在xxx.m.xxx.com页面拿到短信HZ
登录成功后继续查看,在功能处有文件上传,前端js判定文件类型
按照规则,上传一个图片类型的文件,先绕过前端,然后上传成功PHP文件,还是同样的套路,让人无语的是,图片和txt格式文件可以正常在线预览,其他格式直接下载
很可恨,到嘴的鸭子又飞走了,无奈继续往下打点资产
短信HZ +1
由于资产比较乱,而且时间匆忙,转战到hunter搜集资产,找到了一个测试站运营后台
domain="xxx.com"&&header.status_code="200"&&web.title!="Welcome"&&web.title!="HTTP"&&web.title!="xx"
值得注意的是,这个测试站test.xxx.com/admin(类似于OA,后台管理系统),主要是工作人员管理客户和办公用的,和他们的主站www.xxx.com/admin数据是同步的,但是前端的一些问题主站是没有的(后面才发现的)
首先测试站登录auth.xxx.com页面,当时有两个思路
1. 撞库手机号
2. 爆破验证码
可能我运气比较好,输了个18888888888加无验证码就登录进来了,未授权到手,他这个应该不是故意的,按正常业务来说,在测试的时候,不加验证码是为了方便,而且测试完以后同步到正常业务站,所以说,这个可以当成正常业务站来打
登进去了,但是吧没什么功能啊,正在一筹莫展之际,翻了一下流量包发现,还有惊喜,登录进来后有一个我的同事流量包,从中获取到同事手机号,登录成功
可以查到所有负责的企业和客户信息,该员工负责的某业务下有3000+条客户信息,一千个企业信息(备案资料等),此外还有6-8种其他类型的业务,其他员工信息没登录测试,证明存在即可
其他都是业务上的一些东西了,没有其他功能点,也挺匆忙,没有打点,此外就是xray出来的druid
里面没有可疑uri和session,只能当低危交上去了
任意用户登录 +1
信息泄露 +2
未授权访问 +1
0x03 总结
该企业的站点比较纯,没有涉及OA,框架之类的东西,唯一一个就是堡垒机,基本业务就是计算机和线下业务,面向用户的前端基本上就是报名和学习,下单等,和员工绑定的就是一个id,数据通过swagger-ui传入到数据库,面向员工的前端就是后台(类似OA),对客户企业信息进行管理,同样操作也是通过swagger-ui,值得一提的是,该swagger中需要进行的敏感操作都需要uid或者token,这个是后端无规则生成的,但是信息泄露有些没有进行规则配置,靠运气好直接打点了,总体来说比较简单,但是所需思路很清奇,对api的判断,对swagger的路径遍历等,并没有出现所谓的shiro,fastjson之类的一把梭漏洞,对于用户的操作过滤的还算是比较严格严谨
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放