Kingkk's Blog

菜的要死

配置不当导致的容器逃逸

前言代码安全搞不动了,这几天又开始摸鱼k8s,记录下一些由于配置不当导致的容器逃逸,以及一些利用方式和原理。 privileged特权模式privileged简介docker中提供了一个--privileged参数,这个参数本身最初的目的是为了提供在docker中运行docker的能力https://www.docker.com/blog/docker-can-now-run-within-......

静态程序分析笔记

前言本来2020年就写完了的,但最近发生了比较多事情,就一直也忘了更新,希望2021剩下的日子能好一些吧。 说实话一部分过程内的数据流分析算法现在也没搞太懂,凑活看吧,仅供参考。 AST & IR通常来说,一个程序从源码(Source Code)到二进制程序/机器码(Machine Code)通常需要经过如下几个步骤 编译器在获取到源码之后,会先对源代码进行词法分析(Lexica......

从MethodHandle到InvokeDynamic指令

前言之前在用ASM处理字节码的时候,发现rt.jar中居然有比较多的invokedynamic指令,并且ASM对该指令提供了一个单独的结构体来描述InvokeDynamicInsnNode,甚至不能一眼看出这个指令具体调用了个什么方法。 之后便翻了几天文档和一些文章,在这里做一下记录,文章难免有疏漏,欢迎指出。 MethodHandleMethodHanlde是Java7之后出现的API,以......

ASM历险记

前言之前就一直说着要学ASM,但每次看着一堆JVM指令就脑壳疼,前段时间算是静下心来看了一遍文档,不得不说ASM的文档写的确实很赞,和Soot简直鲜明对比。 本文主要内容来自于ASM4官方文档,推荐直接看原文档,本文仅做个人学习记录,不保证正确性。 https://asm.ow2.io/asm4-guide.pdf JVM基础类结构 如上就是一个类文件的大体文件结构(其中Attribut......

CVE-2020-14644分析与gadget的一些思考

前言前段时间Weblogic出了七月份的补丁,其中比较受关注的有4个9.8评分的RCE,目前14625和14645在网上也都有了详情,话说有个老哥一己之力包了其中三个属实nb。 之前也有几个朋友问起14644的详情,正好一起分享下14644的利用,和之前疫情半年在家挖gadget的一些思考。 CVE-2020-14644和2883、14645不同的是,这应该算是一条全新的gadget,并不......

Java中的反射

前言个人对反射的理解就是在运行时动态去获取、操作Java程序,反射赋予了Java这门静态语言动态执行的能力。反射的对象是在JVM中运行时的方法、属性、构造函数。在现代化Java框架中都不可避免的运用到了反射,赋予程序更好的动态执行能力。过于随意的反射操作也会带来一些安全隐患,比如反序列化中知名的cc链、weblogic中的coherence链,以及tomcat中rmi工厂类的绕过payloa......

浅谈下Fastjson的autotype绕过

前言继去年1.2.47 Fastjson被绕过之后,最近的1.2.68又出现了绕过。 正好前段时间翻了一遍Fastjson的源码,对整体逻辑有了一些了解,就尝试分析下autotype的校验过程,以及这两次绕过的思路。若有错误,还望指出。 autotype的校验为什么校验一直被绕过?1.2.24之后,fastjson对反序列化的类型进行了校验,主要就体现在ParserConfig.checkA......

浅谈JNDI

关于JNDI Java命名和目录接口(Java Naming and Directory Interface,缩写JNDI),是Java的一个目录服务应用程序接口(API),它提供一个目录系统,并将服务名称与对象关联起来,从而使得开发人员在开发过程中可以使用名称来访问对象 。 可以理解为一个Java抽象出来统一与命名服务或者目录服务交互的接口。比如需要访问DNS服务、LDAP服务、RMI......

Kubernetes基本概念和一些未授权访问

前言本文不保证正确性,纯属个人入门笔记 Kubernetes 是一个开源容器编排引擎,用于容器化应用的自动化部署、扩展和管理 随着云时代的到来,各大厂商也都将服务部署在云上了。 k8s作为Google开源的一个容器编排工具,也被国内外不少厂商实践并投入生产使用。随之也催生出了一系列CNCF的云应用,也加速了Go语言的发展。 全面上云,感觉也是个发展的大趋势把,菜如我只能先了解一些基本概......

Tomcat中一种半通用回显方法

前言前段时间和@lufei 大哥学习了一波Linux下基于文件描述符的反序列化回显方式的思路。 在自己实现的过程中发现,是通过IP和端口号的筛选,从而过滤出当前线程(也可以说是请求)的文件描述符,进而加入回显的内容。 但是同时也有一个疑问,我们使用回显的目前主要是因为一些端口的过滤,一些内外网的隔离。从而将一些无法从别的途径传输的执行结果,通过http请求的方式,附加在原本的response......