IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> CTFHub Linux 动态加载 -> 正文阅读

[系统运维]CTFHub Linux 动态加载

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
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:51:11  更:2022-04-04 12:54:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:42:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码