标签:
练习1
一、实验描述
缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。
二、实验准备
系统用户名shiyanlou,密码shiyanlou
实验楼提供的是64位Ubuntu linux,而本次实验为了方便观察汇编语句,我们需要在32位环境下作操作,因此实验之前需要做一些准备。
此过程消耗了不少时间,学校的网速实在太渣。
三、实验步骤
练习一:
3.1 初始设置
3.2 shellcode
观察代码部分
3.3 漏洞程序
3.4 攻击程序
3.5 攻击结果
实验成功 获得root权限。
问题分析
1.
开始做了两遍,最后输出的地加上100后无法获得root权限,图中是我更改后的exploit.c的文件内容,地址部分为0xffd474。后来发现错误的原因是没有进入tmp目录中,而是进入了templates中。在查询ls后,发现错误了。 但是tmp目录不是在实验楼当前目录下的,而是另一个设备文件里。
2.
在是实验楼命令框中输入命令的时候不太熟悉,经过请教与查询,掌握的更加牢固了。
练习二
如果产生一个随机内存地址不能缓冲区溢出
练习三
将/bin/sh重新指向/bin/bash(或/bin/dash),观察能否攻击成功,能否获得root权限。
发现无法获得root权限,提示段错误
四. 实验体会
通过这次实验,让我对于缓冲区溢出漏洞有了更加深刻的了解,对于操作系统的对于防止缓冲区溢出的保护机制也有了一些初步的认识。
标签:
原文地址:http://www.cnblogs.com/fxxg1079120772/p/4452100.html