重生第三篇之针对某医院微信小程序的漏洞挖掘
点击上方
关注我们
蓝字
前言
环境配置
然后点击“proxy”--“windows proxy” 至此环境配置完成
漏洞挖掘过程
进入“个人中心”--“挂号记录”这里没有数据,因为我没有挂号--!,查看了一下数据包也没有发现存在可以越权的参数
先去挂个号再回来试试,进入首页选择“预约挂号” ,随便选择一个医师挂个号。
挂号成功之后发现返回一个挂号单信息,我们在burp中可以看到,请求包中有个body=参数
我们修改body=参数的值然后再发包,可以看到成功越权查询到其他用户的挂号信息如 下:
使用burp进行对body=参数进行爆破可以越权获取到大量用户的挂号信息
漏洞二: 我们进入缴费记录模块时发现了一个patientId的参数,但是修改之后发包,发现返回包提示没有权限,猜测应该之前挨过打,修复了这个参数的鉴权,因为自己没有缴费记录,没法测试,这个模块先放一下
返回首页,进入健康体检模块
然后进入个人中心,看看有那些功能模块,这是我们发现在burp的历史请求包中有一个可控的参数PeisPid,但是可惜的是返回包的中的数据全是加密的,能得到的信息很少,只能性别、年龄、出生年月、民族等,然后前端就有个明文的姓名和加密一半的手机号—_—!
不管啦,先intruder梭哈一下看看PeisPid参数能不能越权,结果显示是可以的
我们来测试一下,返回首页,再进入个人中心的同时拦截数据包,修改数据包中的PeisPid值,然后放包,结果成功越权到其他用户的个人信息页面,这里可能有人会说这数据都是加密的啊,你越权了也没用啊。额......确实是没用,不要慌咱接着往下编...挖
注意:这里的peispid咱是可以遍历的昂
先创建一个体检订单看看,返回首页,选择任意一个套餐
然后立即预约、提交订单就会提示订单创建成功,同时burp的历史数据包中会拦截到以下两个数据包,这个是创建订单的数据包
这个是订单详情的数据包,可以看到这个订单详情的数据包里面携带了用户的个人信息而且是明文的。
那问题来了,查询条件是一串加密值,而且如果别人没有订单的情况下我们怎么利用这个漏洞去获取其他用户信息呢?
注意,咱们之前说过peispid是可以遍历的,也就是说可以通过peispid系统中所有已经注册的用户
以下是抽样的结果
然后我们再看创建订单的数据包,同样是以peispid来判断是那个用户在创建订单的,而订单创建完成之后,返回包中又会携带查询订单详情的密文值(应该是订单号的加密值)
这样需要的条件就齐全了
那我们通过修改peispid值,给我们刚刚抽样出来的用户创建一个订单试试,如下,结果显示成功越权给其他用户创建了订单,并返回了密文值
然后通过创建订单的密文值,成功查询用户的个人信息
漏洞三:
到这里我突然想起前面还有一个报告查询的模块,但是我自己的账号没有体检报告记录没法测,那如果我们用有报告的账号去测试是不是还能再挖点呢?
通过漏洞二获取到了目标系统用户的个人信息包含姓名、身份证号、手机号这些的,那么我们直接用户获取到的用户信息去绑定健康卡,嘿,居然没有二次认证可以直接绑,舒服
绑完卡后我们再返回首页--点报告查询,把查询年份拉久一点,看看能不能查询到用户的一些检查报告,嘿嘿 果然可以
随便选择一份报告点击进入报告详情页面,然后我们在burp的分析一下数据包,数据包中的参数就俩,经过测试发现是ZlhisInspectionService.5717002这参数控制查询的
而且在返回中就可以看到用户详细的身份信息了如下,那我们直接对ZlhisInspectionService.57170028 参数,遍历测试看看效果
直接上intruder梭哈
成功遍历出大量的用户体检报告数据,体检报告中又同时携带用户的姓名、身份证号等敏感信息
结束
到此本次小程序渗透就基本结束了,由于目标系统有waf一碰就封啦,我就没有扫端口、扫目录,直接挖逻辑了。