中级ROP:ret2csu

ret2csu是一种在x86_64 Linux程序中,当常用ROP gadget(如pop rdi; ret)缺失时的强大利用技术。它通过挖掘glibc初始化函数__libc_csu_init中固有的两段指令序列,实现对rdi、rsi、rdx等关键参数寄存器的间接控制。典型攻击分为三步:首次调用泄露libc基址;第二次调用向.bss段写入数据(如execve地址与"/bin/sh");最终调用执行shell。该技术因代码片段广泛存在于glibc

pwn / Linux平台 / 用户模式 / 中级ROP

格式化字符串漏洞

本文系统介绍了格式化字符串漏洞的原理与利用。首先讲解了格式化字符串函数(如 printf)的基本用法及其格式化占位符的详细语法。核心漏洞在于当用户输入被直接作为格式化字符串解析时,攻击者可控制其内容,使程序从栈或寄存器中读取或写入数据。文章通过调试实例,具体展示了如何利用该漏洞泄露栈内存(如canary)、任意地址内存(如GOT表)以及使用 %n 等格式化符覆盖指定内存的值(修改变量),并提供了相应的利用脚本示例。

pwn / Linux平台 / 用户模式 / 格式化字符串漏洞

基本ROP:ret2libc

本文介绍了ret2libc攻击技术,这是一种基于动态链接和ROP(返回导向编程)的栈溢出利用方法。文章首先解释了动态链接与静态链接的区别,详细描述了编译过程中预处理、编译、汇编和链接四个阶段,并重点说明了延迟绑定机制中PLT与GOT表的作用。接着,阐述了如何通过泄露GOT表中的函数地址来计算libc基址,进而获取system和/bin/sh的真实地址,最终构造ROP链实现系统命令执行。文中还以32位和64位环境下的实际题目为例,分别说明了参数传递和gadget使用的差异,完整展示了ret2libc的攻击流程与利用方式。

pwn / Linux平台 / 用户模式 / 栈溢出 / 基本ROP

基本ROP:ret2text

基本ROP:ret2text 参考资料 CTF-wiki:基本ROP 语雀:PWN入门(1-3-1)-基本ROP-介绍 《深入理解计算机系统》 0x01 什么是ROPROP,全称Return Oriented Programming,中文翻译为返回...

pwn / Linux平台 / 用户模式 / 栈溢出 / 基本ROP

栈溢出

栈溢出 参考资料: 栈溢出原理 - CTF Wiki PWN入门(1-2)-缓冲区溢出之栈溢出(strcpy) · Yuque 0x01 什么是栈溢出栈溢出漏洞的历史栈溢出漏洞最早可以追溯到1972年,当时研究人员发现程序如果不对输入长度进行限制,...

pwn / Linux平台 / 用户模式 / 栈溢出 / 栈溢出介绍