三个代码执行漏洞的复现
前言
前段时间参加了公司组织的培训,讲到代码执行时,举了3个例子,今天统一进行复现。这三个漏洞分别是:
- CNVD-2021-30167(用友NC BeanShell远程代码执行)
- CVE-2019-0193(Apache Solr Velocity模板注入RCE)
- CVE-2020-14882(Weblogic Console远程代码执行漏洞)
一、用友NC BeanShell远程代码执行
0x01漏洞概述
2021年06月03日,用友官方发布了用友BeanShell远程代码执行漏洞的风险通告,漏洞编号为CNVD-2021-30167,漏洞等级:严重,漏洞评分:9.8。该漏洞是由于用友NC对外开放了BeanShell接口,攻击者可以在未授权的情况下直接访问该接口,并构造恶意数据执行任意代码并获取服务器权限。
0x02影响范围
NC6.5
0x03漏洞复现
/servlet/~ic/bsh.servlet.BshServlet,调用BeanShell框架exec方法执行系统命令
二、Apache Solr Velocity模板注入RCE
0x01 漏洞概述
当攻击者可以直接访问Solr控制台时,可以通过发送类似/节点名/config的POST请求对该节点的配置文件做更改。
Apache Solr默认集成VelocityResponseWriter插件,在该插件的初始化参数中的params.resource.loader.enabled这个选项是用来控制是否允许参数资源加载器在Solr请求参数中指定模版,默认设置是false。
当设置params.resource.loader.enabled为true时,将允许用户通过设置请求中的参数来指定相关资源的加载,这也就意味着攻击者可以通过构造一个具有威胁的攻击请求,在服务器上进行命令执行。(来自360CERT)
0x02 影响范围
Apache Solr 5.x - 8.2.0,存在config API版本
0x03 环境搭建
启用vulhub环境
git clone https://github.com/vulhub/vulhub.git
cd vulhub/solr/CVE-2019-0193
docker-compose up -d
创建名为 test 的 Core
docker-compose exec solr bash bin/solr create_core -c test -d example/example-DIH/solr/db
创建好后默认端口为8983,在浏览器中访问
0x04 漏洞利用
利用前提:攻击者需要知道Solr服务中Core的名称才能执行攻击
本次漏洞复现使用的是我们创建的test
直接构造POST请求,在/solr/test/config目录POST以下数据(修改Core的配置)
{
"update-queryresponsewriter": {
"startup": "lazy"