千家信息网

Linux二进制漏洞利用开发任务的示例分析

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要为大家分析了Linux二进制漏洞利用开发任务的示例分析的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习"Li
千家信息网最后更新 2026年11月04日Linux二进制漏洞利用开发任务的示例分析

这篇文章主要为大家分析了Linux二进制漏洞利用开发任务的示例分析的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习"Linux二进制漏洞利用开发任务的示例分析"的知识吧。

Linux的PWN并不难

这是一套针对初学者的Linux二进制漏洞利用开发任务,目前这一套学习内容主要针对的是堆栈缓冲区溢出问题。

我创建这个项目是为了学习如何在不同体系结构上执行简单的二进制开发,出于教育目的,在解决这一系列任务时,必须遵守下面列出的一组规则。这些任务其实非常小,有的规则是故意没有实现的。它与大多数CTF挑战相反,因为这些任务是直接提供给大家的,我们只需要去实现即可。

规则

1、所有任务都必须使用建议的方法来解决,即使你有其他更简单的方法。

2、所有任务都必须通过假定启用或禁用的特定保护来解决,即使体系结构、工具链或特定环境不支持它们。

3、所有任务都假设了一个动态链接的libc和已知的二进制文件。

4、所有的ROP链都必须手动构造。

任务

建议的方法

1、01-local-overflow:溢出buffeer,并重写x的值。

2、02-overwrite-ret:使用not_called()的地址重写堆中任意的返回地址。

3、03one-gadget:跳转到一个one_gadget地址,确保满足特定的条件,对于某些架构,可能需要使用到ROP链。

4、04-shellcode-static:在栈中分配一个shellcode,并启动/bin/sh。

5、05-shellcode-dynamic:跟之前的任务一样,但这里的栈地址是未知的。

6、06-system-rop:组成一个ROP链来执行system("/bin/sh")。

7、07-execve-rop:组成一个ROP链并通过syscall执行execve("/bin/sh",NULL, NULL)

8、08-overwrite-global:组成一个ROP链来重写x值,并跳转到not_called()。

保护机制

空白处意味着保护状态跟建议的方法不相关。

禁用ALSR:

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

启用ASLR:

echo 2 | sudo tee /proc/sys/kernel/randomize_va_space

解决方案

这些解决方案仅供参考,并不一定适用于所有场景。

环境要求

这些任务已经在x86-64 CPU设备上进行了测试,测试平台为Linux Mint 19.1,下面是相关的软件版本:

工具安装

安装包:

sudo apt-get install build-essential

sudo apt-get install gcc-arm-linux-gnueabihf gcc-aarch74-linux-gnugcc-mips-linux-gnu gcc-mips64-linux-gnuabi64 gcc-powerpc-linux-gnugcc-powerpc64-linux-gnu gcc-sparc64-linux-gnu

sudo apt-get install libc6-dev:i386 libc6-armhf-cross libc6-arm64-cross libc6-mips-crosslibc6-mips64-cross libc6-powerpc-cross libc6-ppc64-cross libc6-sparc64-cross

sudo apt-get install qemu-user

sudo apt-get install gdb gdb-multiarch

#These are probably not required, but just in case:

#sudo apt-get install gcc-7-multilib gcc-multilib-arm-linux-gnueabigcc-multilib-mips-linux-gnu gcc-multilib-mips64-linux-gnuabi64gcc-multilib-powerpc-linux-gnu gcc-multilib-powerpc64-linux-gnu

构建代码:

./build.sh

使用pip安装pwntools和ropper:

pip install --user pwntools ropper

为QWMU和pwntools安装qemu-binfmt:

sudo mkdir /etc/qemu-binfmt

sudo ln -s /usr/arm-linux-gnueabihf/ /etc/qemu-binfmt/arm

sudo ln -s /usr/aarch74-linux-gnu /etc/qemu-binfmt/aarch74

sudo ln -s /usr/mips-linux-gnu/ /etc/qemu-binfmt/mips

sudo ln -s /usr/mips64-linux-gnuabi64/ /etc/qemu-binfmt/mips64

sudo ln -s /usr/powerpc-linux-gnu/ /etc/qemu-binfmt/ppc

sudo ln -s /usr/powerpc64-linux-gnu/ /etc/qemu-binfmt/ppc64

sudo ln -s /usr/sparc64-linux-gnu/ /etc/qemu-binfmt/sparc64

关于"Linux二进制漏洞利用开发任务的示例分析"就介绍到这了,更多相关内容可以搜索以前的文章,希望能够帮助大家答疑解惑,请多多支持网站!

任务 二进制 开发 漏洞 分析 地址 方法 示例 内容 建议 规则 保护 学习 体系 体系结构 工具 方案 环境 知识 结构 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 广东猪兼强互联网科技有限公司 河南云网互联网络科技有限公司 互联网科技公司起名 国智互联网科技 北京互联网科技公司 互联网金融 科技金融 广州宏创互联网科技 广州互联网络科技有限公司 苏州互联网科技贷款公司 上海致骋互联网科技 滨湖区互联网智能科技产品供应 互联网科技教育视频 互联网金融中的现代科技 互联网为啥属于高科技 千方科技属于互联网企业吗 知域互联网科技有限公司大骗子 工业互联网科技创业 盐城市攀科互联网科技有限公司 数字科技和互联网金融哪个好 广州百单互联网科技有限公司 互联网科技深圳 成都互联网科技公司 火传媒上海互联网科技 华中科技有哪些互联网大佬 云创客互联网科技公司 烟台灵鸽互联网科技有限公司 科技信息时代互联网发展 科技和互联网行业的特点 瑞安市蟠桃会互联网科技有限公司
0