PWN基础7:Rop-Ret2Text介绍 及 插件配置

本文介绍了Return-oriented Programming(ROP)的基本概念,强调其利用ret指令实现程序控制流劫持。讲解了如何通过ret2text利用程序自身代码执行攻击。此外,还详细阐述了BSS、DATA、TEXT、RODATA段的作用,并提供了快速定位栈溢出的方法。文章还介绍了调试工具pwndbg和peda的安装及使用,特别是peda中pattern指令在查找溢出点的应用。
摘要由CSDN通过智能技术生成

ROP概述

  • Return-oriented Programming,面向返回的编程,是一种新型的基于代码复用技术的攻击,攻击者从已有的库或可执行文件中提取指令片段,构建恶意代码
  • ROP的核心思想:攻击者扫描已有的动态链接库和可执行文件,提取出可以利用的指令片段(gadget),这些指令片段均以ret指令结尾,即用ret指令实现指令片段执行流的衔接。
  • ROP攻击是利用以ret结尾的程序片段,操作这些栈相关寄存器,控制程序的流程,执行相应的gadget,实施攻击者预设目标
  • ROP不同于return-to-libc攻击之处在于,ROP攻击以ret指令结尾的函数代码片段,而不是整个函数本身去完成预定的操作
  • 广义上说,return-to-libc攻击是ROP的一种特例
  • 最初ROP攻击实现在X86体系结构下,随后扩展到各种体系结构
  • ROP攻击的程序主要使用栈溢出的漏洞,实现程序控制流的劫持。因此,栈溢出漏洞的防护是阻挡ROP攻击最根源性的方法。如果解决了栈溢出的问题,ROP攻击将会在很大程度上受到抑制

基础知识

  • BSS段:通常是指用来存放程序中未初始化的全局变量的一块内存区域,BSS段属于静态内存分配。在溢出时EIP的值可以是BSS段的地址
  • DATA段:数据段,通常是指用来存放程序中已初始化的全局变量的一块内存区域,属于静态内存分配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值