Polarctf2025春季赛题解
SKYY CTF 372浏览 · 2025-03-23 06:46

bllhl_mom

image.png


第一次泄露canary,第二次随便写数据,利用第三次去进行栈迁移到bss段即可

这里执行system($0)

koi

image.png


image.png


xxx函数里面有栈溢出可进行构造ret2libc

那么我们需要让v4和n都等于520

看其他函数只有wrshell有用

image.png


溢出8字节可覆盖rbp

继续看main函数在switch之后的逻辑

image.png


将rbp-4作为scanf读入的地址,那么我们只需要在wrshell函数中控制rbp为n的地址+4即可往n里写数据了。

接下来就是ret2libc







thinks

输入5212,判断magic是否大于0x145c

image.png


大于则进入wish函数,该函数是后门函数

无uaf,但是edit函数有堆溢出

image.png


思路:先free一个堆块进入fastbins,在对该堆块的上一个堆块进行edit,利用溢出修改被free堆块的fd为magic附近地址,再申请回来,往magic上写入数据即可

ez_heap1

跟thinks这道题的打法是一样的

onegadget

2.23版本的堆题标准菜单题

uaf

image.png


攻击malloc_hook为onegadget

fmt_text

32位,got可打

image.png
image.png


gets溢出,格式化字符串漏洞

利用fmtstr_payload

修改printf为system即可



libc

32位的ret2libc,朴实无华

bllbl_shellcode_2

屏幕截图 2025-03-23 140507.png


有jmp_rsp

屏幕截图 2025-03-23 140518.png


我们只有5+8个字节可以去写shellcode

跳转看下寄存器情况

屏幕截图 2025-03-23 140724.png


构造execve

刚刚好13个字节‘

NICOUAF

32位堆

存在uaf

image.png


利用点在show函数

image.png


判断我们输入的堆序号是否存在如果存在则打印数据

不存在就会执行(*((void (__cdecl **)(char *))page + 1))(page);

这里是我们可自己控制的堆内容

那么我们只需要利用uaf漏洞去伪造指针,在堆上构造system(/sh )即可

先free0号堆块,在申请回来,此时是0号和1号是一个堆块,修改1号堆块

show(0)即可

image.png



0 条评论
某人
表情
可输入 255
目录