vulhub漏洞复现
Apache Shiro 1.2.4反序列化漏洞
Apache Shiro 认证绕过漏洞
shiro反序列化漏洞有何特征?如何防御shiro反序列化漏洞
Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie,在服务端接收cookie值后,Base64解码–>AES解密–>反序列化。攻击者只要找到AES加密的密钥,就可以构造一个恶意对象,对其进行序列化–>AES加密–>Base64编码,然后将其作为cookie的rememberMe字段发送,Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。
先说结论:无论是否升级shiro到1.2.5及以上,如果shiro的rememberMe功能的AES密钥一旦泄露,就会导致反序列化漏洞。
跟了shiro 1.3.2的代码,看到官方的操作如下:
删除代码里的默认密钥
默认配置里注释了默认密钥
如果不配置密钥,每次会重新随机一个密钥
可以看到并没有对反序列化做安全限制,只是在逻辑上对该漏洞进行了处理。如果在配置里自己单独配置AES的密钥,并且密钥一旦泄露,那么漏洞依然存在。所以漏洞修复的话,我建议下面的方案同时进行:
升级shiro到1.2.5及以上如果在配置里配置了密钥,那么请一定不要使用网上的密钥,一定不要!!请自己base64一个AES的密钥,或者利用官方提供的方法生成
Docker使用
查看所有本地镜像
docker images
搜索镜像
docker search tomcat
拉取镜像
docker pull tomcat
根据镜像启动容器
docker run --name mytomcat -d tomcat:latest
查看运行中的容器
docker ps
停止运行中的容器
docker stop 容器的id
查看所有的容器
docker ps -a
启动容器
docker start 容器id
删除一个容器
docker rm 容器id
启动一个做了端口映射的tomcat
docker run -d -p 8888:8080 tomcat
-d:后台运行
-p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
删除指定的本地镜像
docker rmi image-id