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 =...
ISCC2025校级&区域&决赛 PWN 题解
0x00 前言 小弟的第一次ISCC,校赛阶段已经结束了,简单记录一下做的PWN(3/3),平台比想象中的要烂好多好多…很难想象这是一个国家级的比赛。还有各种PY满天飞,甚至有老哥看到同校的PY队直接在比赛群里骂了起来,这就是_______. 欧也,区域赛ak了 kernel pwn不会 0x01 校级赛题解部分签checksec: Arch: i386-32-littleRELRO: Full RELROStack: Canary foundNX: NX enabledPIE: No PIE (0x8047000)RUNPATH: b'/home/yyh/Desktop/lib32/lib32/'Stripped: No 浅谈附件一发下来就是patch(?)过的,很奇怪,甚至不能直接打开,我当时尝试过给他patch了一个比较低版本的libc和so(2.23),启动之后会报一个这样的错误: version GLIBC_2.34 not...
Unl1nk
0x00 前言:堆学习之路还在继续,上周末打了ACTF,被几道Pwn题吓死了,上来就是IO、内核。唉,所以还是继续慢慢往上爬吧,希望总有一天能解出XCTF联赛的Pwn题 0x01 分析:一道用来熟悉 unlink 的题目,题目是来自[PolarD&N].(https://polarctf.com/#/page/challenges)的**easyhay**。Checksec 一下: Arch: amd64-64-littleRELRO: Partial RELROStack: Canary foundNX: NX enabledPIE: No PIE (0x3ff000)RUNPATH: b'/home/link/glibc-all-in-one/libs/2.23-0ubuntu11.3_amd64/'Stripped: No Patch 过了,值得注意的是没开 pie,这对我们 unlink 攻击起到了关键的作用,ida 启动 以为是unosrted bin...
UCSC CTF 2025高校网络安全联合选拔赛 PWN 题解
0x00 前言:kap0k 23级的第二场获奖的团队赛,最终只贡献了2道PWN,还是靠RE队友带飞了。最后一题堆题的复现拖了很久,总体来说不是什么难题,从这题开始稍微了解了一些unsorted bin的机制和off by one的攻击原理。做出来的两题都是比较简单的,所以可能写得有点粗糙,但最后一题堆题绝对写的很详细! 0x01 题解部分:BoFido-ucscchecksec一下: Arch: amd64-64-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x400000)SHSTK: EnabledIBT: EnabledStripped: No Ida就是一个简单的猜随机数。该随机数的生成依赖于种子,也就是说,如果种子一样,生成的随机数序列就一样。使用srand()函数来设定与题目相同的随机数种子,即可做到猜测随机数的效果 from pwn import *from ctypes...
House of Orange
0x00 前言:堆学习之路仍在继续,这次依旧是PolarD&NCTF上的一道堆题,名字是easy_exit,其实House of Orange挺模板的,这里只是简单过一遍,让自己大概理解一下这个模板是怎么运作的。House of Orange本身并不难理解,难理解的是后面的FSOP… 0x01 分析:Checksec 一下: Arch: amd64-64-littleRELRO: Full RELROStack: No canary foundNX: NX enabledPIE: PIE enabledRUNPATH: b'/home/link/glibc-all-in-one/libs/2.23-0ubuntu11.3_amd64/'Stripped: No Ida 启动程序还是很简单的,可以申请两次自定义大小的堆块,然后可以多次申请 0x1000 大小的堆。主要是没有 free 功能,没法正常泄露 libc。这就要用到 house 系列中的 house of orange...








