Web安全 Buffer Overflow Attack实验

本文通过一次Buffer Overflow Attack实验,详细阐述了C语言中由于不进行边界检查导致的安全问题。实验过程包括编译运行程序、反汇编查看函数地址、修改代码以覆盖返回地址,最终实现程序跳转到非预期位置,揭示了缓冲区溢出攻击的原理。

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

Assignment 7 

Buffer Overflow Attack





一开始我直接复制粘贴了蔡老师的代码,结果一直得不到预期的输出,但是之后我再看了看蔡老师的课件,又去网上重新找了找资料,完成了这次实验。

核心思想:

当程序执行strcpy时,程序将char[]中的内容拷入buffer中,但是buffer只能容纳一定容量的Bytes。由于C语言不进行边界检查,所以结果是buffer后面的字节内容被覆盖掉了,其中包括了ebp, ret地址,在这个例子中就是i r命令查看到的地址,那么如果要使它变成我们想要跳转到的bug函数地址,则要把char[]内容改造——那么沿用蔡老师原来的代码自然就不行了,我们得自己更该char[]的内容,即更改为bug的函数地址。然后运行程序,自然就会跳转到程序内按规定不能到的地方。


实验步骤:


首先直接编译运行程序,注意调整random_va_space与-fno-stack-protector。运行第一次。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值