文章预览
一、 java特性加载类文件 传统的ssh key/任务计划就不说了,介绍一下已经流行开来的几种java特性加载类文件。 1,charsets.jar LandGrey首发 https://landgrey.me/blog/22/ 复现过程 https://mp.weixin.qq.com/s/HMlaMPn4LK3GMs3RvK6ZRA 也就是写 /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar 很经典了,利用jvm不会一开始就加载所有类的机制,篡改charsets.jar,然后再用各种类加载触发。 其中最方便的是 Accept : text/html;charset=IBM33722 charsets.jar编译可修改LandGrey的。注意,他把全部编码都指向IBM33722了,所以其他编码也能触发。 https://github.com/LandGrey/spring-boot-upload-file-lead-to-rce-tricks/tree/main/charsets 最终效果如下。 但charsets.jar也有着诸多缺点。 1,需root权限。不过好在现在docker/k8s横行,springboot服务大多数都是root权限。 2,charsets.jar加载仅一次机会。如果之前有用户使用过charset=GBK之类的加
………………………………