xctf Mary_Morton

Posted on 2025-09-04 13:40  nnnnoob  阅读(8)  评论(0)    收藏  举报

常规检查

 

64位小端序,有canary且栈不可执行

 

一开始的思路还是rop,但先看下ida分析一下

这道有两个解题点,一个是栈溢出,一个是格式化字符串,同时还给了一个后门。

思路:通过格式化字符串泄露canary,再通过栈溢出到后门

发现第六个字节偏移

从buf到canary相距0x90-0x8=0x88 0x88/8=17 再加上之前6字节偏移,要在第23泄露

所以构造exp

不知为何没显示flag(裂开),应该有才对的

思路二,利用格式化字符串将printf的got地址修改成system的plt地址,再次选择2,输入/bin/sh\x00,尝试调用shell

Dump一下

找到printf的got

构造exp

拿到flag

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3