- 博客(36)
- 收藏
- 关注
原创 Java反序列化 CC7链分析
对比前几条链子,CC7链子的构造会稍显复杂,审计起来感觉跟CC6有点像,CC7的入口点是Hashtable,其核心在于利用Hashtable反序列化时的哈希碰撞来触发利用链,今天我们来详细分析一下至此,CC1到CC7的审计也就结束了,花了有一些时间,不过一通审计下来收获挺大的,阅读代码的能力得到了提升,以后还要继续多审一些代码,争取进一步的突破,路漫漫其修远兮,吾将上下而求索。
2025-11-21 23:40:04
1010
原创 Java反序列化 CC6链分析
前面我们提到过,在JDK 8u71及以后,类的readObject方法被官方修改,加固了反序列化流程,导致不能再直接使用CC1调用触发恶意链条。今天我们来分析另一个链子,也是最好用的链子——CC6,CC6的通用性远强于CC1,通过新的入口组合HashMap和来触发,因为HashMap是 Java 最基础的类,官方为了保证向后兼容性,几乎不可能修改它的反序列化逻辑,所以CC6不限制JDK版本,只要存在Commons Collections漏洞组件(<=3.2.1)即可触发CC6利用链通过HashMap或。
2025-11-19 22:31:27
1008
原创 Java反序列化 CC5链分析
在JDK 8u71及以后,类的readObject方法被官方修改,加固了反序列化流程,不能再直接使用CC1调用触发恶意链条,因此需要尝试换个思路来搭建利用链。后半部分还是CC1的LazyMap,前半部分改成其他方式,这也是今天我们要分析的。
2025-11-18 15:26:22
804
原创 Java反序列化 CC4链分析
在之后,不再实现,这就要求我们以其他视角来构造利用链。CC4的后半部分跟CC3一样,也是采用动态加载字节码的方式来执行命令,然后前半部分跟CC2一样,用的还是等。其实就是两条链子的选择性拼接。用ysoserial的话来说,CC4就是CC2的变体,使用来替代其实CC4就是CC2和CC3的排列组合,没有什么新的内容,只要把前面的两条链子理解透彻,CC4就水到渠成了。
2025-11-17 21:22:46
908
原创 Java反序列化 CC3链分析
如果你学习了CC1和CC2,会发现CC3跟前两个很像,其实CC3链复用了CC1的触发机制,但替换了最终的执行payload,改为动态类加载执行任意代码,建议先看看前两篇文章,后面理解起来也会更容易Java反序列化 CC1链分析 (LazyMap)Java反序列化 CC2链分析。
2025-11-14 13:34:40
1004
原创 Java反序列化 CC1链分析 (LazyMap)
前面我们介绍了的构造链,这条链易于理解,适合快速构造验证。今天我们来对之前的内容做补充,讲一下LazyMap这条构造链,该链是ysoserial中CC1链的构造方式,相比于的构造链,LazyMap链结构相对复杂但更灵活、扩展性强,LazyMap作为CC1的代表,其核心是懒加载和灵活插入的transform操作链子有一部分跟之前Java反序列化 CC1链分析先放个链的图回忆一下。
2025-11-12 17:34:27
954
原创 Java反序列化 CC2链分析
Javassist是一个开源的Java字节码操作库,主要用于在Java程序中动态创建和修改类。它的特点是使用简单,开发者不需要深入了解虚拟机指令,能够像写Java代码一样直接插入代码片段来动态生成新类或改变已有类的结构。换句话说,Javassist确实是一个可以动态创建类的工具库,它允许在运行时生成类的字节码并加载到JVM中,支持添加字段、方法、构造函数等操作,实现动态字节码修改和类的动态定义举个例子}");这里,Hello类的say方法被插入打印语句,随后调用toClass()
2025-11-10 11:31:57
951
原创 2024CISCN ezjava复现
这道题用到了很多知识点,包括AspectJWeaver反序列化、MySQL JDBC反序列化和SQLite SSRF等,总体来说有些难度,也是参考了很多资料,建议深入学习这些知识点,尤其是JDBC方面的漏洞和Java反射机制,做题做下来感觉基础很重要,学好了做这种题就会轻松很多,与君共勉,继续加油!!
2025-11-04 16:44:34
765
原创 Python栈帧沙箱逃逸
生成器(Generator)是Python中一种特殊的迭代器,它通过函数和表达式来创建,可以逐个产生值,并在每次生成一个值后暂停执行,保留当前状态,以便下一次调用时能够从暂停的地方继续执行生成器函数使用yield语句生成值,而不是普通函数的return,调用生成器函数返回的是一个生成器对象,每次调用该对象的next()方法时,生成器函数会从上次暂停的位置继续执行,直到遇到下一个yield或函数结束举个简单的例子yield 1yield 2yield 3print(next(g)) # 输出1。
2025-10-30 22:21:24
818
原创 2024CISCN Sanic复现
Sanic 是一个基于 Python 的高性能异步 Web 框架,利用 Python 的 async/await 语法实现非阻塞、高并发请求处理。它设计轻量、易用,支持快速定义路由、中间件和 WebSocket,适合构建现代化、响应迅速的 Web 应用和 API,性能在 Python Web 框架中处于领先地位简单示例"})
2025-10-08 16:21:34
927
原创 Java反序列化 CC1链分析
Commons Collections是Apache开源社区推出的一款针对Java集合框架的扩展工具库,它提供了大量额外的数据结构和算法,包括有序集合、队列、堆、双向映射等功能丰富的集合实现,以及诸如过滤、转换等高级操作接口。该库极大地补充和完善了Java标准集合API,让开发者在处理复杂集合数据时更加高效灵活,同时简化了代码编写,是Java项目中广泛应用的实用工具CC1链分国内()和国外(LazyMap),本文介绍的是国内的链,该链相比国外,结构更为直接,调用链清晰,适合快速构造验证和理解。
2025-10-04 22:44:15
1052
原创 CTFSHOW 中期测评(二)web502 - web516
网上看别的师傅有一个很牛的方法,可以用heredoc语法来定义长字符串,它允许开发者定义多行字符串而不需要使用引号,也不用为引号、换行符等转义,非常方便地写包含多行HTML、SQL、代码片段等内容的字符串,格式为。过滤很严格,字符可以用字符串拼接绕过,然后因为括号()用不了,我们用include来包含文件,include是可以不用括号包裹直接用的。,然后再进行include操作,那我们可以在页面统计放入一个文件地址,然后这个文件的内容是另一个文件的地址,这样就可以进行文件包含。
2025-09-23 22:07:50
942
原创 CTFSHOW 中期测评(一)web486 - web501
被修复了,不能用之前的方法写入webshell了,但是username那边没有md5包裹,可以用SQL注入获取flag。的注释去掉了,但是前面的正则匹配加了感叹号,也就是不能出现冒号和逗号,那我们不走这个方法,继续用万能密码登录系统,账号。然后cookie传入,蚁剑连接webshell,找了一会找不到flag,那连接数据库看看,先读取。可以,但是读flag读不到了,可能是权限不足,也可能是flag不叫这个名字了或者在其他目录。,我以为可以继续用之前的方法,但是后面连接webshell怎么都连不上,读取。
2025-09-19 19:21:42
1386
原创 玄机靶场 Where-1S-tHe-Hacker-P2
题目下载地址:https://pan.baidu.com/s/14OPvxDgsEsY-O3e34K2FUw?pwd=2024划水应急工具包:https://pan.baidu.com/s/1dwBMRQO3TUEMx8FWVeJLew?pwd=ltja服务器账号密码 admin Aa123456进去后运行phpstudy开启相关服务因为玄机的题目是从靶机内部题目挑选的,不完整,因此本文分两部分。
2025-07-20 13:55:19
2713
原创 玄机靶场 blueteam的小心思
发现/usr/bin/sudo,sudo 被广泛用于权限提升,估计攻击者通过这个提权,/etc/sudoers 包含了系统上 sudo 的配置和权限设置,这里抓取内容看一下。发现有个用户的用户ID和组ID都为0,权限很高,一般情况下只有管理员的UID和GID为0,说明这个是后门用户,直接加密得到flag。得到数据库账号密码,用 Premium连接,一个个尝试,发现有个数据库无法查看,说明被加密了,这里用的大佬的图。这里有个坑,不能直接加密文件,要用引号括起来再加密,不然中间的空格会分隔指令。
2025-06-22 13:12:13
2929
原创 玄机靶场 | Where-1S-tHe-Hacker
我一开始用的是在线靶机,但是因为一些不可抗拒因素,具体参考步骤#11,所以最终把靶机下载到本地分析,同时也能省点金币,题目可以在划水但不摆烂公众号下载题目下载地址:https://pan.baidu.com/s/1MwRbI6Cbz2j_hlHInVL1Bg?pwd=fmzu服务器账号密码 admin Aa123456注:样本请勿在本地运行。
2025-06-21 20:12:11
3125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