ISCC2026 WriteUp 写wp的时候容器关了没法截图 Pwn-A bridge too far 解题思路 本题是一道全保护开启的 C++ 堆菜单 PWN 题,整体分为三个阶段:登录认证绕过、游戏地图导航到达隐藏菜单、堆漏洞利用(UAF → tcache poisoning → exit handler 劫持)获取 shell。 一、环境与保护分析 使用 pwntools 自带的 checksec 检查二进制: Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled FORTIFY: Enabled...

========================= PWN+deepvoid 解题思路(必须包含文字说明+截图) 因此: 栈上直接 ROP 不方便,且程序本身没有明显栈溢出点。 No PIE 说明程序本体地址固定,GOT 和全局变量地址可直接使用。 Partial RELRO 意味着可以覆盖 GOT 表。 程序逻辑 程序提供 3 个主要功能: Create Modify Remove 全局有一个指针数组 chunks,地址是: chunks = 0x6020c0 三个核心函数行为如下: Create 输入下标 idx 输入大小 size 执行 malloc(size) 返回的指针保存到 chunks[idx] Modify 输入下标...

PWN-Elden Ring 解题思路 逆向分析与漏洞定位 拿到题目附件是一个静态链接的 ELF 64-bit 可执行文件,strip 过无符号表。运行后是一个文字冒险游戏,背景设定为艾尔登法环。游戏主菜单提供 17 个选项(0-16),其中选项 13 “remembrance archive” 是一个完整的堆内存管理器,支持创建、写入文本、写入十六进制、调整大小、查看内容、封印和删除操作。 通过动态调试并结合 glibc 堆分配特性,发现 delete 操作(选项7)释放 archive 的 data 缓冲区后,对应的 slot 被标记为空闲,但立刻创建一个同大小的新 archive 会导致 malloc 将同一块堆内存重新分配出...

Pwn-Entrance 解题思路 1. 程序分析与入口绕过 题目给出一个64位ELF文件entrance,启用Canary与NX保护,未开启PIE。运行程序后观察到主函数存在一条分支判断——全局变量secret必须等于0x378才会进入核心函数func3,否则直接退出。因此首要目标是将secret设置为目标值。 审计入口逻辑发现程序首先通过malloc(0x48)分配一块堆内存,向其中写入字符串"hack"后立即释放。接着程序要求用户输入一个长度值len,并以该长度再次malloc(len),将用户输入的access key存入其中。随后用strncmp将这片新内存与"hack"进行比较,匹配成功则将secret设为0x378。...

Pwn-Pwn3-EVM 解题思路(必须包含文字说明+截图) 程序架构分析 拿到题目附件 evm.zip,解压得到 pwn 二进制、libc.so.6 和 ld-linux-x86-64.so.2。用 checksec 查看保护: Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled 题目实现了一个双层虚拟机架构。程序启动后先接收外层 EVM(类 RISC-V 指令集)的代码长度、数据页数量以及原始字节码,执行完 EVM 阶段后再进入内层 BlindVM。 从逆向结果看,程序的输入协议如下:...

Pwn——forest 解题思路 一、程序信息收集 拿到附件后先确认二进制的基本属性。文件为 x86-64 ELF,通过 checksec 可知:Canary 与 NX 开启,PIE 关闭(NO PIE),RELRO 为 Partial。这意味着代码段、GOT 表、PLT 表地址在运行前就已固定,且栈上存在 canary 校验。整体利用方向明确:绕过 canary → 拿到 libc 基址 → ret2libc 起 shell。 运行程序,首先会看到两段类似谜题的交互提示。第一段要求给出一个数字,第二段要求输入一段文字,这两个属于作者设置的"入门考核",答案硬编码在二进制中,分别回复 100 和 magic 即可进入真正的漏洞触发路...

