看板娘加载中
218 字
1 分钟
ctfshow stack overflow pwn75

shot 1

栈空间不够怎么办,栈空间不够就去做栈迁移。

shot 2 shot 3

这个函数从调用层面讲毫无用处,然而却实打实的给了我们 system 函数。

shot 4

ctfshow 这个函数有两次输入,但均只有两个字节的溢出,写 ROP 链的位置肯定是不够的。 这里就要用到栈迁移的知识点了,然而我只知道要 leave; leave; ret,具体的操作方式和运行结果我是不清楚的。所以我去网上搜索了资料:

栈迁移的原理&&实战运用 - ZikH26 - 博客园

shot 5 shot 6

exp:

shot 7

其中 0x38 = 0x28 + 0x100x10main_ebpbuf_ebp 之间的相对偏移。 这里的 system 函数后跟的 b"aaaa" 是作为 system 函数的返回地址存在,p32(buf+16) 作为其参数调用,指向写在之后的 b"/bin/sh\\x00"

shot 8

ctfshow{681b8551-ba3e-414b-94f5-9f8655ccca62}

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