rip题解

news2024/9/24 7:14:03

1.查看文件保护机制

使用的是新版本的checksec

2.拖入IDA分析

查壳

 

是一个64文件,拖入64位IDA

这个文件就是我们要攻击的服务器中的一个进程的代码,进程就是一个正在运行的程序

分析敏感函数

打开字符串窗口

 跟进,光标点在command,Ctrl+x交叉引用,查看使用字符串的函数

 继续跟进

按下空格键切换为文本模式

发现函数地址在0000000000401186 

按下F5反编译

发现这个函数就是调用system来进入shell

只要调用了这个函数就可以进入shell,我们就实现了pwn的目的

我们也知道了这个函数的地址

分析main函数

main函数是程序的入口

发现这个进程会用gets函数来接收一个字符串

gets函数是容易导致内存泄露的非常危险的函数,因为gets并没有输入的字符数量的限制 

s能存储的字符数为15个,剩下的都会溢出

分析这个进程之后我们接下来要做什么,就是一个运行着main函数的进程,我们要用gets函数导致的栈溢出漏洞来劫持进程,运行那个敏感函数,来进入shell

3.hack

文件分析完毕,开始hack

原理

原理是什么呢

内存中有程序开辟的空间

栈空间是从高地址像低地址扩展的

我们在调用一个过程(函数)的时候,会将上一个函数的返回地址压入栈中(回到上一个函数的时候使用这个地址返回),然后在栈(内存)中的是当前过程的指针(EBP)

之后进栈的是我们的局部变量s数组

s在内存中的地址是比存储EBP和返回地址更低的

我们可以写入s,利用15个字符来填充s,用接下来的8个字符来填充EBP,后面的字符就会覆盖了原来的返回地址,这一步叫进程劫持

这样这个程序返回时,就会返回我们想要去的地方

我们想要去的就是那个敏感函数

我们就要把这个发送给被hack的服务器,劫持进程,拿到shell

就可以随心所欲地操作服务器了

返回地址

EBP
s[15]

操作

需要安装Python3环境和pwntools

点击Launch,获得主机名和端口号,一个端口号对应一个进程

 我们python3命令进入Python环境

输入from pwn import *导入pwn包

io=remote("node4.buuoj.cn",29965)

创建一个对象,出入主机名和端口号

io.sendline('A'*15+'B'*8+p64(0x401186+1).decode("iso-8859-1"))

向进程发送一个消息来实现利用StackOverflow漏洞的攻击,获得shell

io.interactive()

现在我们获得了shell

完全掌控了对方的服务器

用cat命令将flag中的内容来输出

 

 flag{4c524f38-e6ba-462f-b39c-e73630801af1}

 

 

 

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

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

相关文章

Linux: ARM GIC只中断CPU 0问题分析

文章目录1. 前言2. 分析背景3. 问题4. 分析4.1 ARM GIC 中断芯片简介4.1.1 中断类型和分布4.1.2 拓扑结构4.2 问题根因4.2.1 设置GIC SPI 中断CPU亲和性4.2.2 GIC初始化:缺省的CPU亲和性4.2.2.1 boot CPU亲和性初始化流程4.2.2.1 其它非 boot CPU亲和性初始化流程5.…

【微信小程序】-- 全局配置 -- window - 下拉刷新 上拉触底(十六)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

模型实战(6)之Alex实现图像分类:模型原理+训练+预测(详细教程!)

Alex实现图像分类:模型原理+训练+预测 图像分类或者检索任务在浏览器中的搜索操作、爬虫搜图中应用较广,本文主要通过Alex模型实现猫狗分类,并且将可以复用的开源模型在文章中给出!!!数据集可以由此下载:Data本文将从以下内容做出讲述: 1.模型简介及环境搭建2.数据集准…

微纳制造期末复习

章节分为六个模块: 1. 微纳制造中的材料 2.光刻技术 3.微纳制造中使用的技术 4.刻蚀 5.沉积 7.微纳刻蚀 根据导电性区分材料:导体,半导体,绝缘体 晶体:长程有序 多晶:短程有序 非晶:无序…

八 SpringMVC【拦截器】登录验证

目录🚩一 SpringMVC拦截器✅ 1.配置文件✅2.登录验证代码(HandlerInterceptor)✅3.继承HandlerInterceptorAdapter(不建议使用)✅4.登录页面jsp✅5.主页面(操作页面)✅6.crud用户在访问页面时 只…

【算法】PatchMatch立体匹配算法_原理解析

目录 前言 原理解析 1.倾斜支持窗口(Slanted Support Windows) 什么是视差平面? 为什么视差和像素坐标点之间的关系可以解释为平面方程? 视差平面的通用参数方程和点加法向量方程 什么是倾斜支持窗口? 2.基于倾…

