CTFHub Linux 动态加载

news/2024/10/17 22:16:16/

CTFHub Linux 动态加载

在这里插入图片描述

观察页面,写着没有 x权限,说明我们没有办法执行根目录下的 elf 文件 readflag,所以我们无法利用下方的 webshell 获取flag(我们的权限不够)
在这里插入图片描述

在这里插入图片描述
我们发现无法访问到 flag

Linux 下
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限

Linux 755权限 & 644权限:

在linux下,chomd也可以用数字表示权限 如 chomd 777 file

语法为: chomd xyz file

x: 表示 代表文件所有者拥有的权限 (User)

y:代表文件所有者同组用户的权限为 (Group)

z:代表公共用户的权限 (Other)

同时:读的权限 : r= 4 写的权限:w = 2 运行的权限为 x = 1

所以 ,755意味着:

  • User rwx属性全都具备:4+2+1=7
  • Group、Other 只具备 r x : 4+1=5

644 意味着失去了运行的权限

回到题目中来,页面提示我们 根目录下的 readflag 失去了 执行的权限,我们无法通过 一句话木马 获取 flag

继续思考,什么是 elf文件?

在计算机科学中,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件的文件格式。

ELF文件参与程序的连接(建立一个程序)和程序的执行(运行一个程序)

所以可以从不同的角度来看待elf格式的

  • 如果用于编译和链接(可重定位文件),则编译器和链接器将把elf文件看作是节头表描述的节的集合,程序头表可选。
  • 如果用于加载执行(可执行文件),则加载器则将把elf文件看作是程序头表描述的段的集合,一个段可能包含多个节,节头表可选。

这里借用一位博主的图片加深理解
在这里插入图片描述
elf文件左边是于编译和链接 右边是代码执行

可重定位目标文件:包含二进制代码和数据,其形式可以和其他目标文件进行合并,创建一个可执行目标文件

假如我们对执行一段程序,那么 这段代码会经历 以下阶段:

预处理阶段---->编译阶段---->汇编阶段----->代码执行

在 汇编阶段 会将我们的文件翻译成 机器语言指令,并把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件中(把汇编语言翻译成机器语言的过程)。

汇编结束后,就要与所依赖的外部库连接起来(调用函数库)。

打个比方 我们书写了 printf(“hello world”),该程序调用了printf函数。 printf函数存在于一个名为printf.o的单独的预编译目标文件中。 链接器(ld)就负责处理把这个文件并入到hello.o程序中,结果得到hello文件,一个可执行文件。

函数库分为 静态库和动态库

静态库 指直接将我们所调用的 函数库的代码全部加入到可执行文件中,产生的文件较大,当然在使用的过程中也就不需要库文件。而动态库是指在调用的过程中,函数库以链接的形式加入到可执行文件中,让可执行文件通过链接去访问函数库,节约了系统内存。

在linux中动态库文件是ld-linux.so.2

ld-linux.so.2 glibc的库文件,一般链接到相应版本的ld-xxx.so上,是和动态库载入有关的函数

我们可以通过ldd 命令来查看一个 应用需要哪些依赖的动态库

同时在加载 动态库的时候,控制权在ld-linux.so加载器加载完所有的动态库的时候才会将权限移交给程序

而且, ELF 文件提供了相应的加载信息, GCC包含了一个特殊的 ELF 头INTERP, 这个 INTERP指定了 加载器的路径。ELF 规格要求,假如 PT_INTERP 存在的话,操作系统必须创建这个 interpreter文件的运行映射,而不是这个程序本身, 控制权会交给这个interpreter,用来定位和加载所有的动态库.

从而达到绕过 程序本身的权限不足

所以我们使用动态加载器动态链接 elf文件

使用中国蚁剑

点击右键,虚拟终端 输入我们的payload

/lib64/ld-linux-x86-64.so.2 /readflag 

在这里插入图片描述

获得 flag
在这里插入图片描述


http://www.ppmy.cn/news/462044.html

相关文章

程序加载是什么

程序加载是什么? 解答:http://www.yayihouse.com/yayishuwu/chapter/1175

linux服务器风扇功率调整

为什么要调整功率? 在使用linux服务器跑图像处理任务时,如果不限制风扇功率,经常会导致服务器崩溃。 怎么调整功率? nvidia-smi -pm 1 # 开启GPU的persistent mode nvidia-smi -pl 150 #设置最大功率,根据自己使用机…

服务器常用的一些硬件信息(不断更新)

1、查看额定功率 dmidecode | grep Power 但是有的机器这个命令查不到 2、查看交换空间swap 大小 linux 查看swap大小 free -m (MB) free -g (GB)Unix 查看交换空间大小 lsps -a

服务器的硬盘功率,【群晖 DS916 NAS网络存储服务器使用体验】硬盘|系统|功耗_摘要频道_什么值得买...

群晖 DS916 NAS网络存储服务器使用体验(硬盘|系统|功耗) 安装硬盘比较方便,上了4块6T的盘,组了个raid5,这样存储空间应该就有15T以上了。 挂上硬盘,下载系统安装,速度非常快,熟悉的登录界面迅速就出现了&am…

CentOS 服务器性能查看

本文主要介绍 CentOS 系统一些查询系统性能的命令。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 uptime uptime可以对cpu使用情况进行监控。 [nukixbogon ~]$ uptime # 当前时间 系统运行时间 当前登录用户数 系统平均负载18:56:53 up 1 day, 3:5…

测试服务器运行温度,负载、功耗、温度测试结果

4、网络负载测试 我们采用IXIA 400T测试仪模拟客户端,通过Web访问的方式来测试服务器负载。我们设计了一个最小的静态页面和动态页面来测试服务器的最大请求数。在服务器上启用IIS,发布网页,在测试静态页面的时候我们利用IXIA测试仪模拟20000…

nas主流服务器,NAS以及服务器

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 作为一名nas家用体验者,对nas以及服务器的了解都只是皮毛,说一说我自己对nas跟服务器的理解,先说我自己总结出的结论:不存在什么nas垃圾、服务器牛逼,只存在不同需求不同…

查看linux光纤模块光功率

ethtool -m p3p2(网卡名) Receiver signal average optical power属性