IBM WebSphere Portal 多个未授权SSRF&RCE漏洞深入分析

VSole2021-12-30 23:26:46

漏洞信息

IBM WebSphere Portal是一种用于构建和管理 Web 门户的企业软件,提供对Web内容和应用程序的访问,同时为用户提供个性化体验。IBM WebSphere Portal是WebSphere应用程序软件的一个组件。

近日网上爆出IBM WebSphere Portal 9及可能更新的版本存在多个SSRF和RCE漏洞。未授权用户可利用SSRF访问内网URL资源,认证后用户可以实现RCE。

调试环境

搭建IBM WebSphere Portal分析环境确实太费劲了。。。直接docker拉取环境并启动服务:

进入容器,找到启动脚本位于`/opt/IBM/WebSphere/AppServer/bin/startServer.sh`,取消`WAS_DEBUG`注释:

重启启动容器成功打开远程调试端口:

但是发现当端口`30015`端口启动后,远程调试端口`7777`将会关闭,经过分析发现`IBM Websphere Portal`的启动模式比较独特,`startServer.sh`启动的Java进程并不是最终的进程,它会首先启动一个Script,启动完毕后退出导致`7777`端口关闭,为了方便调试,这里想了个“笨办法“,先拷贝`java`运行进程命令,然后手动`kill`该进程,加入调试信息后,再手动启动新的Java进程,最终成功解决了远程调试问题:

未授权SSRF漏洞

存在多次SSRF漏洞,这里以其中的一个触发点为例。定位`WebSphere/wp_profile/installedApps/dockerCell/Quickr_Document_Picker.ear/qkr.docpicker.widgets.war`,这里定义的URL规则如下:

找到一个`Servlet`:

在`com.ibm.lotus.quickr.ecm.servlet.AjaxProxy#doGet`打下断点,构造请求访问,成功触发断点:

进入`getUrl`函数:

按照上面函数的处理方式,重新构造请求:

http://***:30015/docpicker/internal_proxy/http/IP/test

最终通过`getConnection`触发HTTP请求,导致SSRF漏洞:

接口访问无需认证,但是限制为HTTP GET或者HEAD请求。完整SSRF触发点梳理如下:

GET full read SSRF:
/docpicker/internal_proxy/https/example.com/docpicker/internal_proxy/http/example.com/docpicker/internal_proxy/https/127.0.0.1:9043/ibm/console/docpicker/internal_proxy/http/127.0.0.1:9100/aa
Redirect chain - turning "bad" SSRF to "good" SSRF
/docpicker/common_proxy/http/www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247798.html?Logout&RedirectTo=http://example.com/wps/proxy/http/www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247798.html?Logout&RedirectTo=http://example.com/wps/myproxy/http/www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247798.html?Logout&RedirectTo=http://example.com/wps/common_proxy/http/www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247798.html?Logout&RedirectTo=http://example.com/wps/cmis_proxy/http/www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247798.html?Logout&RedirectTo=http://example.com/wps/contenthandler/!ut/p/digest!8skKFbWr_TwcZcvoc9Dn3g/?uri=http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247798.html?Logout&RedirectTo=http://example.com
Arbitrary HTTP method + body:
/wps/PA_WCM_Authoring_UI/proxy/http/example.com/wps/PA_WCM_Authoring_UI/proxy/https/example.com

从路径穿越到RCE

用户登录后,在`Script Application`处:

可以上传自定义样式的zip压缩包:

通过功能点很容易找到漏洞,下面从代码审计角度分析下导致漏洞的原因。经过分析对比,发现上传处理模块的代码位于`/opt/IBM/WebSphere/wp_profile/installedApps/dockerCell/wps.ear`:

`uploadForm_InputPage_NextAction`位于`_ScriptImport`,此时action取值为`uploadFormSubmitForm`,进入`com.bowstreet.webapp.engine#processAction`:

继续往下走:

上传的zip文件将缓存在`/opt/IBM/WebSphere/wp_profile/installedApps/dockerCell/wp.scriptportlet.importexport.ear/wp.sp.importexpor.war/WEB-INF/upload/`目录下,往下将调用`parseZip`来解压zip压缩包:

可以构建一个特殊的zip压缩包,网上一般建议都是使用`Evilarc`这个开源项目来生成恶意压缩包,因为这里是zip压缩方式,所以我们可以采用更加简单的方式,利用二进制编辑器修改zip文件名称,`../../`替换文件名称,保证长度一致即可。

将生成的新zip文件上传,最终通过`extractFile`函数解压文件:

路径穿越可以将文件保存到任意位置,但是在解压前在`unzipFile`函数中会检查压缩包里文件的类型:

虽然无法直接上传一些恶意后门,但是我们仍然可以写入一些自启动脚本,实现系统重启后RCE,具体过程这里不过多赘述,有兴趣的小伙伴请自行研究。

ibmwebsphere
本作品采用《CC 协议》,转载必须注明作者和本文链接
近日网上爆出IBM WebSphere Portal 9及可能更新的版本存在多个SSRF和RCE漏洞。未授权用户可利用SSRF访问内网URL资源,认证后用户可以实现RCE。
近日,IBM发布了IBM WebSphere Application Server存在权限提升漏洞的风险通告,漏洞CVE编号:CVE-2021-29。建议受影响用户及时采用临时修复方案进行防护,做好资产自查以及预防工作,以免遭受黑客攻击。
IBM WebSphere Portal是美国IBM公司的一套企业门户软件。该软件能够创建一个联接企业内部和外部的平台,可让员工、客户和供应商等通过该平台访问企业内部数据。 IBM WebSphere Portal 9.0.0.0版本至9.0.0.0 CF15版本和8.5.0.0版本至8.5.0.0 CF15版本中存在跨站脚本漏洞。攻击者可利用该漏洞向Web UI中注入任意的JavaScript
0x01 漏洞概述IBM WebSphere Application Server在今年6月发布了一则漏洞通告,cve编号为:CVE-2020-4450。该漏洞允许攻击者通过iiop向WAS进行网络请求,最终在WAS上执行任意代码。
360漏洞云检测到IBM WebSphere Application Server存在特权提升漏洞(CVE-2021-29736)。
若当前使用版本在受影响范围内,则可能存在安全风险。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
本仓库所涉及的技术、思路和工具仅供安全技术研究,任何人不得将其用于非授权渗透测试,不得将其用于非法用途和盈利,否则后果自行承担。
年来,随着技术进步,x86服务器性能日渐提升,同时供货周期短、价格低,有利于银行提高运营效率,降低维护成本。因此,各大银行纷纷尝试将关键系统部署环境从小型机下移到x86开放平台,从而建立以x86开放平台为基础的自主可控运营体系。
CVE-2019-0230 Struts远程代码执行漏洞 漏洞描述 CVE-2019-0230漏洞,与S2-029、S2-036漏洞相似,在Struts 版本的double evaluation机制中,当在Struts标签属性内强制执行OGNL evaluation时存在被恶意注入OGNL表达式...
2021年11月29日-2021年12月05日 本周漏洞态势研判情况本周信息安全漏洞威胁整体评价级别为中。
VSole
网络安全专家