您好,欢迎来到99网。
搜索
您的当前位置:首页Shiro-550 漏洞分析

Shiro-550 漏洞分析

来源:99网

漏洞原理

在 Shiro <= 1.2.4 中,AES 加密算法的key是硬编码在源码中,当我们勾选remember me 的时候 shiro 会将我们的 cookie 信息序列化并且加密存储在 Cookie 的 rememberMe字段中,这样在下次请求时会读取 Cookie 中的 rememberMe字段并且进行解密然后反序列化
由于 AES 加密是对称式加密(Key 既能加密数据也能解密数据),所以当我们知道了我们的 AES key 之后我们能够伪造任意的 rememberMe 从而触发反序列化漏洞

环境搭建

本地环境

https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4
        <dependency>
            <groupId>javax.servlet</groupId>
			<!--  这里需要将jstl设置为1.2 -->
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>runtime</scope>
        </dependency>
		<dependency>
			<!--  添加利用链 -->
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-collections4</artifactId>
			<version>4.0</version>
		</dependency>

之后直接用idea打开

远程tomcat

环境
手动安装哪里有apt instal 香

kali2021
192.168.1.128

修改ssh配置,允许远程连接/etc/ssh/sshd_config,添加

PermitRootLogin yes

或者

sed -i 's/#PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
service ssh start
apt-get install tomcat9 tomcat9-docs tomcat9-examples tomcat9-admin
#whereis tomcat9

修改/usr/share/tomcat9/bin/catalina.sh添加如下代码

CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.128 -agentlib:jdwp=transport=dt_socket,address=0.0.0.0:60222,suspend=n,server=y"

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务