首页 > 其他分享 >pwn学习-ret2plt

pwn学习-ret2plt

时间:2024-05-31 17:35:52浏览次数:23  
标签:学习 函数 gadget ret2plt 地址 指令 一段 pwn

在之前进行ret2shellcode的学习时,需要NX保护机制是关闭的,但是现在一般情况下,保护机制默认都是开启的,那么该怎么办呢?
下面我们将学习ret2plt技术,够着ROP Chain来执行我们想要的代码

ret2plt

这种技术的目的是从 PLT 中泄漏函数的地址,例如二进制程序中有一个system或其他危险函数的调用,使用危险函数作为返回地址,获得shell

ROP

现在大多数的栈溢出漏洞都是使用ROP(Return Oriented Programming),即返回导向编程。通过栈溢出覆盖返回地址,使其跳转到我们想要执行恶意代码的位置中。
跳转的位置可能是一段本就就已经写好可以执行恶意命令的函数(这些指令通常有我们自己构造),这些一段代码由一段一段的指令组成,我们可能从这里取一个地址,从哪里取一个地址,这些一段一段的指令被我们称为gadget
一段getshell的RoP Chain,可能是构造好的系统调用指令,或者跳转到libc中的某个函数。

gadget

这个单词很形象gadget,小工具,这些小工具组成了我们的getshell指令,通常gadget的表现形式如下:

  • xxx;ret
  • jmp xxx
  • call xxx

通常我们使用ROPgadget命令获取gadget,常见的参数如下:

  • --binary : 指定二进制文件
  • --string : 指定搜索的文本
  • --depth num : rop chain 深度

下面我们会进行实操,二进制文件如下:
链接:https://pan.baidu.com/s/1TKg-hr8dbvp5Th0DH2mdfA
提取码:bwck

32位 - ret2plt

我们需要获取system函数的地址和/bin/sh的地址,获取方法如下

64位 - ret2plt

脚本如下:


标签:学习,函数,gadget,ret2plt,地址,指令,一段,pwn
From: https://www.cnblogs.com/Junglezt/p/18224937

相关文章

  • 前端学习-Dart官方文档学习-005-控制流
    官方文档链接Loops循环forloopswhileanddowhileloopsbreakandcontinueBranching,likeifandswitchExceptions,liketry,catch,andthrowfor、for-in、forEachvarcallbacks=[];for(vari=0;i<2;i++){callbacks.add(()=>print(i));}//Th......
  • RansomwareSim:一款功能强大的勒索软件模拟研究学习工具
    关于RansomwareSimRansomwareSim是一款功能强大的勒索软件模拟研究学习工具,该工具是为网络安全教育和培训目的开发的模拟勒索软件应用程序,它旨在为广大研究人员演示勒索软件如何加密系统上的文件并与命令和控制服务器通信,以更好地了解勒索软件的运行机制。功能介绍1、加......
  • 机器学习——关于SVM的些许问题的个人思考
    最近在利用python对机器学习进行实践,因为之前我是先完整的刷了一遍周志华老师的《西瓜书》才开始的实践活动,因此,时间跨度很久,以至于对于SVM的相关理论有些生疏了,甚至关于SVM的一些之前没注意到的问题,现在暴露了出来,所以这篇文章主要是想跟大家分享一下个人关于SVM的一些令人纠......
  • 机器学习python实践中对于决策函数(decision_function)的一些个人思考
    最近在利用python进行实践训练,但是跟着参考书学习到SVM的时候,示例代码里突然出现了一个函数——decision_function(),让我很懵逼,帮助文档里的英文翻译过来说啥决策函数、ovr、ovo之类的,让我整个人更晕了,因为我在理论部分参考的是周志华老师的《西瓜书》,而《西瓜书》中并没有对这......
  • 高斯消元学习笔记
    引入高斯-约当消元法(Gauss–Jordanelimination)是求解线性方程组的经典算法,它在当代数学中有着重要的地位和价值,是线性代数课程教学的重要组成部分。高斯消元法除了用于线性方程组求解外,还可以用于行列式计算、求矩阵的逆,以及其他计算机和工程方面。过程一个经典的问题,给定一......
  • 行列式 学习笔记
    引入行列式是方阵的一个运算,对于方阵\(A\),它的行列式记作\(\text{det}A\)也记作\(|A|\)。定义全排列定义记\(\pi(p_1,p_2,\cdots,p_n)\)是排列\(p_1,p_2,\cdots,p_n\)的逆序对数量。\[\text{det}A=\left[ \begin{array}{} a_{1,1}&a_{1,2}&\cdots&a_......
  • 【二】从小白开始使用Python一步一步搭建一个深度学习UI界面【界面设计】
    本来是想使用QtDesigner进行界面控件拖拽的方式进行界面设计的,但是后来觉得这样后面维护更新起来太麻烦了,就还是使用纯代码来写界面吧,这需要一定的想象能力。设计界面pyqt外部工具添加在设置界面搜索“外部工具”,这里我已经添加了两个QTDesigner的外部工具,一个是用于创......
  • 【python深度学习】——大型工程项目管理以及互相导入
    【python深度学习】——大型工程项目管理以及互相导入1.工程项目中常见的文件组织形式2.python中的“包”、“模块”、与__init__.py2.1概念理解2.2\__init__py的使用3.包的导入——相对导入与绝对导入3.1相对导入3.1.1相对导入的语法3.1.2相对......
  • 【风控】可解释机器学习之InterpretML
    【风控】可解释机器学习之InterpretML在金融风控领域,机器学习模型因其强大的预测能力而备受青睐。然而,随着模型复杂性的增加,模型的可解释性逐渐成为一个挑战。监管要求、业务逻辑的透明度以及对模型决策的信任度,都迫切需要我们能够清晰地解释模型的每一个预测。这就是Inter......
  • Java学习-Sentinel 1.8.4 规则持久化到Nacos
    文章目录一、前言二、快速体验1、部署sentinel2、SpringCloud中规则持久化到nacos3、sentinel控制台操作测试三、sentinel-dashboard源码修改1、`pom.xml`中添加依赖2、`application.properties`中添加nacos配置3、nacos配置新增NacosConfig新增NacosConfigUtil4、举......