宏基因组鉴定病毒流程中需要的生物信息工具

谷禾健康 许多流行病的爆发都是病毒引起的,面对新的传染性基因组出现的最佳策略是及时识别,以便于在感染开始时立即实施相应措施。 目前可用的诊断测试仅限于检测新的病理因子。适用于同时检测存在的任何病原体的高通量方法可能比使用基于当前方法的大量…

Mel Spectrogram

参考链接: Short-time Fourier transform - MATLAB stft- MathWorks 中国 https://medium.com/analytics-vidhya/understanding-the-mel-spectrogram-fca2afa2ce53 a spectrogram as a bunch of FFTs stacked on top of each other. 给出hop length后&#xff0…

TMP耗时较高的优化问题

1)TMP耗时较高的优化问题 ​2)Unity重载Object后,如何判定物体是否为空 3)SRP Batch在添加unity_SpecCube后的问题 4)堆内存会持续上升,如何用UWA报告来分析 这是第326篇UWA技术知识分享的推送,…

大话数据结构-栈

1 概述 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表。 允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈,栈又称为后进…

界面控件DevExpress WinForm——轻松构建类Visual Studio UI(三)

DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…

MyBatisPlus Study Notes

文章目录1 MyBatisPlus概述1.1 MyBatis介绍1.2 MyBatisPlus特性2 标准数据层开发2.1 MyBatisPlus的CRUD操作API2.2 分页功能接口实现2.2.1 config(配置层)拦截器实现2.2.2 Dao(Mapper)数据访问层(CRUD)操作2.2.3 Junit单元测试进行…

新版本GPU加速的tensorflow库的配置方法

本文介绍在Anaconda环境中,配置可以用GPU运行的Python新版tensorflow库的方法。 在上一篇文章Anaconda配置Python新版本tensorflow库(CPU、GPU通用)的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/129285815&am…

【分布式】10张图带你彻底搞懂限流、熔断、服务降级

文章目录1 限流1.1 限流指标1.1.1 TPS1.1.2 HPS1.1.3 QPS1.2 限流方法1.2.1 流量计数器1.2.2 滑动时间窗口1.2.3 漏桶算法1.2.4 令牌桶算法1.2.5 分布式限流1.2.6 hystrix限流1.2.6.1 信号量限流1.2.6.2 线程池限流2 熔断2.1 断路器的状态2.2 需要考虑的问题2.3 使用场景3 服务…

游戏开发是个“坑”,而且是个“天坑”

本文首发于CSDN公众号 作者 | 开发游戏的老王 责编 | 梦依丹 出品 | CSDN(ID:CSDNnews) 各位游戏开发者大家好,我是开发游戏的老王,一名游戏开发者同时也是一名高校游戏方向的主讲教师,从事游戏开发及相关教…

HTTP缓存从入门到踹门

1 与缓存相关的字段Expires:缓存的绝对过期时间Cache-Control:缓存的相对过期时间Last-Modified:缓存上一次修改的时间(服务端保存)If-Modified-Since:缓存上一次修改的时间(客户端保存&#xf…

第十一届蓝桥杯省赛——2解密

题目:【问题描述】小明设计了一种文章加密的方法:对于每个字母 c,将它变成某个另外的字符 Tc。下表给出了字符变换的规则:字母cTc字母cTc字母cTc字母cTcaynlAYNLbxogBXOGcmpoCMPOddquDDQUearfEARFfcssFCSSgitzGITZhkupHKUPinvwINV…

【ArcGIS Pro二次开发】(11):面要素的一键拓扑

在工作中,经常需要对要素进行拓扑检查。 在ArcGIS Pro中正常的工作流程是在数据库中【新建要素数据集——新建拓扑——将要素加入拓扑——添加规则——验证】,工作流程不算短,操作起来比较繁琐。 下面以一个例子演示如何在ArcGIS Pro SDK二次…

数组一次性删除多条数据

需求描述 最后提交时删除表格中的空行 实现方法 单行删除 - 并不是一次性删除 表格每行的最后设置删除按钮&#xff0c;点击时将当前行的索引传递给方法&#xff0c;splice 删除当前行。 <el-table :data"tableData" class"myTable" border>..…

爬虫实战进阶版【1】——某眼专业版实时票房接口破解

某眼专业版-实时票房接口破解 某眼票房接口:https://piaofang.maoyan.com/dashboard-ajax 前言 当我们想根据某眼的接口获取票房信息的时候,发现它的接口处的参数是加密的,如下图: 红色框框的参数都是动态变化的,且signKey明显是加密的一个参数。对于这种加密的参数,我们需要…