看板娘加载中
240 字
1 分钟
ctfshow stack overflow pwn45

shot 1 shot 2 shot 3 shot 4

这次我是真一点招都没了。先去看了看别人写的 wp。CTFshow-PWN-栈溢出(pwn45)

shot 5 shot 6

思路为利用 got 函数泄露 libc,然后从 libc 里拿 system 函数与 /bin/sh 字符串。 我记起来了!这才是最纯粹的 ret2libc!

shot 7

main 函数里调用过了一次 puts 函数,所以这次使用的时候可以直接拿 got 表的地址,而不需要考虑延迟绑定机制。

shot 8

第一次泄露的时候 puts_real 的地址没出来,因为我不很熟悉这里的回显逻辑。

shot 9

exp:

shot 10

在这里我第一个 payload 使用了 flat 函数而第二个 payload 没有使用,权当做一个对比,做一次尝试。当然,使用 cyclic 函数,不使用 b"A" * offsets 也是一种尝试。

本题我使用的是 puts 来泄露 libc 基址,而当然使用 write 函数也是 OK 的。方法见ctfshow pwn45

shot 11 shot 12

ctfshow{b35732c3-b5aa-4d24-9461-5f773460c4ac}

ctfshow stack overflow pwn45
https://alf-ovo.cn/posts/ctfshow-stack-overflow-pwn45/
作者
AlF
发布于
2026-05-12
许可协议
CC BY-NC-SA 4.0