重生第三篇之针对某医院微信小程序的漏洞挖掘

admin 2024年1月14日20:02:44评论25 views字数 1840阅读6分8秒阅读模式

点击上方

重生第三篇之针对某医院微信小程序的漏洞挖掘
重生第三篇之针对某医院微信小程序的漏洞挖掘
重生第三篇之针对某医院微信小程序的漏洞挖掘

关注我们

蓝字

重生第三篇之针对某医院微信小程序的漏洞挖掘

重生第三篇之针对某医院微信小程序的漏洞挖掘

前言

    此篇文章主要是针对某医院微信小程序的漏洞挖掘,微信小程序默认是直接使用自己微信登录的,我们对小程序的漏洞挖掘,关注点还是在逻辑漏洞上面。
重生第三篇之针对某医院微信小程序的漏洞挖掘

环境配置

工具:Burp+Charles+windows版本微信
具体环境配置如下:
安装Charles解压后运行软件,安装ssl证书到系统受信任的根证书下。
在微信客户端打开要抓包的小程序,观察Charles左侧的请求
详细操作如下图:

重生第三篇之针对某医院微信小程序的漏洞挖掘

重生第三篇之针对某医院微信小程序的漏洞挖掘

重生第三篇之针对某医院微信小程序的漏洞挖掘

重生第三篇之针对某医院微信小程序的漏洞挖掘

重生第三篇之针对某医院微信小程序的漏洞挖掘

重生第三篇之针对某医院微信小程序的漏洞挖掘

然后点击“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一碰就封啦,我就没有扫端口、扫目录,直接挖逻辑了。

重生第三篇之针对某医院微信小程序的漏洞挖掘

原文始发于微信公众号(Seraph安全实验室):重生第三篇之针对某医院微信小程序的漏洞挖掘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月14日20:02:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   重生第三篇之针对某医院微信小程序的漏洞挖掘https://cn-sec.com/archives/2392686.html

发表评论

匿名网友 填写信息