Educator头歌:计算机系统基础-缓冲区溢出攻击 - 访问过程参数

第1关:访问过程参数


实验任务概述

本实验中缓冲区溢出攻击的目标是一个名为bufbomb二进制可执行程序,实验的任务是设计、构造合适的攻击字符串(“exploit string”),当输入攻击字符串至目标程序bufbomb后,通过造成缓冲区溢出改变目标程序的行为,达成预定的实验目标。

本实验的目标程序bufbomb在运行时调用如下getbuf过程从标准输入读入一个字符串:

  1. int getbuf()
  2. {
  3. other variables ...;
  4. char buf[BUFFER_SIZE]; // BUFFER_SIZE是预定义的一个正整数常量
  5. Gets(buf);
  6. return 1;
  7. }

其中,过程Gets从标准输入读入一个字符串(以换行‘\n’或文件结束end-of-file字符结尾),并将字符串(以null空字符结尾)存入指定的目标内存位置,即getbuf过程中定义的局部数组变量buf在栈上的具有BUFFER_SIZE个字节的存储空间。需要注意的是,过程Gets并不判断buf数组的大小是否足够容纳全部的输入字符串,而只是简单地向目标地址依次复制输入字符串的所有字符,因此当用户输入给getbuf过程的字符串长度超过(BUFFER_SIZE-1)个字符时,后续字符(以及字符串结尾的null空字符)在栈中的存储位置将超出buf数组的存储空间边界,即发生缓冲区溢出,从而覆盖栈中原来保存的数据。本实验的任务就是设计合适的输入(攻击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值