/DummyKitty's BlogCode Audit@xxx / Penetration Tester@xxx / CTFer 2025-09-03T00:38:22+00:00 DummyKitty / Jekyll © 2025 DummyKitty /assets/img/favicons/favicon.ico /assets/img/favicons/favicon-96x96.png TFCCTF 2025 minijail - Bash 下有限字符的极限构造2025-09-01T14:34:21+00:00 2025-09-03T00:37:59+00:00 /posts/TFCCTF-2025-minijail-Bash%E4%B8%8B%E6%9C%89%E9%99%90%E5%AD%97%E7%AC%A6%E7%9A%84%E6%9E%81%E9%99%90%E6%9E%84%E9%80%A0/ DummyKitty TFC CTF 中碰到了一道 bashjail,限制只能使用 $>_=:!(){} 这几个字符 1. 赛题分析 赛题源码如下: yo_mama #!/bin/bash goog='^[$>_=:!(){}]+$' while true; do echo -n "caca$ " stty -echo read -r mine stty echo echo if [[ $mine =~ $goog ]]; then eval "$mine" else echo '[!] Error: forbidden characters detected' printf '\n' fi done Dockerfile FROM ubuntu:20.04 ENV DE... TFCCTF 2025 Πjail - syscall 降权绕过2025-09-01T14:23:57+00:00 2025-09-03T00:37:59+00:00 /posts/TFCCTF-2025-%CE%A0jail/ DummyKitty TFCCTF 2025 中遇到了一道比较有趣的 pyjail —— Πjail(3.14 -> Π 🤣)。其限制的方式是通过系统调用强制使脚本权限降级为 nobody,然后再来执行 python 代码。flag 设置为 700 的权限,flag 本身为 root 创建,因此 nobody 是无法读取到 flag 的。 这道题当时没有做出来,本文仅为赛后 poc 的学习记录。 1. 赛题分析 Dockerfile: FROM python:3.14.0rc2-bookworm COPY ./jail.py /jail.py COPY ./flag.txt /flag.txt RUN apt update; apt install -y socat; rm -rf /var/lib/apt/lists/* RUN chmod 700 /flag.txt RUN chmo... Ubuntu 20.04 ppa:ondrej/php 源失效😨2025-08-24T10:07:17+00:00 2025-08-24T10:07:17+00:00 /posts/Ubuntu-20.04-PPA-%E6%BA%90%E5%A4%B1%E6%95%88/ DummyKitty Ubuntu 20.04 PPA 源失效😨 今早起来在祖传的 ubuntu 20 上安装 php 扩展,突然怎么都定位不到 package。 root@ubuntu:/# apt install php8.0 Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package php8.0 E: Couldn't find any package by glob 'php8.0' root@ubuntu:/# apt install php7.1 Reading package lists... Done Building dependency tree Reading state infor... L3HCTF 2025 TellMeWhy —— Fastjson 高版本 Getter 利用2025-07-15T00:00:00+00:00 2025-07-15T01:30:00+00:00 /posts/L3HCTF-2025-TellMeWhy-Fastjson-%E9%AB%98%E7%89%88%E6%9C%AC-Getter-%E5%88%A9%E7%94%A8/ DummyKitty 赛题分析 存在 solon 3.3.1、fastjson2:2.0.57 、freemarker、HikariCP:4.0.3 依赖。 HomeController 存在反序列化操作,MyInputObjectStream 进行过滤,禁掉了一些 toString 入口。 进入序列化之前还有一堆奇怪的过滤。 MyFilter /baby/** 下的路由只允许 127.0.0.1 访问,添加一个 Header 可以绕过: X-Forwarded-For: 127.1 map.size() != jsonObject.length() 尝试添加一个带 @ 的 json 键,solon 不会自动解析。这样就可以进到反序列化了。 {"extraField":"111", "@type":"org.codehaus.groovy... R3CTF 2025 no-brackets —— CGO 符号劫持2025-07-11T00:00:00+00:00 2025-07-11T01:30:00+00:00 /posts/R3CTF-2025-no-brackets-CGO-%E7%AC%A6%E5%8F%B7%E5%8A%AB%E6%8C%81/ DummyKitty 本文仅为 R3CTF 2025 payload 分析以及学习记录,payload 来自于 @cinabun 什么是 CGO CGO 是 Go 语言提供的一个机制,允许 Go 程序调用 C 语言编写的代码。CGO 的核心功能包括: 双向调用:Go 可以调用 C 函数,C 也可以调用 Go 函数 数据类型转换:在 Go 和 C 之间自动进行数据类型转换 内存管理:处理 Go 和 C 之间的内存分配和释放 编译集成:在编译时将 C 代码与 Go 代码链接 环境准备 CGO 在 windows 上默认不开启,可以使用 go env 查看环境变量 CGO_ENABLED。如果要开启的话,可以将该环境变量设置为 1 root@9d65073e8fc6:/app# go env | grep CGO CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' ...