首页 > 其他分享 >pwn学习-pie绕过

pwn学习-pie绕过

时间:2024-06-18 11:46:08浏览次数:16  
标签:pie PIE 随机化 地址 偏移 开启 pwn 绕过

之前学习了栈溢出常见的利用手法,有ret2text、ret2plt、ret2syscall、ret2shellcode、ret2libc、ret2csu溢出栈迁移,这里接着学习一下常见的绕过pie的手法

PIE

PIE(Position Independent Executables)是编译器gcc的一个功能选项fpie,主要的功能是随机化了ELF装载的基地址,使用分页内存偏移定位到每一行指令,常见的表现形式是如果开启了PIE保护,使用file或者readelf读取的文件类型会是LSB shared object共享文件

这里需要注意一下,PIE是对二进制程序做的地址随机化,而ASLR是系统层面的地址随机化,这两个放到一起,基本上是猜测不到程序的内存布局,这使得我们获取到的gadget也是一个距离基地址的偏移,无法成功的执行。但是一般只有安全性较高的程序会使用,因为PIE相对来说比较影响程序的性能。

gcc编译时开启和关闭pie的选项:

  • -no-pie : 关闭pie
  • fpie -pie: 开启pie(默认选项)

开启了pie有一个很显著的区别,就是使用ida或者objdump分析的地址都是内存分页的偏移

标签:pie,PIE,随机化,地址,偏移,开启,pwn,绕过
From: https://www.cnblogs.com/Junglezt/p/18253924

相关文章

  • BUUCTF PWN
    ripchecksec分析一下,发现没有开NX,PIE。栈段可执行,还有RWX的段看了一下main函数存在栈溢出,然后有一个fun函数很奇怪跟进看一下,发现是后门,很简单的ret2text,但是做64位题的时候要注意堆栈平衡frompwnimport*#io=process('./pwn1')io=remote("node5.buuoj.cn",25429)......
  • 长城杯CTF2024-PWN-kawayi复现
    文件保护libc版本uaf漏洞free函数没有进行置0操作GDB断点断点:0xD90泄漏libc由于v1>3会退出,所以必须在四次申请堆块中拿到shell第一次申请-创建largebinchunk因为创建largebin的chunk堆块,所以申请的是0x430第二次申请-创建tcachebinchunk申请一个tcache......
  • pwn学习-栈迁移
    栈迁移:简单理解就是在栈溢出的时候可溢出的字符过少,只能溢出ebp和ret的地址,可以使用leave_ret这个gadget来实现栈的迁移。在栈中,默认情况下汇编语言在栈结束的时候都默认会执行一次leave和ret指令,我们利用这个特性将返回地址修改为leave_ret的gadget,将会执行两次leave和ret的操......
  • 【SPIE独立出版、有ISBN号和ISSN号、往届均已实现EI检索】第四届计算机视觉、应用与算
    第四届计算机视觉、应用与算法国际学术会议(CVAA2024)The4thInternationalConferenceonComputerVision, ApplicationandAlgorithm(CVAA2024)一、重要信息会议官网:www.iccvaa.org (点击投稿/参会/了解会议详情)会议时间:2024年8月30日-9月1日会议地点:中国-杭州截......
  • 【2024算力大会分会 | SPIE独立出版 | 往届均已完成EI检索】2024云计算、性能计算与深
    【2024算力大会分会|SPIE出版】2024云计算、性能计算与深度学习国际学术会议(CCPCDL2024)2024 InternationalconferenceonCloudComputing,PerformanceComputingandDeepLearning *CCPCDL往届均已完成EI检索,最快会后4个半月完成!一、重要信息大会官网:www.ccpc......
  • SentencePiece: A simple and language independent subword tokenizer and detokeniz
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 1Introduction 2SystemOverview  3LibraryDesign 3.1LosslessTokenization  3.2Efficientsubwordtrainingandsegmentation 3.3Vocabularyidmanagement 3.4Customi......
  • 栈溢出漏洞利用二,ret2syscall,构造rop链条实现攻击(pwn入门)
    原理原理就直接参考别的大佬写的文章讲下了 参考文章:https://blog.csdn.net/qq_33948522/article/details/93880812ret2syscall,即控制程序执行系统调用,获取shellret2syscall通常采用execve(重点函数,32位调用号为0x0b,64位调用号为0x3b)ROPReturnOrientedProgramming,其......
  • Rust 实战丨HTTPie
    概述之前学习过《陈天·Rust编程第一课-04|gethandsdirty:来写个实用的CLI小工具》,学的时候迷迷糊糊。后来在系统学习完Rust后,重新回过头来看这个实战小案例,基本上都能掌握,并且有了一些新的理解。所以我决定以一个Rust初学者的角度,并以最新版本的Rust(1.7.6)和cla......
  • 基于修改iOS内核绕过iOS 基于svc 0x80的ptrace反调试
    yuzhouheike62天 看到一个帖子:[原创]绕过iOS基于svc0x80的ptrace反调试24.跟着操作了下.这篇文章的核心思想来源于[原创]iOS内核修改之过某音等PT_DENY_ATTACH反动态ptrace调试我的设备是:iphone7iOS14.1,DarwinKernelVersion20.0.0:WedSep3003:24:41......
  • 2024墨者杯哈希sha1绕过
    题目描述:某开发者发现这个页面好像不能正常访问<?phperror_reporting(0);if($_SERVER['REQUEST_METHOD']!=='POST'){header("HTTP/1.1405MethodNotAllowed");exit();}else{if(!isset($_POST['roam1'])||!isset($_PO......