格式化字符串漏洞

本文系统介绍了格式化字符串漏洞的原理与利用。首先讲解了格式化字符串函数(如 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平台 / 用户模式 / 栈溢出 / 栈溢出介绍

Pwn入门之四:C语言调用栈

PWN入门之四:C语言调用栈 参考文章:PWN入门(1-1-1)-C函数调用过程原理及函数栈帧分析(Intel)C语言函数调用栈(一)C语言函数调用栈(二)Hello算法 0x00 内存简述内存,更专业点应该叫主存。由一组动态随机存取器(DRAM)...

pwn / 入门

Pwn入门之三:寄存器与汇编

WN入门之三:寄存器与汇编 参考文章:https://www.cnblogs.com/xuanyuan/p/13850548.html 寄存器0x00 前言本篇文章实际上为PWN入门之四:C语言调用栈的前置,旨在介绍x86架构下的击中常见的寄存器,...

pwn / 入门

Pwn入门之二:配置Pwn环境

PWN入门之二:配置PWN环境 文章参考:CTFWiki 0x00 前言现在的CTF-PWN以Linux下的用户态Pwn为主,更准确的说,是以Ubuntu这个Linux发行版的环境为主。因此,为了方便调试程序,我们需要不同版本的Ubuntu,因为有...

pwn / 入门

Pwn入门之一:什么是Pwn

PWN入门之一:什么是PWN0x01 什么是PWNPWN,是一个黑客间使用的术语,通常指攻破系统或者设备。对黑客而言,这象征着成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被操纵了。 在CTF等竞赛中,PWN的任务就是在一个受限的环境中,...

pwn / 入门

测试文章

测试文章标题测试三级标题四级标题五级标题六级标题正文测试这是一篇测试文章,这是一篇测试文章,这是一篇测试文章。 这是一篇测试文章,这是一篇测试文章,这是一篇测试文章。 这是一篇测试文章,这是一篇测试文章,这是一篇测试文章。 这是一篇测试文章,这是一篇...

pwn / 测试