caspp attacker lab

news2024/11/20 16:28:24

attacker lab

phase2 advice

在这里插入图片描述

phase 1

ctarget 会先调用test , test调用getbuf, getbuf调用Get。
任务目的是通过缓冲区注入攻击,将函数getbuf返回直接重定向到函数touch1。
在这里插入图片描述
0x28 是 40 比特,
在这里插入图片描述
gdb ./ctarget
在这里插入图片描述
getbuf 下一次执行的指令是401976, rsp对应的汇编文件行数,
在这里插入图片描述
通过objdump 可以获取地址,
在这里插入图片描述
40个字符加上touch1的地址,
在这里插入图片描述

课件的例子1
在这里插入图片描述
课件的例子2
在这里插入图片描述

phase 2

ctarget 会先调用test , test调用getbuf, getbuf调用Get。
任务目的是通过缓冲区注入攻击,将函数getbuf返回直接重定向到函数touch2。
在这里插入图片描述
在这里插入图片描述
参考了知乎网友的翻译,这里需要判断val,储存在rdi的值,和 cookie的值,cookie的值是0x59b997fa。

pushq $0x4017ec
mov $0x59b997fa, %rdi # save cookie into rdi
retq #

将汇编代码转为二进制

gcc -c phase2_mov.s 
objdump -d phase2_mov.o > phase2_mov.d

在这里插入图片描述

[root@edb3963640a6 target1]# ./hex2raw < phase2.txt > phase2-raw.txt
[root@edb3963640a6 target1]# ./ctarget -q < phase2-raw.txt 

使用gdb 查看stack frame,
在这里插入图片描述
多层stack frame,
在这里插入图片描述
简单介绍stack frame和函数调用的关系
在这里插入图片描述
需要获取rsp 的初始地址,
在这里插入图片描述

调用函数getbuf时候rsp是0x5561dca0 - 0x28 的到 0x5561dc78
在这里插入图片描述
getbuf 函数在调用get函数前,会存入ret address, 这个地址放入rsp, 之后rsp - 0x28, 写入0x28个字符,这部分字符的内容是修改rdi, 然后调用touch2, 然后多出来的部分会影响函数,使函数的返回地址修改rdi的值的地址。
在这里插入图片描述

答案如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

phase3

在这里插入图片描述

汇编相关语法

pushq

在这里插入图片描述

call 指令

在这里插入图片描述

stack frame

在这里插入图片描述
在这里插入图片描述

函数

stack frame

在这里插入图片描述
call_echo 函数调用 echo 函数, call_echo函数的底部是echo执行完之后的地址。

control flow

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pushq 指令

pushq指令在执行时会将栈指针rsp减小8个字节,以便为要压入栈中的数据腾出空间。这样,rsp将指向新的栈顶位置,即之前压入的数据的下一个位置。因此,pushq指令会通过减小rsp的值来更新栈指针。

rip寄存器

rip寄存器的值是由call指令或条件跳转指令等控制流指令来改变的。

参考资料

https://www.cs.cmu.edu/afs/cs/academic/class/15213-f17/www/lectures/09-machine-advanced.pdf
https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/lectures/07-machine-procedures.pdf
https://github.com/magna25/Attack-Lab/blob/master/Phase%202.md
https://zhuanlan.zhihu.com/p/107048472
https://zhuanlan.zhihu.com/p/105428280
https://zhuanlan.zhihu.com/p/60724948

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1210109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】上市公司数据进行经典OLS回归实操

一、题目二、数据合并、清洗、描述性统计1、数据获取2、数据合并3、选择董监高薪酬作为解释变量的理论逻辑分析 三、多元回归模型的参数估计、结果展示与分析1、描述性统计分析2、剔除金融类上市公司3、对所有变量进行1%缩尾处理4、0-1标准化&#xff0c;所有解释变量5、绘制热…

计算机毕设 机器学习股票大数据量化分析与预测系统 - python 计算机毕设

文章目录 0 前言1 课题背景2 实现效果UI界面设计web预测界面RSRS选股界面 3 软件架构4 工具介绍Flask框架MySQL数据库LSTM 5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业…

【数据结构】树与二叉树(十六):二叉树的基础操作:插入结点(算法Insert)

文章目录 5.2.1 二叉树二叉树性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点&#xff0c;其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

【计算机网络笔记】CIDR与路由聚合

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

nodejs+express重定向

前言&#xff1a; 本篇代码中需要安装的依赖包包括&#xff1a;request、express 1.常用重定向方法 nodejs中的重定向可以使用.redirect()方法&#xff0c;该方法中可以传两个参数&#xff1a;code和path&#xff0c;code指重定向时&#xff0c;当前访问的这个接口的返回码3…

20.2 设备树中的 platform 驱动编写

一、设备树下的 platform 驱动 platform 驱动框架分为总线、设备和驱动&#xff0c;总线不需要我们去管理&#xff0c;这个是 Linux 内核提供。在有了设备树的前提下&#xff0c;我们只需要实现 platform_driver 即可。 1. 修改 pinctrl-stm32.c 文件 先复习一下 pinctrl 子系…

