[pwn笔记2]stack-three, stack-four, stack-five(Phoenix)

[pwn笔记2]stack-three, stack-four, stack-five(Phoenix)

Tags
pwn
stack
Published
Author
最近又是数模又是开学的,很难受,还是看看远方的入门题吧。没有动态基址,还是比较简单的。
(写这段的时候还没想到接下来还有概率论考试,还打了场ctf校赛,所以。。。)

stack-three

覆盖一个即将被调用的函数指针的数据,跟前面差不多。

stack-four

覆盖栈上的返回地址。
notion image
0x648-0x5f0=88

stack-five

需要拿到shell。由于栈是可执行的,可以利用gets来把shellcode读进来,覆盖返回地址来执行shellcode。
这个过程看起来非常完美,可是不知道为什么返回到栈上执行两步就会段错误。关掉了aslr,尝试了附加调试和取消gdb环境变量,以消除栈地址的变化,都没有进展。
后来看到了另一个方法:
notion image
调用gets之前,s被放入了rax中。所以直接把shellcode放到最前面就会被rax指向。
我们可以用rop,找到一段jmp rax,返回到那里,然后下一步就会跳到shellcode了。
还有一件事,gef可以用以下命令调整context里stack显示的行数
这样就不用在虚拟机里再装个peda了(这两个共存很卡)。
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.13.0