CTFshow-PWN-前置基础(pwn20)

news2024/11/16 16:40:11

提交ctfshow{【.got表与.got.plt是否可写(可写为1,不可写为0)】,【.got的地址】,【.got.plt的地址】

前置基础知识: 

.got 和 .got.plt 是 ELF(Executable and Linkable Format,可执行和可链接格式)二进制文件中的两个重要部分,用于实现动态链接和延迟绑定(lazy binding)。

.got 表(Global Offset Table,全局偏移表):
.got 表是一个在程序加载时由动态链接器填充的表,包含了程序中所有需要在运行时动态解析的全局变量和函数的地址。这些地址最初是未知的,直到程序在内存中加载并开始执行时才会被解析和填充。当程序第一次执行到一个全局变量或者函数时,动态链接器会通过查找该符号的地址并将其写入 .got 表中,这样下次再次访问这个符号时就不需要再次查找。
.got.plt 表(Procedure Linkage Table,过程链接表):
.got.plt 表是在程序中用于实现延迟绑定的一种数据结构,用于处理程序中对动态链接库函数的调用。当程序第一次调用一个动态链接库中的函数时,其对应的入口地址会被写入到 .got.plt 表中。然后,动态链接器会跳转到 PLT 中的相应入口,执行一系列指令,最终将函数的实际地址写入 .got.plt 表中,并跳转到该地址执行函数。下次再调用这个函数时,程序会直接跳转到 .got.plt 表中存储的函数地址,而不需要再次执行 PLT 中的指令序列。

加上可执行权限后直接执行程序:

提示:What is RELRO protection ?

我们需要先知道什么是 RELRO 保护:

RELRO(RELocation Read-Only)保护是一种针对二进制可执行文件的安全性措施,用于防止针对程序中全局偏移表(GOT)和程序加载时动态链接器(LD)的攻击,确保全局偏移表(GOT)和过程链接表(PLT)在程序加载后被设为只读,从而使得攻击者无法修改这些表以执行恶意代码注入或覆盖函数指针等攻击。

RELRO 的几种常见类型:

1、NO RELRO:这种状态下 GOT 和 PLT 都是可写的。

.got 与 .got.plt 都可写。

2、Partial RELRO:将全局偏移表(GOT)的非空项设为只读,而对于空项则保持可写。

.got 不可写而 .got.plt 可写。

3、Full RELRO:在程序加载后将全局偏移表(GOT)和过程链接表(PLT)的所有项都设置为只读,即使这些项为空。任何对这些表的修改都会导致程序异常终止。

.got 与 .got.plt 都不可写。

下载题目附件检查:

64 位程序,开了 NX 保护,RELRO 保护未开,则 .got 表与 .got.plt 表都可写。

因此 ctfshow{1_1_

readelf -S pwn

readelf 是一个用于显示 ELF 格式文件信息的工具,而 -S 选项用于显示 ELF (Executable and Linkable Format,可执行和可链接格式)文件中的节表(section headers)信息,节表包含了关于 ELF 文件中每个节的详细信息,例如节的名称、偏移、大小、对齐方式等。

找到这两个表的地址:0x600f18 和 0x600f28

因此 flag:ctfshow{1_1_0x600f18_0x600f28}

在 ida 里面也可以看到这两个表的:

可以看出 .got 和 .got.plt 这两个段在内存中的地址分别为 0x600F18 和 0x600F28。这两个段的内存地址是由汇编语言中的 org 指令指定的,分别为 0x600F18 和 0x600F28。 

 

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

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

相关文章

OpenHarmony UI动画-rebound

简介 rebound是一个模拟弹簧动力学,用于驱动物理动画的库。 下载安装 ohpm install ohos/reboundOpenHarmony ohpm环境配置等更多内容,请参考如何安装OpenHarmony ohpm 使用说明 import rebound from ohos/rebound;功能一:创建维护弹簧对…

IP归属地在电商行业中的重要性

IP归属地在电商行业中的应用十分广泛且深入,其重要性不容忽视。它不仅是用户身份验证和地理位置识别的重要手段,还在个性化推荐、库存管理、物流优化以及欺诈检测等多个方面发挥着关键作用。 首先,IP归属地用于身份验证和安全控制。在电商交易…

2024年免费云服务器推荐,小编亲测好用!

随着云计算技术的飞速发展,云服务器以其弹性、高效、安全的特性,成为众多企业和个人用户的首选。尽管市面上有众多收费的云服务器产品,但免费的云服务器仍然吸引着大量用户,尤其是初学者和预算有限的用户。下面,我们就…

以太网24位应变/桥式数据采集卡,替代NI 9237

1.特性简介 XM-BRG是一款以太网型高速应变片压力桥信号采集卡,具有8通道(-4型为4通道)真差分输入,24位分辨率,单通道最高采样率102.4ksps八通道同步共计819.2ksps(-4型为409.6ksps)、精密前置增益放大、集成桥式传感器所需的激励源硬件支持的…

DNS服务器配置与管理(2)——BIND部署DNS

在Linux上配置DNS的常用软件是BIND(Berkeley Internet Name Domain Service,BIND),它是一款实现DNS服务器的开放源码软件。本文详细介绍了在CentOS7上安装并配置Bind软件。 一、Bind软件介绍 BIND包最初是在 1980 年代初在加州大…

剑指Offer题目笔记33(并查集)

面试题116: 解决方案: ​ 一个班级可以包含一个或多个朋友圈,对应的图中可能包含一个或多个子图,每个朋友圈对应一个子图。因此,这个问题可以转化为如何求图中子图的数目。图的搜索算法可以用来计算图中子图的数目。扫…

3D模型处理的多进程并行【Python】

今天我们将讨论如何使用 Python 多进程来处理大量3D数据。 我将讲述一些可能在手册中找到的一般信息,并分享我发现的一些小技巧,例如将 tqdm 与多处理 imap 结合使用以及并行处理存档。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生…

PLC工业网关,实现PLC联网

在当今工业自动化领域,PLC(可编程逻辑控制器)作为控制系统的核心,其稳定性和可靠性至关重要。然而,随着工业互联网和智能制造的快速发展,如何实现PLC的联网通信,提高数据传输效率,成…

URL的绝对路径/相对路

一、URL 浏览器要想发起请求,必须是一个完整的url地址. URL是一个固定格式的字符串 它表达了: 从网络中 哪台计算机(domain) 中的 哪个程序(port) 寻找 哪个服务(path),并注明了…

数据治理中心DataArts Studio学习

一、什么是DataArts Studio? 数据治理中心DataArts Studio是为了应对上述挑战,针对企业数字化运营诉求提供的具有数据全生命周期管理和智能数据管理能力的一站式治理运营平台,包含数据集成、数据开发、数据架构、数据质量监控、数据资产管理…

使用vue2-ace-editor实现可选择的代码编辑器

最近在琢磨前端,因项目中需要在页面上编辑代码,所以需要写一个代码编辑器供用户使用。找了几个编辑器相关的组件,对比了下感觉还是vue2-ace-editor用着舒服,写了demo供大家参考。 由于我的项目使用的是vue2,二开鹅厂的…

MySQL高负载排查方法最佳实践(15/16)

高负载排查方法 CPU占用率过高问题排查 使用mpstat查看cpu使用情况。 # mpstat 是一款 CPU 性能指标实时展示工具 # 能展示每个 CPU 核的资源视情况,同时还能将资源使用情况进行汇总展示 # 如果CPU0 的 %idle 已经为 0 ,说明此核已经非常繁忙# 打印所…

算法训练营第25天回溯(分割)

回溯算法(分割) 131.分割回文串 力扣题目链接(opens new window) 题目 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: “aab” 输出: [ [“aa”,“b”], [“a”,“…

Redis中的Lua脚本(二)

Lua脚本 创建排序辅助函数 为了防止带有副作用的函数令脚本产生不一致的数据,Redis对math库的math.random函数和math.randomseed函数进行了替换。对于Lua脚本来说,另一个可能产生不一致数据的地方是哪些带有不确定性质的命令,比如对于一个集…

Linux中如何安装ImageMagick及其常规使用命令

在Linux中安装ImageMagick可以通过包管理工具进行安装。具体步骤如下: 打开终端(Terminal)。 使用以下命令更新系统软件包列表: sudo apt update使用以下命令安装ImageMagick: sudo apt install imagemagick安装完…

大型网站系统架构演化实例_2.使用缓存改善网站性能

1.使用缓存改善网站性能 网站访问的特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。既然大部分业务访问集中在一小部分数据上,那么如果把这一小部分数据缓存在内存中,就可以减少数据库的访问压力&#xf…

在Linux系统中,禁止有线以太网使用NTP服务器进行时间校准的几种方法

目录标题 方法 1:修改NTP配置以禁止所有同步方法 2:通过网络配置禁用NTP同步方法 3:禁用NTP服务 在Linux系统中,如果想要禁止有线以太网使用NTP服务器进行时间校准,可以通过以下几种方法之一来实现: 方法 …

LDF、DBC、BIN、HEX、S19、BLF、asc、csv、ARXML、slx等(未完待续)

文章目录 如题如题 LDF是LIN报文格式文件,把这个直接拖到软件里面,可以发报文和接收报文 DBC是CAN报文格式文件,把这个直接拖到软件里面,可以发报文和接收报文 BIN文件烧录在BOOT里面(stm32),有人喜欢叫固件,这个固件就是bin文件,bin文件比hex文件体积小 其实BOOT也…

探索AI提示词网站:助力内容创作与AI对话

嗨,大家好!在这个充满创意的时代里,AI技术为我们带来了许多惊喜和便利。如果你是一个内容创作者,无论是在撰写博客还是进行科技对话,今天我将向大家介绍几个能够提升与AI对话效率的神奇网站。 1. FlowGPT 首先&#xf…

PhotoShop2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Adobe Photoshop是一款由Adobe Systems开发的图像编辑软件。它被广泛用于图像处理和数字艺术创作,是设计师、摄影师和艺术家们的首选工具之一。 主要功能: 图像编辑: Photoshop提供了丰富的编辑…