原理
shiro1.2.5后秘钥不再硬编码,但是采用CBC加密会产生padding oracle攻击,又因为java序列化结构体后可以加垃圾字符,所以攻击能够成功
解密时的调用链
1 | org.apache.shiro.mgt.AbstractRememberMeManager#convertBytesToPrincipals // 不论哪个异常都会返回null,上层302跳转 |
shiro1.2.5后秘钥不再硬编码,但是采用CBC加密会产生padding oracle攻击,又因为java序列化结构体后可以加垃圾字符,所以攻击能够成功
1 | org.apache.shiro.mgt.AbstractRememberMeManager#convertBytesToPrincipals // 不论哪个异常都会返回null,上层302跳转 |
clair是CoreOS公司开源的一套针对容器安全性检测工具,主要用于发掘容器中使用的组件是否存在安全性问题。
GitHub项目地址: https://github.com/quay/clair
下载受影响版本的solr,这里依然选择v8.1.0,这里注意除了添加solr的jar还需要添加velocity的(源码的化可以让IDEA从maven上下源码):
同样的方法启动项目
1 | anemone@ANEMONE-ASUS:/mnt/d/Store/document/all_my_work/solr/solr-8.1.0 |
打开地址看到路径遍历:
在upload文件夹下发现后门和其源码
格式化后,进行代码审计
1 | <?php |
1 | make |
有问题程序
1 | #include <stdio.h> |
文章来自Automated Discovery of Deserialization Gadget Chains, Blackhat2018