第2阶段涉及注入少量代码作为漏洞利用字符串的一部分。 在文件ctarget中,存在用于具有以下C表示的函数touch2的代码: 任务是让CTARGET执行touch2的代码,而不是返回测试,且输入的字符串要与Cookie文件中的字符串相匹配。 🌻2.3.1 解决思路 根据文件中的信息,得知首先需要把字符串送到寄存器%rdi中,...
1. 首先,在返回地址的高地址处写入cookie。 2. 将返回地址覆盖为程序自身的一个pop指令的地址,通过这个指令将cookie传递到寄存器 3. 在上一个指令的返回地址处写上touch2的地址 其中第二步最直观的做法就是直接将栈顶的cookie弹出到%rdi,也就是touch2存放输入参数的寄存器,但是查阅手册没有找到直接这么做的指令。
AttackLab实验让我不仅仅停留在理论层面,更能够将安全意识应用到实际中,为未来的计算机系统设计和维护提供了有力的支持。这种实践性的体验是我学习过程中的一大亮点。 📝 总结 在计算机系统的广袤领域,仿佛是一片未被揭示的复杂网络,隐藏着深奥的密码,而CSAPP的AttackLab实验正是那一场引人入胜的冒险之旅。这实验...
vim lever2.txt 创建内容如下: 输入命令: ./hex2raw < level2.txt | ./ctarget -q 🌼2.4 实验结果 由于实验通关过程中是分阶段的,故展示通关过程中所需的创建文件如下: 🌼2.5 实验体会 深度理解底层系统编程:AttackLab实验让我深入理解了底层系统编程的复杂性。通过解密与实战,我不仅掌握了汇编语言和底层...
level 2 和level1相比,level2需要调用的touch2函数有一个unsighed型的参数,而这个参数就是lab提供的cookie。所以,这次我们在ret到touch2之前,需要先把cookie放在寄存器%rdi中(第一个参数通过%rdi传递)。 为了达到这个目的,我们需要在stack中植入指令movq $0x59b997fa, %rdi。所以,考虑在第一次ret的时候,将这个...
Part 2:Return-Oriented Programming(ROP攻击) 做题之前一定要仔细阅读write up:http://csapp.cs.cmu.edu/3e/attacklab.pdf,跟着实验说明做会明朗很多。 文件说明 ctarget:一个容易遭受code injection攻击的可执行程序。 rtarget:一个容易遭受return-oriented programming攻击的可执行程序。
lab attacklabresult1:PASS:0xffffffff:ctarget:1:5454...54C0174000000000 level 2# 先来分析touch2的代码 Copy voidtouch2(unsignedval){ vlevel =2;/*Part of validation protocol*/if(val == cookie) {printf("Touch2!: You called touch2(0x%.8x)\n", val);validate(2); }else...
Attack Lab的内容针对的是CS-APP中第三章中关于程序安全性描述中的栈溢出攻击。在这个Lab中,我们需要针对不同的目的编写攻击字符串来填充一个有漏洞的程序的栈来达到执行攻击代码的目的,攻击方式分为代码注入攻击与返回导向编程攻击。本实验也是对旧版本中IA32编写的Buffer Lab的替代。
LabEnvironment 在这个实验室中,我们将使用三台机器,分别称为用户VM、本地DNS服务器和攻击者VM。为了简单起见,我们使用VirtualBox中的NAT网络适配器将这些虚拟机放在同一个网络上。在现实世界中,它们不在同一个网络上。我们还假设运行在用户VM上的设备在防火墙后面,因此攻击者VM不能直接访问物联网设备。这个实验室的...
CSAPP实验3:Attack Lab 一、资源概览 从网站上下载到压缩包target1,解压后包含如下文件: - README.txt:文件夹中各个文件的介绍。 - ctarget和rtarget:用于进行攻击的可执行文件 - cookie.txt:一个八位十六进制数,有些攻击会用到。 - farm.c:ROP攻击中用到的“gadget farm”的源码。 - hex2raw:用于生成...