常规检查


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

浙公网安备 33010602011771号