PWN+note 解题思路(必须包含文字说明+截图) 1.程序分析 题目给出一个名为 note 的 ELF 64-bit 可执行文件和 libc-2.31.so 动态链接库。题目描述为"Silent Note System",提供了 add / delete / edit 三个堆块操作功能,但没有 show 功能(无法直接读取堆块内容)。 使用 checksec 检查保护机制: Full RELRO:无法覆写 GOT 表 Stack Canary:栈溢出受阻 NX enabled:堆/栈不可执行 PIE enabled:地址随机化 程序首先调用 setup_sandbox() 函数,通过 libseccomp 库设置沙箱规则。反汇编...

========================= Pwn + notepad 解题思路(必须包含文字说明+截图) notepad 题目地址:39.96.193.120:10005 Flag ISCC{87c822a8-9675-46e1-aa71-648bdbca1480} 写wp的时侯flag变了 Name: ISCC{852cf33a-405c-43ec-a909-baa7ec41a5a2} 漏洞分析 程序只有两个功能: Create Note View Note 核心漏洞在 get_note(): if (idx > 9) { puts(“Index out of range!”); exit(-1); } 这里只检查了上界...

附件是一个 32 位 ELF: $ file attachment-9 attachment-9: ELF 32-bit LSB executable, Intel 80386, dynamically linked, not stripped $ checksec --file=attachment-9 Partial RELRO No canary found NX enabled No PIE 1. main 里的格式化字符串 read(0, buf, 0x20); printf(buf); if (target_val == 5) { vuln(); } 这里存在: printf(buf) 格式化字符串漏洞 全局变量...

PWN-Elden Ring 解题思路 逆向分析与漏洞定位 拿到题目附件是一个静态链接的 ELF 64-bit 可执行文件,strip 过无符号表。运行后是一个文字冒险游戏,背景设定为艾尔登法环。游戏主菜单提供 17 个选项(0-16),其中选项 13 “remembrance archive” 是一个完整的堆内存管理器,支持创建、写入文本、写入十六进制、调整大小、查看内容、封印和删除操作。 通过动态调试并结合 glibc 堆分配特性,发现 delete 操作(选项7)释放 archive 的 data 缓冲区后,对应的 slot 被标记为空闲,但立刻创建一个同大小的新 archive 会导致 malloc 将同一块堆内存重新分配出...

========================= PWN - Sea 解题思路 保护全开:PIE、NX、Stack Canary、Partial RELRO。 逆向分析 关键函数 system_reboot_comms (0x1229) — 后门函数: void system_reboot_comms() { puts("[+] Comm-Link Re-established. Entering Maintenance Shell."); fflush(stdout); system(“cat flag.txt”); exit(0); } 直接调用 system(“cat flag.txt”),这就是目标。...

一个简单的canary绕过 利用格式化字符串把canary拿出来 from pwn import * context(os="linux", arch="i386", log_level="debug") elf = ELF("./attachment-5") io = remote('39.96.193.120',10018) getshell = elf.symbols["getshell"] log.success(f"getshell = {hex(getshell)}") io.recvuntil(b"Hello Hacker!\n") # 第一次输入:泄露 canary io.send(b"%31$p.END\x00")...

ISCC 2026 pwn WP 1. 基本信息 file attachment-35 # ELF 64-bit PIE checksec: # Arch: amd64 # RELRO: Full RELRO # Canary: enabled # NX: enabled # PIE: enabled libc: glibc 2.31 保护全开,不能改 GOT,主要走堆利用。 2. 结构体还原 程序维护一个全局学生数组: student *list[7]; int cnt; int role; // 0 teacher, 1 student 外层结构: struct student { struct info *info; //...

题目信息 目标地址:39.96.193.120:33334 程序保护: Arch: amd64 RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE 漏洞分析 这题一共有三处关键点: customer ID 处存在格式化字符串漏洞 printf("Welcome, "); printf(id_buf); 因此可以直接泄露栈上和内存中的内容。 数量检查只比较了低 8 位 程序读入数量后,实际比较的是 al 是否小于等于 3,所以像 256、512 这类低字节为 0 的值都能绕过限制。 商品名输入处存在栈溢出 char product[0x100];...

Live2D: unsignedzhang/luotianyi-live2d