2025羊城杯
0x00 前言:止步46,不知道说什么,还是太菜了 0x01 PWNmalloc不是正经堆题,但差不多。首先就是有沙箱,ban了execve和execveat line CODE JT JF K================================= 0000: 0x20 0x00 0x00 0x00000004 A = arch 0001: 0x15 0x00 0x06 0xc000003e if (A != ARCH_X86_64) goto 0008 0002: 0x20 0x00 0x00 0x00000000 A = sys_number 0003: 0x35 0x00 0x01 0x40000000 if (A < 0x40000000) goto 0005 0004: 0x15 0x00 0x03 0xffffffff if (A != 0xffffffff) goto 0008 0005: 0x15 0x02 0x00 0x0000003b if (A == execve) goto 0008 0006: 0x15...
Securinets CTF Quals 2025 PWN 题解
0x00 前言好耶,加进su了。花太多时间在那道shellcode上,没时间细看其他题了捏。后续加油复现一下 0x01 题解部分zip++check一下 Arch: amd64-64-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x400000)Stripped: No vuln()逻辑如下,没看出来什么问题,跟进一下compress其实当时我没看这个函数是干嘛的,用cyclic(0x300)测试能不能栈溢出的时候发现最后停在了这里,观察16进制数值不难发现其中都是一个可见字符的hex + 一个数字,比如这里就是0x2 61(a) 01 73(s) 01 66(f) 02 61(a) 同时程序中存在后门函数直接抄cyclic生成的垃圾数据然后稍微改改就行 from pwn import *context.arch='amd64'context.os =...
SunshineCTF 2025 PWN 题解
0x00 前言跟随SU的脚步,heap依旧是弱点。小众考点更是不用说 0x01 题解i95这个分类应该算baby pwn? Jupiter程序逻辑非常简单然后是测量字符串偏移,这里是5直接用pwntools自带的fmtstr_payload一把梭 from pwn import *from ctypes import *import structcontext.arch='amd64'context.os = 'linux'context.log_level = 'debug'file='/mnt/c/Users/Z2023/Desktop/jupiter'elf=ELF(file)choice = 0x001if choice: port= 25607 sun = 'chal.sunshinectf.games' p = remote(sun,port)else: p = process(file)s = lambda data ...
K17 CTF PWN 题解
0x01 前言依旧Redbud大佬carry,这次还来了个re大佬。最终排名 6/1325. 不得不说国际赛pwn题真的是小众又新奇。目前打了两次国际赛,看得出老外不是很喜欢出堆题。 0x02 题解部分ezwins How old can it be to win? 虽然这题不是我写的,是wallace哥ai梭出来的,但还是简单记录一下。程序逻辑如下同时程序中有后门函数,简单分析一下中间那坨省流,取我们的输入做为地址进行跳转,尝试写下payload sla('What\'s your name?\n',b'aaaa')sla('How old are you?\n',str(0x0000000004011F6)) 发现会卡在call的地址莫名其妙少了1字节,这里懒得深究了,我们在发送地址的时候左移8即可 完整EXP:from pwn import *from ctypes import *import structcontext.arch='amd64'context.os =...
Pwn College File Struct Exploits Level 1 ~ ?
0x00 事前准备这部分可以参考Pwn College Format String Exploits Level 1.0 ~ Level 9.1攻略的事前准备部分。依旧把payload用到的lambda函数放在这里 s = lambda data :p.send(data)sl = lambda data :p.sendline(data)sa = lambda x,data :p.sendafter(x, data)sla = lambda x,data :p.sendlineafter(x, data)r = lambda num=4096 :p.recv(num)rl = lambda num=4096 :p.recvline(num)ru = lambda x :p.recvuntil(x)itr = lambda ...
CTF@AC PWN题解
0x00 前言被Redbud的大佬 Wallace 带着打的第一个国际赛,rank global 24/234,最后倒在了Rust的手下,这个实在没办法,逆向逆不明白,等wp好好复现。个人解题情况如下,crypto就不写了www 0x01 題解sigdance Dance to the rhythm of your hear…SIGKILLED 个人认为这道实际上是一道 re 题目,题目给出了 main.c , plugin.c 以及 server.py。简单看下 main 吧 int main() { unsigned A, U; compute_counts(&A, &U); uint32_t PID = (uint32_t)getpid(); srand((unsigned)time(NULL) ^ PID ^ A ^ U); printf("Hello from pid8 = %u\n", (unsigned)(PID & 255u)); fflush(stdout); void *h =...
Pwn College Format String Exploits Level 1.0 ~ Level 9.1攻略
0x00 事前准备这个模块在Software Exploitation里面可以找到。由于 pwn college 自带 ida 和 gdb 都很难用,所以我们需要用一些小手段把程序给 dump 下来还有文章中的payload用到的一些lambda函数 s = lambda data :p.send(data)sl = lambda data :p.sendline(data)sa = lambda x,data :p.sendafter(x, data)sla = lambda x,data :p.sendlineafter(x, data)r = lambda num=4096 :p.recv(num)rl = lambda num=4096 :p.recvline(num)ru = lambda x ...
菜鳥黑客松2025 PWN 全部題解
0x00 前言家鄉的CTF比賽,本來是來刷個臉熟的,結果打到了第5,沒有前三實在可惜。也有可能國内的大手子們在打L3H沒空理這邊。比較意外的是,這個比賽居然是SU出題的,不過面嚮菜鳥的比賽也不會難道哪裏去。這次的PWN還挺有意思,讓我搞懂了bss段上的fmtstr,同時因爲最近在看pwn college的fmtstr部分,對這方面有了更多的理解 0x01 題解部分ez-canaryChecksec: Arch: amd64-64-littleRELRO: No RELROStack: Canary foundNX: NX enabledPIE: No PIE (0x400000)Stripped: No 程序邏輯如下:利用 13 行的 printf() leak canary:同時程序中存在後門函數ret2text 即可。注意 /flag.txt 中的才是真 flagExp: from pwn import *from ctypes import *from struct import...
H&NCTF 2025
0x00 前言大二最后一次认真打的比赛,还是倒在堆题手下 0x01 题解三步走战略checksec: Arch: amd64-64-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: PIE enabledStripped: No ida看一眼有沙箱,顺手查了 line CODE JT JF K================================= 0000: 0x20 0x00 0x00 0x00000004 A = arch 0001: 0x15 0x00 0x0a 0xc000003e if (A != ARCH_X86_64) goto 0012 0002: 0x20 0x00 0x00 0x00000000 A = sys_number 0003: 0x35 0x00 0x01 0x40000000 if (A < 0x40000000) goto 0005 0004:...
“轩辕杯”云盾砺剑CTF挑战赛 PWN 部分题解
0x00 前言pwn都挺难的,做完三道就跑去写密码了… 0x01 题解部分libcret2libc即可, libc 大概是2.35吧 from pwn import *from ctypes import *from struct import packcontext.arch='amd64'context.os = 'linux'context.log_level = 'debug'file='/mnt/c/Users/Z2023/Desktop/lllibc'elf=ELF(file)libc=ELF('/mnt/c/Users/Z2023/Desktop/libc6_2.35-0ubuntu3.7_amd64.so')choice = 0x001if choice: port= 25467 xuanyuan= '27.25.151.26' p = remote(xuanyuan,port)else: p =...








