当前位置: 首页 > news >正文

我市精神文明建设的门户网站武汉大学人民医院院长

我市精神文明建设的门户网站,武汉大学人民医院院长,哪个旅游网站可以做私人定制,成品短视频app下载有哪些破解版漏洞描述 某些WSO2产品允许不受限制地上传文件,从而执行远程代码。以WSO2 API Manager 为例,它是一个完全开源的 API 管理平台。它支持API设计,API发布,生命周期管理,应用程序开发,API安全性,速…

漏洞描述

某些WSO2产品允许不受限制地上传文件,从而执行远程代码。以WSO2 API Manager 为例,它是一个完全开源的 API
管理平台。它支持API设计,API发布,生命周期管理,应用程序开发,API安全性,速率限制,查看API的统计信息,以及连接API,API产品和端点。

漏洞版本

WSO2 API Manager 2.2.0 及以上版本

WSO2 Identity Server 5.2.0 及以上

版本WSO2 Identity Server Analytics 5.4.0、5.4.1、5.5.0、5.6.0WSO2

Identity Server as Key Manager 5.3.0 及更高版本

WSO2 Enterprise Integrator 6.2.0 及更高版本

WSO2 Open Banking AM 1.4.0 及更高版本

WSO2 Open Banking KM 1.4.0 及更高

环境搭建

采用Dockerfile搭建 wso2/wso2am - Docker Image | Docker Hub

版本:WSO2 API Manager 4.0.0

