未经允许,禁止转载!

介绍

记录当时作为外援帮别人参加攻防演习时候,关于某医院的漏洞挖掘及提交,而且当时做外援带的人都是一群研究生,对外说好歹咱也是带过研究生的人(/狗头保命)。文中一切工作都是在有授权情况下进行,未授权进行测试属于违法行为,请自重!

流程介绍

关于医疗行业的漏洞,从个人多个测试经验的角度出发,一般可以对目标的网站系统,OA办公系统,挂号系统等入手;

前期的信息收集可以先确认医院的域名及其子域名信息,然后也可以医院的官网获取很多有用的信息,因为如果有OA或者其他办公系统,登录用户名一般都是医生的姓名缩写或全写,而这些信息官网的医生介绍一般都会有很多。如果没有的话可以使用Burp组合爆破姓名缩写,从而确认账号。但是这次主要说的是微信公众号(也可以是小程序)的测试。

目标介绍

由于当时是关于整个市的攻防演习,上头就给了一个excel,说里面都可以打,当然里面包含了各式各样的目标,什么类型的都有,并且由于我只当三天外援,所以只能尽量挑软实力捏了(毕竟gov也搞不动加虽然授权但也不敢搞)。然后就看到了列表里面有几家医院,首先都是打开了官网看看,没啥可直接打的,然后那些医院大多都有微信公众号用于挂号,然后就主要说说当时挖到的漏洞吧,虽然很常规,但是也就是记录一下。

哦,还想起来了,我百度云服务器就是在这个项目上被封的,巨亏。

开始测试

当时该医院找到的漏洞是任意支付漏洞,就属于一分钱挂号或者如果医院方将医院费用转到了这上面支付,多少钱也能改成一分钱。本文就大概说说当时的测试步骤。

还有就是,本文是从当时提交的攻击方成果报告里面提取的,然后,当时的测试截图都没了,就很少,就纯当记录了。好了废fa不多说,直接开始:

  • 首先关注目标医院的微信公众号,一个医院正常的公众号都是有预约挂号、查询以及医院的新闻等信息。所以综合起来最容易有的漏洞就有:SQL注入,越权(逻辑漏洞),任意支付(逻辑漏洞),跨站脚本,信息泄露,未授权等漏洞。因为本次讲的是任意支付漏洞,所以我们直接去挂号。

  • 进入诊疗服务后选择挂号,由于没有图片,现在也懒得再关注这个公众号跑一遍,并且漏洞肯定早二八年就修复了。挂号的时候任意选择科室以及医生。当然这里用的挂号信息都是虚拟的(主要是不敢用自己的,怕被打)。在付款页面之前抓包,然后这时候请求包里面一般会有个参数和金钱有关系,稍微留意下。这里该医院挂号时有关金额的参数是“total_fee”,然后将参数里面的值,也就是金额800(这里是800分钱,等于8块钱)修改为其他金额。

  • 然后将金额修改为10,现在想想真后悔,亏了一毛钱而不是一分钱。修改了金额后请求正常转发,然后手机的页面也正常刷新到支付的页面,这个时候发现支付页面的金额变成了一毛钱,然后点击支付。

  • 这时候成功的支付了,任意支付漏洞的步骤也完成,后面就需要确认是否挂号成功。确认的方式当然是回到微信公众号去看看自己绑定的就诊卡挂号情况啦。

  • 整个任意支付漏洞的流程到这里就结束了,虽然过程很简单,但是也就当分享一下关于医院的漏洞以及测试方法;然后其实测试时候有些参数还有注入的,但是利用个人看来比较苛刻,语句闭合比较困难,丢给sqlmap梭哈没有成功,就没有利用和提交了。

测试结束

成功挂号后咱也不敢真的去看病,就怕人过去时候是好的,出来时候就是坏的了。至于还有些人可能想着一毛钱挂了号,然后去医院退号,人家退你8块。我只能说告辞打扰了,我只有两条腿两只手两只眼睛两个耳朵一张嘴巴一个鼻子。

整个文中稍微的难点可能就是手机抓包吧,但是这个其实也不难,就是配置个代理的事情。再不济就是安装个VirtualXposed_0.20.3然后将微信安装到里面直接抓包就行。还有就是不喜欢手机抓包的话,电脑版微信也是可以实现抓包完成测试的,微信登录时候的设置自带了代理设置,配置上即可。

总结

首先针对医院的漏洞不只是任意支付这个漏洞,但是当时这个任意支付在那个市的很多家医院都适用,所以如果真被恶意利用能够造成的影响还是挺大的。并且当时测试的那家医院除开任意支付之外也还有越权漏洞,可以任意查看其他患者的身份证,家庭住址以及手机号等信息,以及可以越权帮别人挂号或者越权把别人挂的号取消了,危害也还是挺大的。

其次就是我每次针对医院方面的测试,控制了他们的服务器他们一点都不慌,然后一知道欸可以一分钱把号给挂了,这可不行,必须整改。从这我只能说,控制服务器能带来的危害虽然不如一分钱挂号带来的危害直接,但是出了事情的危害可比一分钱挂号严重多了。

虽然当时去参加这个攻防演习还是有点成绩,被客户各种夸,就呆了三天,客户怕我累着每天下午三点准时把我拉上陪他一起去逛校园。但是遗憾的是没能拿下哪怕那么一个服务器权限,被自己菜到了。