logo资料库

华中科技大学信息系统安全实验报告.pdf

第1页 / 共75页
第2页 / 共75页
第3页 / 共75页
第4页 / 共75页
第5页 / 共75页
第6页 / 共75页
第7页 / 共75页
第8页 / 共75页
资料共75页,剩余部分请下载后查看
华中科技大学网络空间安全学院 《信息系统安全》实验报告 姓名 罗南清 班级 IS1701 学号 U201714868 教师评语:
目 录 1 软件安全实验 ................................................................................... 5 1.1 缓冲区溢出实验 .................................................................... 5 1.1.1 实验目的 ..................................................................... 5 1.1.2 实验内容 ..................................................................... 5 1.1.3 实验过程 ..................................................................... 5 1.2 Return-to-libc 攻击实验 ....................................................... 10 1.2.1 实验目的 ................................................................... 10 1.2.2 实验内容 ................................................................... 10 1.2.3 实验过程 ................................................................... 10 1.3 ROP 实验 .............................................................................. 15 1.3.1 实验目的 ................................................................... 15 1.3.2 实验任务 ................................................................... 15 1.3.3 实验过程 ................................................................... 15 1.4 竞态条件 .............................................................................. 16 1.4.1 实验目的 ................................................................... 16 1.4.2 实验内容 ................................................................... 17 1.4.3 实验过程 ................................................................... 17 1.5 Meltdown 实验 .................................................................... 19 1.5.1 实验目的 ................................................................... 19 1.5.2 实验任务 ................................................................... 19 1.5.3 实验过程 ................................................................... 19 2. 系统安全实验 ................................................................................ 23 2.1 环境变量和 Set-UID 程序实验 ........................................... 23
2.1.1 实验目的 ................................................................... 23 2.1.2 实验内容 ................................................................... 23 2.1.3 环境变量和 Set-UID 程序实验过程 .......................... 23 2.2 Shellshock 攻击实验 ............................................................ 44 2.2.1 实验目的 ................................................................... 44 2.2.2 实验内容 ................................................................... 44 2.2.3 实验过程 ................................................................... 44 2.3 Linux Capability 访问控制实验 ............................................ 47 2.3.1 实验目的 ................................................................... 47 2.3.2 实验内容 ................................................................... 47 2.3.3 实验过程 ................................................................... 48 3. Web 安全实验 ............................................................................... 57 3.1 跨站请求伪造(CSRF)攻击实验 ..................................... 57 3.1.1 实验目的 ................................................................... 57 3.1.2 实验内容 ................................................................... 58 3.1.3 实验过程 ................................................................... 58 3.2 跨站脚本攻击(XSS)实验 .............................................. 61 3.2.1 实验目的 ................................................................... 61 3.2.2 实验内容 ................................................................... 62 3.3.3 实验过程 ................................................................... 62 4. 区块链实验 ................................................................................... 67 4.1 Hyperledger/fabric 网络搭建实验 ....................................... 67 4.1.1 实验目的 ................................................................... 67 4.1.2 实验内容 ................................................................... 67 4.1.3 实验过程 ................................................................... 68
5. 心得体会 ....................................................................................... 75
1 软件安全实验 1.1 缓冲区溢出实验 1.1.1 实验目的 本实验的目的是让学生将从书本中学到的有关缓冲区溢出漏洞的 知识应用到实践中。 程序向预分配的固定长度缓冲区写入数据时,如果写入的数据的长度 大于缓冲区的固定长 度,则会发生缓冲区溢出。攻击者可利用此漏洞更改程序的控制流, 使其执行任意代码段。攻击者利用数据存储(例如缓冲区)和控制存 储(例如返回地址)的进行攻击:数据部分的溢出会影响程序的控制 流,因为溢出会改变返回地址,从而改变程序的控制流。 本实验提供了一个具有缓冲区溢出漏洞的程序。学生的任务是利 用这个漏洞设计一个方案,并获得 root shell。 除了实现攻击之外,本 实验还将引导学生学习操作系统中实施的几种防止缓冲溢出攻击的保 护方案。学生需要评估这些计划是否有效,并解释其原因。 1.1.2 实验内容 任务 1:利用缓冲区溢出漏洞 任务 2:开启地址空间随机化 任务 3:开启 Stack Guard 保护 1.1.3 实验过程 实验设置 1. 首先将系统的地址随机化关闭 图 1-1-1 地址随机化关闭 2. 再编译并运行 call_shellcode,成功获得本地主机的 shell
图 1-1-2 编译运行 call_shellcode 3. 再将漏洞程序设置为 set-root-uid 图 1-1-3 编译漏洞程序 任务一:利用缓冲区溢出漏洞 1. 首先建立 exploit.c 和 stack.c 文件,前者的功能是生成 badfile,后 者是有缓冲区溢出漏洞的程序,该程序将 badfile 文件内容拷贝到栈区 发生溢出。 2. 生成 badfile 1)用 NOP 指令填充 badfile 增加溢出攻击成功率, 如果错误地计 算了 shellcode 的地址使程序跳转到错误的地址,一系列的 NOP 指令也 可以确保程序执行 shellcode。 2)Badfile 文件要能够覆盖漏洞程序的返回地址。 3)将 shellcode 放置在 badfile 尾部。 3. 获得实验所需参数 Stack 栈区结构如图 1-1-1 所示 4. 计算 shellcode 地址 addr(shellcode) = addr(buffer) + dist(buffer, return_addr) = addr(buffer) + dist(buffer, ebp) + 4
图 1-1-4 stack 栈区结构图 5. 利用 gdb 调试 stack 程序可以获得 buffer 的基址和 ebp 的位置 图 1-1-5 程序 backtrace 示意图
图 1-1-6 buffer 与 ebp 地址 6. 可以看到 buffer 的基址和 ebp 的基址相差 0x20,即 32 字节, buffer 和 return 相差 2 字节,所以应该在 buffer 的第 36 个字节位置放 置 shellcode 的地址。 完善 expliot.c 文件如下,构建 buffer: *((long*)(buffer+36)) = 0xbfffe9f8 + 0x80 Memcpy(buffer + sizeof(buffer) – sizeof(shellcode), shellcode, sizeof(shellcode)); 7. 运行结果如下,成功获得本地 shell 图 1-1-7 攻击成功 任务 2:开启地址空间随机化 1. 打开本地空间地址随机化 图 1-1-8 地址空间随机化 2. 再次尝试运行,会被系统中止
分享到:
收藏