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

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

缺陷编号:wooyun-2014-073853

漏洞标题:某通用型医院建站系统存在多处任意文件上传&多处未授权访问(均为市级实例)

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

漏洞作者: 路人甲

提交时间:2014-08-26 10:07

修复时间:2014-11-24 10:08

公开时间:2014-11-24 10:08

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-26: 细节已通知厂商并且等待厂商处理中
2014-08-31: 厂商已经确认,细节仅向厂商公开
2014-09-03: 细节向第三方安全合作伙伴开放
2014-10-25: 细节向核心白帽子及相关领域专家公开
2014-11-04: 细节向普通白帽子公开
2014-11-14: 细节向实习白帽子公开
2014-11-24: 细节向公众公开

简要描述:

/|\

详细说明:

全为市级实例,可能导致用户患者等信息泄露。危害比较大!
前人提交过: WooYun: 某医院系统登录框过滤不严至SQL注入WooYun: 某医院系统任意目录遍历&任意文件上传至getshell 。发现用户名挺大,而且涉及的医院基本都是市级的医院。此次提交的与前人不重复!
厂商:

http://www.tzlxx.cn/ 台州华顶网络技术有限公司


Google对该系统的收录数量:

17.jpg


给5个例子供国家互联网应急中心处理,全是市级医院的:

mask 区域
1.http://**.**.**/_
2.http://**.**.**
3.http://**.**.**
4.http://**.**.**
5.http://**.**.**/

漏洞证明:

【免责声明:以下为漏洞报告仅供证明上传漏洞未获取任何有效数据,案例仅供国家互联网应急中心测试使用,其它人不可利用漏洞进行恶意破坏,否则后果自负,漏洞在厂商确认后均做打码处理,感谢您的支持与理解!】
0x00:任意文件上传漏洞:
第一处:

mask 区域
1.http://**.**.**

/admin/dialog/FileList.aspx?code=0&show=true&path=.%2fAdmin%2fpaper


一直想不懂前人为什么这么明显的上传漏洞都没发现,直接选择文件上传就可以,上传后文件存储在/Admin/paper目录下:

02.jpg


上传后似乎找不到文件?不不不!重新打开浏览器,输入上面的上传地址。就发现来了~(也许前人是因为这个?而没发现)

03.jpg


然后你就可以访问了(可执行shell):

04.jpg


第二处任意文件上传:

mask 区域
1.http://**.**.**

/Admin/dialog/frames.htm


其实前人提交的“/admin/dialog/fileupload.aspx”任意文件上传和这个是一样的,这个frames.hmt与前人提交的上传地址所POST到的地址是一样一样的。

05.jpg


这里我就不多说了。可以通过修改path参数的值达到将文件上传到可执行的目录中。所以这里也不演示了。
第三处任意文件上传:

mask 区域
1.http://**.**.**

/admin/dialog/FileList.aspx


这个所Post的地址不一样了,但是并不是我们想的那么好=_=!先上传一个aspx的。上传后发现,居然执行不了,然后猜想一定是限制了“uploadfile”目录不可以执行脚本文件。

07.jpg


~_~!那我们来抓一下数据包:

