利用userfaultfd + setxattr堆占位 很久之前便看到过这个技术的名字,但是由于自己的摆烂,一直没有管.今天终于找到时间好好看一下这个技术的利用方式.利用userfaultfd + setxattr算是内核里一种比较通用的利用技术,在实际场景中通常和堆喷射技术结合起来.但是在某些CTF的题目中,我们已经有了UAF,故并不需要喷射大量的结构体,而是需要在特定的时间对某些object进行写入与占用.笔看到其他师傅的文章中把它称作为堆占位.在之前的博客中我就写过关于userfaultf…
前言 在以往工作或者面试的时候常会碰到一个问题,如何实现海量TopN,就是在一个非常大的结果集里面快速找到最大的前10或前100个数,同时要保证 内存和速度的效率,我们可能第一个想法就是利用排序,然后截取前10或前100,而排序对于量不是特别大的时候没有任何问题,但只要量特别大是根本不可能 完成这个任务的,比如在一个数组或者文本文件里有几亿个数,这样是根本无法全部读入内存的,所以利用排序解决这个问题并不是最好的,所以我们这里就用 php去实现一个小顶堆来解决这个问题. 二叉堆 二叉堆是一种特殊的…
0. 前言 记录在FastJson反序列化RCE漏洞分析和利用时的一些细节问题. 1. TemplatesImpl的利用链 关于 parse 和 parseObject FastJson中的 parse() 和 parseObject()方法都可以用来将JSON字符串反序列化成Java对象,parseObject() 本质上也是调用 parse() 进行反序列化的.但是 parseObject() 会额外的将Java对象转为 JSONObject对象,即 JSON.toJSON().所以进行反序…
目录 1 基础 ConstantTransformer InvokeTransformer ChainedTransformer LazyMap TiedMapEntry TransformingComparator PriorityQueue TemplatesImpl 2 实现readObject方法的类及其利用链 BadAttributeValueExpExceptionCC PriorityQueueCC PriorityQueueCC2 HashMapCC HashSetCC Hash…
前言 JDK 7u21以前只粗略的扫过一眼,一看使用了AnnotationInvocationHandler,就以为还是和 CC1 一样差不多的利用方式,但最近仔细看了下利用链发现事情并不简单- 7u21 要求你能理解: TemplatesImpl 代码执行原理 动态代理是什么 AnnotationInvocationHandler 利用原理 其实7u21是对AnnotationInvocationHandler 的进一步挖掘. 调用链 HashSet.readObject() map.put(…
fastjson反序列化-JdbcRowSetImpl利用链 JdbcRowSetImpl利用链 fastjson反序列化JdbcRowSetImpl - Afant1 - 博客园 (cnblogs.com) 这里涉及了JNDI与RMI的概念. 其本质为JNDI注入. 附上示例代码 JdbcRowSetImplPoC.java package org.lain.poc.poclist; import com.alibaba.fastjson.JSONObject; import com.alib…
Apache Common-collection 反序列化利用链解析 TransformedMap链 参考Java反序列化漏洞分析 - ssooking - 博客园 (cnblogs.com) poc package com.company; import org.apache.commons.collections.Transformer; import org.apache.commons.collections.functors.ChainedTransformer; import org…
背景 CVE-2021-40444为微软MHTML远程命令执行漏洞,攻击者可通过传播Microsoft Office文档,诱导目标点击文档从而在目标机器上执行任意代码.该漏洞最初的利用思路是使用下载cab并释放.加载inf文件的形式执行恶意代码.独立安全研究员Eduardo B.在github公开了一种新的"无CAB"的漏洞利用方法及其POC.公众号之前发布的研判文章中已对在野利用中出现的新的Cabless利用链以及RAR文件隐藏载荷的巧妙方法进行了分析.本篇将进一步探究该利用链的技术…
FastJson利用链 Fastjson的版本在1.2.22-1.2.24主要有两条链利用TemplatsImpl和JdbcRowSetImpl利用链先来学习TemplatsImpl利用链,这个与前面jdk7u21所用的都是通过defineclass来实例化恶意字节码导致的任意代码执行. 1.漏洞复现 组件依赖版本: <dependencies> <dependency> <groupId>commons-codec</groupId> <artifa…
JdbcRowSetImpl 接着继续学习fastjson的第二条链JdbcRowSetImpl,主要是利用jndi注入达到的攻击,而且没有什么利用限制,而且其原理就是setter的自动调用,具体setter调用代码可以参考上篇文章调试的部分 1.漏洞复现 1.1.组件依赖版本 fastjson:1.2.22-1.2.24 1.2.利用方式 不像TemplatesImpl链需要指定的利用方式,JdbcRowSetImpl链只需要可以控制输入就能利用. JSON.parse(evil); JSON…