# ------------------------------------------------------------------------
#
# Copyright 2018 WSO2, Inc. (http://wso2.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License
#
# ------------------------------------------------------------------------
# set base Docker image to AdoptOpenJDK CentOS Docker image
FROM adoptopenjdk/openjdk11:x86_64-centos-jdk-11.0.10_9
LABEL maintainer="WSO2 Docker Maintainers <dev@wso2.org>" \com.wso2.docker.source="https://github.com/wso2/docker-apim/releases/tag/v4.0.0.1"
# set Docker image build arguments
# build arguments for user/group configurations
ARG USER=wso2carbon
ARG USER_ID=802
ARG USER_GROUP=wso2
ARG USER_GROUP_ID=802
ARG USER_HOME=/home/${USER}
# build arguments for WSO2 product installation
ARG WSO2_SERVER_NAME=wso2am
ARG WSO2_SERVER_VERSION=4.0.0
ARG WSO2_SERVER_REPOSITORY=product-apim
ARG WSO2_SERVER=${WSO2_SERVER_NAME}-${WSO2_SERVER_VERSION}
ARG WSO2_SERVER_HOME=${USER_HOME}/${WSO2_SERVER}
ARG WSO2_SERVER_DIST_URL=https://github.com/wso2/${WSO2_SERVER_REPOSITORY}/releases/download/v${WSO2_SERVER_VERSION}/${WSO2_SERVER}.zip
# build argument for MOTD
ARG MOTD='printf "\n\
Welcome to WSO2 Docker resources.\n\
------------------------------------ \n\
This Docker container comprises of a WSO2 product, running with its latest GA release \n\
which is under the Apache License, Version 2.0. \n\
Read more about Apache License, Version 2.0 here @ http://www.apache.org/licenses/LICENSE-2.0.\n\n"'# create the non-root user and group and set MOTD login message
RUN \groupadd --system -g ${USER_GROUP_ID} ${USER_GROUP} \&& useradd --system --create-home --home-dir ${USER_HOME} --no-log-init -g ${USER_GROUP_ID} -u ${USER_ID} ${USER} \&& echo ${MOTD} > /etc/profile.d/motd.sh
# copy init script to user home
COPY --chown=wso2carbon:wso2 docker-entrypoint.sh ${USER_HOME}/
# install required packages
RUN \yum -y update \&& yum install -y \nc \unzip \wget \&& rm -rf /var/cache/yum/*
# add the WSO2 product distribution to user's home directory
RUN \wget -O ${WSO2_SERVER}.zip "${WSO2_SERVER_DIST_URL}" \&& unzip -d ${USER_HOME} ${WSO2_SERVER}.zip \&& chown wso2carbon:wso2 -R ${WSO2_SERVER_HOME} \&& mkdir ${USER_HOME}/wso2-tmp \&& bash -c 'mkdir -p ${USER_HOME}/solr/{indexed-data,database}' \&& chown wso2carbon:wso2 -R ${USER_HOME}/solr \&& cp -r ${WSO2_SERVER_HOME}/repository/deployment/server/synapse-configs ${USER_HOME}/wso2-tmp \&& cp -r ${WSO2_SERVER_HOME}/repository/deployment/server/executionplans ${USER_HOME}/wso2-tmp \&& rm -f ${WSO2_SERVER}.zip
# set the user and work directory
USER ${USER_ID}
WORKDIR ${USER_HOME}
# set environment variables
ENV WORKING_DIRECTORY=${USER_HOME} \WSO2_SERVER_HOME=${WSO2_SERVER_HOME}
# expose ports
EXPOSE 9763 9443 9999 11111 8280 8243 5672 9711 9611 9099
# initiate container and start WSO2 Carbon server
ENTRYPOINT ["/home/wso2carbon/docker-entrypoint.sh"]

运行docker run命令 搭建docker环境。

docker run -it -p 8280:8280 -p 8243:8243 -p 9443:9443 --name api-manager wso2/wso2am:4.0.0

搭建完成后,访问 https://localhost:9943 默认用户名 密码 admin admin。

漏洞复现

漏洞原理

补丁[diff记录](https://github.com/wso2/carbon-
kernel/pull/3152/commits/13795df0a5b6a2206fd0338abfff057a7b99e1bb)Remove
Unnecessary file uploader classes and improve parent path validation. by
bhagyasakalanka · Pull Request #3152 · wso2/carbon-kernel (github.com)

查看diff记录、在创建file对象时会先对上传文件的路径做校验。

carbon-kernel/FileUploadServlet.java at 4.4.x · wso2/carbon-kernel
(github.com)

开启docker镜像调试模式,在idea上使用远程调试。

docker run -it -p 8280:8280 -p 8243:8243 -p 9443:9443 -p 5005:5005 --name another-api-manager wso2/wso2am:4.0.0 -debug *:5005

/fileupload 会在服务器启动期间被注册。

在使用文件上传时,会调用/org/wso2/carbon/ui/transports/FileUploadServlet.java 。

构造函数FileUploadServlet 会将类内部定义的私有属性进行修改。

使用POST方法时,会调用doPost(),接着调用
fileUploadExecutorManager.execute()

因此我们将断点打到/org/wso2/carbon/ui/transports/fileupload/FileUploadExecutorManager.java#execute,正如上面描述所说、当收到一个文件上传请求,这个方法会被调用。它接受的两个参数:http
request、https response,会返回布尔值。

CarbonConstants类包含Carbon所有重要常数

然后对CarbonConstants的cookie、 webContext、
SERVER_URL、进行操作。向下走,通过对requestURI的截取获得actionString。

在下面的代码中会注册execution
handlers、首先会创建execHandlerManager对象 ,接下来会加上ExecHandler链条
。FileUploadExecutionHandlerManager =>
CarbonXmlFileUploadExecHandler=>OSGiFileUploadExecHandler=>AnyFileUploadExecHandler。

进入startExec()
会调用/org/wso2/carbon/ui/transports/fileupload/FileUploadExecutorManager.java#
execute() 在for循环中匹配到 toolsAny。

然后进入/org/wso2/carbon/ui/transports/fileupload/AbstractFileUploadExecutor.java#
executeGeneric() ,然后调用parseRequest(request) 获取request 参数。

/org/wso2/carbon/ui/transports/fileupload/AbstractFileUploadExecutor.java#parseRequest()

将断点打到该位置,继续调试。它首先确保 POST 请求是分段 POST 请求,然后提取上传的文件,确保 POST
请求至少包含上传的文件,并根据最大文件大小对其进行验证。

走了很长一串之后,进入到/org/wso2/carbon/ui/transports/fileupload/ToolsAnyFileUploadExecutor.java#
execute()

这是错误所在,该方法容易受到路径遍历vulenerabulity的影响,因为它信任用户在POST请求中给出的文件名。

在该方法下,会返回一个
uuid 是由系统时间和随机数组成。在uploadeFile中可以看到存放上传文件的路径。

漏洞测试

运行以下命令:

python3 exploit.py https://127.0.0.1:9443/ shell.jsp

在网页中打开以下链接。在输入框中输入命令 ls 。

修复建议

如果最新版本未列在受影响的产品列表下,则可以迁移到产品的最新版本。否则,您可以根据以下公开修复程序将相关修复程序应用于产品:

https://github.com/wso2/carbon-kernel/pull/3152

https://github.com/wso2/carbon-identity-framework/pull/3864

https://github.com/wso2-extensions/identity-carbon-auth-rest/pull/167

临时缓解措施:

产品版本

|

临时缓解步

—|—

WSO2 API 管理器 2.6.0、2.5.0、2.2.0 及更早版本

WSO2 身份服务器 5.8.0、5.7.0、5.6.0、5.5.0、5.4.1、5.4.0、5.3.0、5.2.0 和更早版本

作为密钥管理器的 WSO2 身份服务器 5.7.0、5.6.0、5.5.0、5.3.0 和更早版本

WSO2 IS 分析 5.6.0、5.5.0、5.4.1、5.4.0 及更早版本

|

删除

< product_home>/repository/conf/carbon

FileUploadConfig

标记内定义的所有映射.xml

WSO2 API 管理器 4.0.0、3.2.0、3.1.0、3.0.0

|

将以下配置添加到 < product_home>/repository/conf/deployment.toml

deployment.toml

[[resource.access_control]]context="(.)/fileupload/resource(.)“secure=falsehttp_method
= “all”
[[resource.access_control]]context=”(.)/fileupload/(.)“secure=truehttp_method
= “all"permissions = [”/permission/protected/”]

SO2 企业集成商 6.6.0、6.5.0、6.4.0、6.3.0、6.2.0

及更早版本

|

于 EI 配置文件,请从< 文件上传 配置>部分中删除<product_home> /conf/carbon.xml 文件中的以下映射。

对于业务流程/代理和分析配置文件,分别在以下位置对 carbon.xml 文件应用相同的更改。

  • <product_home>/wso2/broker/conf/carbon.xml

  • <product_home>/wso2/业务流程/conf/carbon.xml

  • <product_home>/wso2/analytics/conf/carbon.xml

deployment.toml

keystore
certificate *
org.wso2.carbon.ui.transports.fileupload.AnyFileUploadExecutor
jarZip
org.wso2.carbon.ui.transports.fileupload.JarZipUploadExecutor
tools
org.wso2.carbon.ui.transports.fileupload.ToolsFileUploadExecutor
toolsAny
org.wso2.carbon.ui.transports.fileupload.ToolsAnyFileUploadExecutor

WSO2 身份服务器 5.11.0、5.10.0、5.9.0

作为密钥管理器的 WSO2 身份服务器 5.10.0、5.9.0

|

将以下配置添加到 < product_home>/repository/conf/deployment.toml

deployment.toml

[[resource.access_control]]context="(.)/fileupload/service(.)“secure=falsehttp_method
= “all” [[resource.access_control]]context=”(.)/fileupload/entitlement-
policy(.
)“secure=falsehttp_method = “all”
[[resource.access_control]]context=”(.)/fileupload/resource(.)“secure=falsehttp_method
= “all”
[[resource.access_control]]context=”(.)/fileupload/(.)“secure=truehttp_method
= “all"permissions = [”/permission/protected/”]

基于 WSO2 碳核 4 版本的其他不受支持的产品/版本

|

删除

< product_home>/repository/conf/carbon

FileUploadConfig

标记内

定义的所有映射

.xml

##最后
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【扫下方二维码】免费领取:

http://www.tj-hxxt.cn/news/81840.html

相关文章:

  • 怎么利用网站做外链接网络优化工程师有多累
  • 品网站建设公司排名新产品推广方案范文
  • wordpress sitmap长春网站优化团队
  • 网站做外国生意长尾关键词挖掘词工具
  • 如何安全的做黄色网站网销怎么做才能做好
  • 济阳住房建设委员会网站精准营销平台
  • 自建网站系统深圳网络推广团队
  • 网站名词排名怎么做优化网站的目的
  • 网站建设推广怎样找客户竞价软件哪个好
  • 网络网站推广优化成都网络推广哪家好
  • 公司建设网站的通知查排名官网
  • 保定市共青团下属网站浙江企业网站建设
  • 哪些公司做网站好以图搜图
  • 网站如何去分析今日热搜榜官网
  • 如何做的网站排第一手机百度如何发布作品
  • wordpress 时光捕手seo网站优化论文
  • 给网站平台做推广叫什么长沙seo男团
  • 江苏省建设厅网站公示服装品牌营销策划方案
  • 潍坊点睛做网站怎么样大数据网络营销
  • 哪做网站好百度官方免费下载安装
  • 自己做的网页怎么上传网站吗怎么推广app
  • wordpress 做的网站销售管理系统
  • 如何建设网站兴田德润怎么样龙岗百度快速排名
  • 深圳优秀网站设计体球网足球世界杯
  • 钉钉企业邮箱收费标准廊坊优化技巧
  • 小型网站设计及建设论文范本短期职业技能培训班
  • 寿光网站制作网络竞价推广开户
  • 我们的优势的网站最近的新闻大事10条
  • 怎么样让百度收录网站网络营销有哪些推广平台
  • 超值的镇江网站建设如何模板建站