POST /admin/dialog/FileList.aspx?code=0&basepath=&Show=True HTTP/1.1
Host: *******.com
Proxy-Connection: keep-alive
Content-Length: 1340
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://******.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Inteli7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryq9E4jvfW8IjVOkTV
Referer: http://*****.com/admin/dialog/FileList.aspx?code=0&basepath=&Show=True
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
------WebKitFormBoundaryq9E4jvfW8IjVOkTV
Content-Disposition: form-data; name="__VIEWSTATE"
/wEPDwULLTEyMDg1MDc5MzAPZBYCAgEPFgIeB2VuY3R5cGUFE211bHRpcGFydC9mb3JtLWRhdGEWBAIBD2QWBAIBDxAPZBYCHghvbmNoYW5nZQVjaWYodGhpcy5vcHRpb25zW3RoaXMuc2VsZWN0ZWRJbmRleF0udmFsdWUgIT0gJycpe2RvU2VsZWN0KHRoaXMub3B0aW9uc1t0aGlzLnNlbGVjdGVkSW5kZXhdLnZhbHVlKX0gEBUCB3VwZmlsZS8TdXBsb2FkZmlsZS8yMDE0MDgyNRUCB3VwZmlsZS8TdXBsb2FkZmlsZS8yMDE0MDgyNRQrAwJnZ2RkAgMPFgIeC18hSXRlbUNvdW50ZmQCAw8PFgIeB1Zpc2libGVoZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFHFJlcGVhdGVyMSRjdGwwMCRJbWFnZUJ1dHRvbjFAZqQT6X8qZvSQCsw710ST/g0itQ==
------WebKitFormBoundaryq9E4jvfW8IjVOkTV
Content-Disposition: form-data; name="__EVENTVALIDATION"
/wEWBgLD15yWCwKY1LuxDAKNsvDrAgLVvfOFBwKM54rGBgLQ2oj3BBeWzXQvrb4s/dmRcFk72IqT229h
------WebKitFormBoundaryq9E4jvfW8IjVOkTV
Content-Disposition: form-data; name="psn"
uploadfile/20140825
------WebKitFormBoundaryq9E4jvfW8IjVOkTV
Content-Disposition: form-data; name="FileUpload1"; filename="google.aspx"
Content-Type: application/octet-stream
cncert test //You can delete the file
------WebKitFormBoundaryq9E4jvfW8IjVOkTV
Content-Disposition: form-data; name="Button1"
文件上传
------WebKitFormBoundaryq9E4jvfW8IjVOkTV
Content-Disposition: form-data; name="checkfile"
------WebKitFormBoundaryq9E4jvfW8IjVOkTV--


看看这个POST数据包,似乎“psn”参数是可控的,于是打算修改,结果提交发现,被限制了,然后觉得这个basepath似乎也可以可控,依然修改,结果发现依然出现如下错误:

06.jpg


怎么办呢?难道真的不能将文件上传到可执行目录?测试了很久无意间从burpsuite的HTTP History中看到了这个POST,但是发现居然在Post的地址中发现了多了个path的参数,PS:我也不知道怎么突然出现的,可能是我修改了源代码的一些value的值造成的,一般抓包是没有path这个参数的:

08.jpg


然后我们测试发现,居然这样就可以绕过限制啦~所以要测试成功就上传一个文件抓个包,在请求的地址后面加上path=admin/dialog最后可发现文件上传到了可执行的目录下,如果还是报错可尝试将“/”用“%2f”来代替,其次再说如何找到这个文件呢?利用前人的目录遍历吧:

mask 区域
1.http://**.**.**

/admin/dialog/FileList.aspx?code=0&show=true&path=./Admin/dialog


09.jpg


最后可以看到shell可被执行:

10.jpg


第四处:(暂无法执行shell):

mask 区域
1.http://**.**.**/

admin/Club/upload.aspx


通过添加上传按钮进行上传,返回源代码可看到地址,但是我看了一下这个源代码,似乎暂时没有任何参数可被控制,cncert可研究一下,但是可以上传一些html之类被人利用。

11.jpg


12.jpg


0x01:未授权访问:
第一处:

mask 区域
1.http://**.**.**/admin

/Users/UserPosts.aspx 未授权导致泄漏用户信息,初始化用户密码等


13.jpg


第二处:

mask 区域
1.http://**.**.**/admin/DownLoad

/DownLoadList.aspx 未授权导致可以修改任意供下载的文件。


14.jpg


第三处:

mask 区域
1.http://**.**.**/admin

/Device/DeviceList.aspx 未授权导致可修改删除任意设备信息


15.jpg


第四处:

mask 区域
1.http://**.**.**

/admin/Club/ 随意添加内容


16.jpg


0x02:
还有一处疑似SQL注入漏洞:

mask 区域
1.http://**.**.**

/price/?keys=x%%27%20AND%201=1%20AND%20%27%%27=%27&type=0


18.jpg


mask 区域
1.http://**.**.**

/price/?keys=x%%27%20AND%201=2%20AND%20%27%%27=%27&type=0


19.jpg


可是居然跑出Access的数据库,指定--dbms也无用,这让我很纳闷,发出来让大家帮助一下:

20.jpg

修复方案:

厂商联系方式:
联系电话:0576-88062321
88062328(客服)、53640892(主管)
请cncert联系厂商修复漏洞,或下发分中心吧!
以上漏洞测试已完全删除测试上传的文件!
漏洞将在国家互联网应急中心确认之后对敏感信息进行打码处理!

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:18

确认时间:2014-08-31 09:33

厂商回复:

最新状态:

暂无