Kingkk's Blog

菜的要死

浅谈下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......

ysoserial payload分析

URLDNS先从最简单的开始,根据ysoserial中的gadget提示,可以比较容易的找到触发过程12345Gadget Chain: HashMap.readObject() HashMap.putVal() HashMap.hash() URL.hashCode() 在HashMap中重写了readObject方法......

gadgetinspector源码浅析

前言之前在实习的时候在先知上看到 @threedr3am 师傅在先知上发了两篇关于gadgetinspector分析的文章 https://xz.aliyun.com/t/7058 ,确实写的很好。关于gadgetinspector这款工具之前就有注意到过,但是没有具体去看。 由于之前有过想法做类似的东西,所以对这个也很感兴趣,但是由于一些子/父类、接口/实现类之间的处理有些头疼,于是做......

从源码层面看XXE的防御

前言XXE的防御来说,实现方法千奇百怪(这里指的是那些基础库,像apache-poi这种解析excel的XXE,内部还是调用的那些基础库,修复方式当然只要升级对应版本即可) Owasp的修复文档 https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html 主要方式......

Java8中两个优雅的特性

前言算是之前写代码的时候学到的两个比较有意思的特性,也是Java8新增的两个功能,其实说到底就是减少了一些nullptr的判断和for循环的遍历,让代码变得更加优雅,可读性更高。 Optional Stream 主要就是如上两个特性,总结的过程中也学了一些以前不知道的特性。 Optional先从Optional来吧,他其实是对原有的数据类型进行了一层包装,将nullptr判断的部分操作进......

Jimple in Soot

前言还是一篇类似于笔记一样的东西,我不保证百分百的准确,只是以一种自己能看懂的方式,记录一些自己理解的东西。 主要记录下jimple,也就是Soot中最擅长处理的一种中间代码。(图来源网络) 可以看到还算是一种人类比较好理解的中间代码,并且将一些编译中做的操作给显示的显现了出来(因为本来就是从java字节码反编译过来的) Soot中对这种中间代码建立了一套比较完整的体系来描述,方便人们通过......

SQLi in Java

SQLi in JavaSQL注入是Web安全老生常谈的一个话题,这里也没什么新的东西。 由于个人的一些需求,整理了一些Java中可能产生SQL注入的操作,做代码审计的时候可以关注一下。 不足或者错误的地方也麻烦指出。 SQL操作JDBC主要的操作就在 java.sql.Statement 这个接口下 java.sql.Statement.executeQuery java.sq......