首先我们需要知道字符串的值如下,这里我们直接利用gdb,我们先像第一个题一样直接将返回地址设置为touch3,并在touch3处设置断点开始执行,并单步调试到mov 0x202bd3(%rip),%edi后直接通过p/x $edi打印出其值为0x59b997fa,我们知道$rdi和$rsi作为参数传递给函数hexmatch中,通过disas hexmatch可以发现,该函数实际上...
此次lab学会了两种攻击方法。对于可修改的栈,可以嵌入我们自己写的指令,对于不可修改的栈,我们可以利用已有的指令截取组成我们自己的攻击代码。可以看出cpu只会傻乎乎的执行一串数字,我们可以告诉他数字的意义是什么,它就相信是什么。 深入理解计算机系统(书籍)...
因为lab给的ctarget是已经经过汇编的二进制文件,所以我们要通过objdump -d 进行反汇编查看要跳转到的函数touch1的地址,以及getbuf请求到的空间。 同时需要知道运行时的栈 的结构, 同时要清楚栈一"行"就是一个字节(x86-64是按照字节进行编址的) 在Level 1中我们只需要做到让getbuf读到的内容溢出,覆盖掉栈上保存...
针对lab3中的题目与解法,我主要阐述了从level1到level3的攻击方法。在level1中,我使用了缓冲区溢出的原理,通过修改栈内存,使调用的call指令执行我们希望的函数touch1。由于getbuf函数使用了0x28个栈内存,我们只需填充完这0x28个字节,然后利用ret指令的位置来跳转到touch1函数。值得注意的是,输入的...
在做完lab2的时候,回去看了课本的第三章,最后一部分讲了一下栈溢出导致的代码漏洞会被如何利用,以及如何防止这种安全问题,当时就在想原来代码攻击是这样的,有空要自己实践一下。打开lab3发现原来就是我想要的,兴趣一下就来了 1. 预备知识 C语言的空间管理 1.栈区(stac
CSAPP Lab3: The Attack Lab 实验介绍 Part I: Code Injection Level 1 Level 2 Level 3 Part II: Return-Oriented Programming Level 2 Level 3 实验结果 实验介绍 具体看writeup.pdf。 攻击目标代码ctarget和rtarget都使用如下函数从标准输入中读取字符串: ...
漏洞分析TCP/IP Attack Lab(自用,记录) TCP/IP Attack Lab 1 Lab Overview 2 Lab Environment 2.1 Environment Setup 2.2 Note for Instructors(就是一些介绍,可以忽略) 3 Lab Tasks 3.1 Task 1 : SYN Flooding Attack 3.2 Task 2 : TCP RST Attacks on telnet and s... ...
lab attacklab result1:PASS:0xffffffff:ctarget:2:48C7C7FA97B95968EC174000C300000000000000000000000000000000000000000000000000000078DC615500000000 phase_3 phase3与phase2区别是此题首先需要将cookie值转换成对应第ascii码后,记录在栈中,随后作为参数传入touch3。
**Lab3 ATTACK Lab** 准备 题解 第一部分:代码注入攻击 level-1 level-2 level-3 csapp 学习记录一 第1章:计算机系统漫游 信息就是位+上下文 系统中的所有信息,都是一串比特组成的。区分不同数据对象的唯一方法是联系他们的上下文。 从一个c文件,到可执行目标文件整个翻译过程分为4个阶段 ...
CSAPP深入理解计算机系统 Lab3(attack Lab) 详解 凌晨九点 CS本科生 本文以记录个人学习CSAPP的过程,使用blog的方式记录能更专注的思考,不至于走马观花式的做实验。同时我关注的不仅是实验本身还有实验中使用工具的学习。 实验说明 本实验通过向两个程序中进行攻击已达到攻击… ...