201 字
1 分钟
ctfshow stack overflow pwn49
2026-05-13
ctfshow
/ stack-overflow

题目提到静态编译与mprotect函数,先查询一下mprotect函数是干什么的:



这一大坨函数确实是静态编译没跑了。
mprotect显示在哪了?暂时不清楚,先动调看一下权限:

给的这块0x080d8000为起始的地址在IDA里根本找不到,越界了。因此想到利用mprotect改前面的r-x权限为rwx权限,再写入shellcode。


这边我卡在不知道把shellcode注入到哪里去好的困境。
现在我得知,shellcode不止可以注入到现成的buf,也可以注入至bss段。
注意,用python readelf.py -S ./pwn的方式读取bss段具体位置。动调出来的只是页映射并不是具体实际地址。
exp:


ctfshow{738d17bb-8075-4946-97f2-ff5358d15340}
ctfshow stack overflow pwn49
https://alf-ovo.cn/posts/ctfshow-stack-overflow-pwn49/