2018 10 14 pwn的学习0x5 没有缓冲区溢出,但是函数参数可覆盖

本文解析一道PWN入门题目,不通过覆盖返回地址,而是控制紧邻缓冲区的参数,利用fgets与scanf函数的特性,找到合适的缓冲区空间,如bss段,进行数据写入,实现程序流程的改写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同样是一道pwn的入门题目,题目本身不同于覆盖返回地址进行控制程序流,而是通过控制紧紧挨着缓冲区附近的参数进行修改从而达到我们所想要程序的目的。

在这里发现我们使用的fgets进行输入,我们利用gdb进去看看 ,

在这里发现箭头所指的位置是指的我们的下面的输出函数的内容所以我们要把这个内容所替换,

在程序当中发现有这么一段

把返回地址覆盖为他的地址就可以了

 

使用scanf函数,scanf函数没有限定缓冲区的大小,进行读取数据记住其中的传入参数%s 数据字符串所在的位置

另外不是所有的程序都有bss段可以写入 一个程序的bss段可能很小,不能往里面放入数据,所以要学会寻找好的缓冲区空间

在ida当中使用ctrl+s 寻找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值