目录
5.1.2shiro_attack-4.5.2-SNAPSHOT-all工具利用
前言
该篇文章比较详细的介绍shiro漏洞利用,无论是shiro漏洞图形化工具利用,还是shiro漏洞结合JRMP我觉得比大多数文章都详细,如果你对网上结合JRMP反弹shell不是很明白,非常推荐来看看这篇文章。另外漏洞利用工程中用到的工具以及代码都上传到百度网盘,供大家使用,在文章最后哦。
1.了解shiro
Apache Shiro框架是一个功能强大且易于使用的 Java 安全框架,它执行身份验证、授权、加密和会话管理。借助 Shiro 易于理解的 API,您可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的 Web 和企业应用程序。
2.shiro漏洞原理
Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会将用户信息加密,加密过程:用户信息=>序列化=>AES加密=>base64编码=>RememberMe Cookie值。如果用户勾选记住密码,那么在请求中会携带cookie,并且将加密信息存放在cookie的rememberMe字段里面,在服务端收到请求对rememberMe值,先base64解码然后AES解密再反序列化,这个加密过程如果我们知道AES加密的密钥,那么我们把用户信息替换成恶意命令,就导致了反序列化RCE漏洞。在shiro版本<=1.2.4中使用了默认密钥kPH+bIxk5D2deZiIxcaaaA==,这就更容易触发RCE漏洞。
所以我们Payload产生的过程:
命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值
3.漏洞验证
- 未登录的情况下,请求包的cookie中没有rememberMe字段,返回包set-Cookie里也没有deleteMe字段
- 登录失败的话,不管有没有勾选RememberMe字段,返回包都会有 rememberMe= deleteMe 字段
- 不勾选RememberMe,登录成功的话,返回包set-Cookie里有rememberMe=deleteMe字段。但是之后的所有请求中Cookie都不会有RememberMe字段
- 勾选RememberMe,登录成功的话,返回包set-Cookie里有rememberMe=deleteMe字段,还会有remember 字段,之后的所有请求中Cookie都会有rememberMe字段
- 或者可以在cookie后面自己加一个rememberMe=1,看返回包有没有rememberMe= deleteMe
4.漏洞复现
靶机:linux kali 192.168.3.27
接受反弹shell: windows10 192.168.3.207
这里直接使用docker拉取镜像,当然也有其他靶场的。
docker pull medicean/vulapps:s_shiro_1
docker run -d -p 5555:8080 medicean/vulapps:s_shiro_1
原本端口是8080给他换成5555


5.漏洞利用
这里我们可以使用图形工具进行利用,也可以使用代码进行利用。首先我们将图形化工具利用。
5.1图形化工具利用
5.1.1shiro550/721工具
1.输入url地址
上面有三个选项,第一个选择如果是自定义http请求,就勾选它,下方会出现输入框。第二个选择如果想要密钥爆破选择keys.conf.big字典,该字典的密钥多一点,默认是keys.conf,该字典都是一些常用密钥。第三个选择如果想指定key以及利用链等。一般来说我们不用选择那么多。直接输入url就点击下一步就行。

2.选择方式检测
这里有四个方式,方式优缺点各不相同,可以看下面链接了解。这里我们选择第四种,因为有回显大家看的比较清楚。

&spm=1001.2101.3001.5002&articleId=124390531&d=1&t=3&u=39966c6f41bc4947b197cf0896f1fb89)
3018

被折叠的 条评论
为什么被折叠?



