220 字
1 分钟
ctfshow stack overflow pwn79
2026-05-22
ctfshow
/ stack-overflow

主函数造成了栈溢出,而 ctfshow 函数调用了 strcpy 把 input 给原模原样整到 buf 上了,没有去管 input 的长度,也就是说 ctfshow 函数也会导致栈溢出的意思。

根据题目提示我在 IDA 里找到了这样一个奇怪的函数,会把 esp(栈顶)赋值给 ebx。我溢出的时候会覆盖 ebp 但是肯定覆盖不到 esp,emm…
ret2reg:
控制程序流执行控制的寄存器指向的位置的 shellcode(自主写入)

这里没有直接的 call ebx,再找别的利用点

这里的 leave 可以利用上。leave ret 是经典利用链了。
动调看看 leave 之前什么东西和 esp 是一伙的。

有 ebx 和 eax。那么没找到 call ebx 找到了 call eax,就用它了:

exp:

ctfshow{50fbe458-86a8-400e-8e37-152046a64b8c}
ctfshow stack overflow pwn79
https://alf-ovo.cn/posts/ctfshow-stack-overflow-pwn79/