声明:由于传播、利用本公众号湘安无事所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。如有侵权烦请告知,我们会立即删除并致歉。谢谢!
本文原创作者为星球成员: Eureka. 师傅
某单位小程序存在逻辑漏洞
前言
前段时间参加某省hw,结束之后反过来复盘,检测一下自己单位的小程序,发现前端一个类似于“查找单位人员”的功能点,背后的接口存在未授权问题,直接从前端访问还不会触发,通过简单的更改header请求头,使得功能点返回成功,进而拿到了所有单位人员的工号,身份证,证件照,手机号等敏感信息。
漏洞复现
- 首先配置小程序测试环境:使用Clash,将系统代理端口改为burp的监听端口8080,开启全局系统代理。
- 打开小程序,主页下方”实习汇报“功能,点击”添加“,点击下方”汇报给“。
- 在这个页面发现上方出现了搜索框,在框中随意输入一个已知的名,然后抓包看看后面调用的是哪个接口。
- 前端测试后发现输入名称搜索没反应,直接通过接口发包也是没有响应包,这是怎么回事呢?功能失效了?
- 仔细再回头来观察请求头,经过比对发现,其中有个参数"Token"是空的,再次抓包小程序其他功能点,发现都存在这个"Token"值。因此推测:此功能还没完善好,开发人员故意设置了请求头Token值为空,从而响应就是空的。
- 通过其他功能页面抓包得到的Token,我们手动添加到这里,再次发包,发现成功回显了,通过仔细观察发现回显的数据为json格式,并且数据中出现了大量的敏感数据例如:证件照、身份证号、手机号、工号等。
- 推测此接口为查询接口,再加上请求包格式为json,所以推测可以直接通过其他的字段查询,如果有所有教师信息的共有字段,那么不就查询到了全校所有教师的信息了吗?OK,直接试试:添加字段:"creator":null
- 通过返回包发现,已经返回了全体单位人员的信息,再将limit参数改为最大,通过更改page可以实现翻页。
总结复盘
由于开发疏忽,导致查询接口存在逻辑问题,把一些没有必要返回的敏感信息也返回了,从而导致了泄露敏感信息,同时接口的查询逻辑也有问题,导致了利用相同的键值对能查询到大量类似的信息。从攻击者的视角来看,我们在日常测试时,如果遇到一些前端无法触发的功能点,不如认真分析一下请求包与相应包,分析下header中是不是缺少什么东西,将其与其他可触发的功能点进行比较,也许会发现意外收获哦~
原文始发于微信公众号(湘安无事):记一次某单位小程序存在逻辑漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论