C 语言多维数组

C 语言多维数组 在本教程中&#xff0c;您将借助示例学习使用多维数组&#xff08;二维和三维数组&#xff09;。 在C语言编程中&#xff0c;您可以创建一个数组数组。这些数组称为多维数组。例如&#xff0c; float x[3][4];这x是二维&#xff08;2d&#xff09;数组。该数…

14——1

这句话的意思是&#xff0c;如图中月份12天数23时&#xff0c;就是1223&#xff1b;当月份9天数2时&#xff0c;就是0902. 可以看到在上面给出的数组元素中&#xff0c;并没有连续挨在一起的2023数字元素——就有人可能输出答案0。 所以这里要看一下—— ——子序列的含义&…

网络运维Day16

文章目录 Docker简介什么是容器命名空间&#xff1a; Docker 的优缺点 Docker安装Docker镜像管理什么是镜像镜像管理 Docker容器管理运行容器容器启动、停止、重启拷贝文件进入容器容器与应用 DockerfileDockerfile 语法案例 总结 Docker简介 什么是容器 容器是用来装东西的&a…

诡异的bug之dlopen

序 本文给大家分享一个比较诡异的bug&#xff0c;是关于dlopen的&#xff0c;我大致罗列了我项目中使用代码方式及结构&#xff0c;更好的复现这个问题&#xff0c;也帮助大家进一步理解dlopen. 问题复现 以下是项目代码的文件结构&#xff1a; # tree . ├── file1 │ …

【大语言模型】Docker部署清华大学ChatGLM3教程

官方地址&#xff1a;https://github.com/THUDM/ChatGLM3 1 将代码保存至本地 方法1&#xff1a; git clone https://github.com/THUDM/ChatGLM3 方法2&#xff1a; https://github.com/THUDM/ChatGLM3/archive/refs/heads/main.zip 2 创建Docker文件 注&#xff1a;请先…

【分布式】CAP理论详解

一、CAP理论概述 在分布式系统中&#xff0c;CAP是指一组原则&#xff0c;它们描述了在网络分区&#xff08;Partition&#xff09;时&#xff0c;分布式系统能够提供的保证。CAP代表Consistency&#xff08;一致性&#xff09;、Availability&#xff08;可用性&#xff09;和…

CSS特效010:文字颜色渐变的流光效果

查看专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS相关的库、…

Python编程-----网络通信

一.统一资源定位器URL 专为标识Internet网上资源位置而设的一种编址方式 ,URL一般由以下几个部分组成&#xff1a; 传输协议://主机IP地址(或域名地址)[:端口号]/资源所在路径和文件名 •传输协议是指访问该资源所使用的访问协议&#xff1b; •主机IP地址&#xff08;或域名…

C/C++轻量级并发TCP服务器框架Zinx-框架开发002: 定义通道抽象类

文章目录 2 类图设计3 时序图数据输入处理&#xff1a;输出数据处理总流程 4 主要实现的功能4.1 kernel类&#xff1a;基于epoll调度所有通道4.2 通道抽象类&#xff1a;4.3 标准输入通道子类4.4 标准输出通道子类4.5 kernel和通道类的调用 5 代码设计5.1 框架头文件5.2 框架实…

MATLAB中Filter Designer的使用以及XILINX Coefficient(.coe)File的导出

文章目录 Filter Designer的打开滤波器参数设置生成matlab代码生成XILINX Coefficient(.COE) File实际浮点数的导出官方使用教程 Filter Designer的打开 打开Filter Designer&#xff1a; 方法一&#xff1a;命令行中输入Filter Designer&#xff0c;再回车打开。 方法二&…

夸克发布自研大模型 加速下一代搜索体验创新

国产大模型阵营再添新锐选手。11月14日&#xff0c;阿里巴巴智能信息事业群发布全栈自研、千亿级参数的夸克大模型&#xff0c;将应用于通用搜索、医疗健康、教育学习、职场办公等众多场景。夸克App将借助自研大模型全面升级&#xff0c;加速迈向年轻人工作、学习、生活的AI助手…

ORACLE数据库实验总集 实验一 Oracle数据库安装与配置

一、实验目的 &#xff08;1&#xff09;掌握 Oracle数据库服务器的安装与配置 &#xff08;2&#xff09;了解如何检查安装后的数据库服务器产品&#xff0c;验证安装是否成功。 &#xff08;3&#xff09;掌握 Oracle数据库服务器安装过程中出现的问题的解决方法。 二、实验…

2023亚太杯数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …

【CASS精品教程】打开cass提示base.dcl未找到文件的解决办法

打开cass 7.1时提示base.dcl未找到文件的解决办法。 文章目录 一、问题描述二、解决办法 一、问题描述 系统上安装了cad2006cass7.1&#xff0c;cass软件可以正常打开&#xff0c;但是在使用屏幕菜单绘制地图时&#xff0c;选择一个工具&#xff0c;提示base.dcl未找到文件&am…