京麒ctf Fastj 学习
京麒ctf Fastj
期末考结束拉 学学学
题目依赖很干净 只有spring 原生的依赖 同时告诉我们是jdk 11 使用的是fj 1.2.80
fastjson 在1.2.68的时候有一条特殊的链子 only jdk 11 的链子
图来自于https://blog.ninefiger.top/2022/11/11/fastjson%201.2.68%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/
而 jk 1.2.80 是去掉了这个auotcloseable ,不能通过这个方法添加类了,但是又发现了一个新的类 throwable 可以将它添加到map 里面
之前没分析 现在简单分析下
fj1.2.80 反序列化fastjson反序列化符合条件的期望类时,会将public字段、构造函数参数加到缓存中
依赖和测试json如下
12345<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId ...
新版本 codeql 学习
新版本 codeql 学习写在最前面之前一直听闻codeql大名,现在准备花点时间好好学习一下这个静态代码分析神器
不过codeql老版本和新版本的语法区别较大,网上文章也彼此不同,所以我只能自己翻找官方文档去学
安装codeql参考 https://xz.aliyun.com/news/16918
创建数据库以 京麒CTF 的 fastj 为例
使用jadx对他进行反编译。 对目标的类创建数据库
1codeql database create fastj --language=java --source-root=./sources --build-mode=none
成功创建数据库后在规则库下打开
在这个rule下/java/ql/src 这种标准目录下 创建语句 就可以开始愉快的使用codeql拉(我这个路径有些问题的,如果不这样会导致codeql的库倒入失败 然后就是一堆报错各种问题 前面调用一些方法的时候还是无所谓 但是后面写的多了就各种问题 所以我决定换到正确的目录)
语法学习基本语法codeql 的常见查询语句结构如下
1234 ...
2025 软件赛决赛 记录
2025 软件赛决赛 记录
有段时间不更新博客了 写博客简单记录一下
day0发动铁锭大战五小时火车 落地湖南长沙
金华这段时间一直在下雨,在长沙的天空上看到了久违的阳光
来长沙不吃臭豆腐? 这个臭豆腐是真的臭啊,感觉就像是走在路边突然被一双雨后的43码大汗脚一脚踩在我的胸口让我无法呼吸 不过确实好吃。爆浆臭豆腐
day1正式比赛的一天,赛场不发饭!不发饭!不发饭(骂骂咧咧)
backup签到题目,手快拿了个一血
是一个需要自己安装的dadecms 5.7 p2 这个cms历史漏洞很多。
这里给我们的cms是没有安装的 需要我们自己安装,安装后就是前台后台随便玩了
发现靶机可以通我们自己的机子,尝试直接连接本机的mysql完成安装
接本机启动一个mysql 转发出来
后台存在任意文件读取 直接读取flag即可
没绷住 5分钟就出了 出题人走过来问我怎么做的。。。。难道这是非预期吗
gld-xs
这题攻击捡了一个二血 防守捡了一个三血
主办方自家的一个cms,我只能说写的一泡构式,这个项目不像是人写的
从webxml下手 先看路由
题目给了一个学生权限的用户 ...
2025 长城杯 final 记录
2025 长城杯 final
好久没写博客了 写点记录吧
day 0福建-福州
酒店风景还是很顶的 但是沟槽的里比赛场地30km 也是神人了
晚上去和VVNN的师傅们团建,来福建就是应该吃海鲜啊
还是很焦虑第二天的比赛
day 1上来先做ctf
booklist/backup 路由存在源代码泄露 看源码可以打pickle反序列化,不过需要绕过登录校验
/404 写的就有问题 模板渲染不是这样子写的 存在ssti
需要注意的是 这里的起始点必须是error好像,使用其他的会报错 不知道为什么。本来想直接rce的 但是搞了半天也没成功
成功获取到全局变量,得到账号密码
然后就是生成一个pickle文件 通过任意文件上传上传到 books 目录下 命令执行即可
123456789import pickleclass A(): def __reduce__(self): return (eval, ("__import__('o'+'s').system('ls / > ./ ...
CVE-2025-24813 Tomcat session 反序列化分析
CVE-2025-24813 Tomcat session 反序列化分析受影响版本1239.0.0.M1 <= tomcat <= 9.0.9810.1.0-M1 <= tomcat <= 10.1.3411.0.0-M1 <= tomcat <= 11.0.2
漏洞条件123应用程序启用了DefaultServlet写入功能,该功能默认关闭应用支持了 partial PUT 请求,能够将恶意的序列化数据写入到会话文件中,该功能默认开启应用使用了 Tomcat 的文件会话持久化并且使用了默认的会话存储位置,需要额外配置
漏洞复现使用的是apache-tomcat-9.0.98版本。https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.98/bin/apache-tomcat-9.0.98.zip
在conf/context.xml中,添加如下配置,启用session写入功能
123<Manager className\="org.apache.catalina.ses ...
TIMECapsule & justDeserialize 学习动态代理
TIMECapsule & justDeserialize 学习动态代理写在最前面
两场比赛的java题目都是属于那种,修复很好修但是很难打
ccb半决赛修复的问题给我很大的教训,改过来之后软件赛在华东赛区拿下fix一血二血
FIX修复的时候需要注意
服务需要手动kill掉对应的题目进程
服务重启的时候需要是使用nohup后台启动,不然当fix的进程被杀死,就会导致启动的服务挂掉,导致修复失败
给出一题的修复脚本
123456#!/bin/shpkill -9 dotnetrm /app/RazorCor.dllmv RazorCor.dll /app/RazorCor.dllnohup dotnet /app/RazorCor.dll &
TIMECapsule动态代理 代理类在程序运行时创建的代理方式被成为动态代理。代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。相比于静态代理, 动态代理的优势在于可以很方便的对代理类的函数进行统一的处理,而不用修改每个代理类中的方法。
Java 代理模式详解 | Ja ...
Fury反序列化
Fury反序列化
网上没找到相关的文章,自己瞎几把分析玩的
官方文档如下
https://fury.apache.org/zh-CN/docs/guide/java_object_graph_guide
依赖
1234567<dependencies> <dependency> <groupId>org.apache.fury</groupId> <artifactId>fury-core</artifactId> <version>0.10.0</version> </dependency> </dependencies>
序列化fury提供了一种不同于jdk原生序列化的方式,被序列化的类不需要实现序列化的接口,直接就可以序列化
例子:序列化的类
12345678910111213141516171819202122232425262728293031323334 ...
Jdk17 反射限制与绕过
Jdk17 反射限制与绕过反射的实现12345678910111213141516171819@CallerSensitive @ForceInline // to ensure Reflection.getCallerClass optimization @IntrinsicCandidate public Object invoke(Object obj, Object... args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { if (!override) { Class<?> caller = Reflection.getCallerClass(); checkAccess(caller, clazz, Modifier.isStatic(modifiers) ? null : o ...
2025 N1CTF Junior
脖子疼
2025 N1CTF Juniortraefik存在任意文件解压
这里可以解压到任意目录下,覆盖原来有的内容
这里可以覆盖他的反代配置,然后把flag路由暴露出来
这里限制了flag访问必须要是本地ip,需要伪造
可以设置yaml,中间设置一个中间件,修改所有经过的xff头
exp如下
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import zipfile if __name__ == "__main__": try: binary = '''# Dynamic configurationhttp: middlewares: set-x-forwarded-for: headers: customRequestHeaders: X-Forwarded-For: "127.0.0.1" ...
2025SUCTF
2025SUCTF -WEB
死了
SU_photogallery可以上传一个zip压缩包
404页面长得像php-s 启动的服务,搜搜相关漏洞
https://blog.csdn.net/Kawakaze_JF/article/details/133046885
找到了这个,成功读取了代码
源代码如下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 ...