PWN入门之一:什么是PWN
PWN入门之一:什么是PWN
0x01 什么是PWN
PWN,是一个黑客间使用的术语,通常指攻破系统或者设备。对黑客而言,这象征着成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被操纵了。
在CTF等竞赛中,PWN的任务就是在一个受限的环境中,寻找程序的漏洞来访问服务器上受到访问保护的资源或系统。
PWN的题目通常会给一个C或者C++编写的可执行程序,该程序运行在目标服务器上,通过利用程序中的漏洞(栈溢出,堆溢出,整数溢出,格式化字符串等)来更改程序的执行流,进而获取目标服务器上的shell(命令行接口)。
0x02 解题步骤
1、逆向工程
与专门的“逆向工程”不同,PWN的逆向一般仅限于对ELF文件(简单理解就是Linux系统上的EXE文件)的逆向。并且逆向这也不是PWN的重点,需要掌握常用逆向工具(如 Ghidra、IDA Pro)的基本操作,并理解程序的汇编逻辑和函数结构,得到汇编代码和反编译出来的代码即可,大部分情况下,程序使用C语言编写,所以反编译出来也是C语言,所以需要一定的C语言基础。
2、代码分析
这里的代码分析分为两步,静态分析和动态调试
- 静态分析
需要对反编译出来的代码进行审计,找出其中的漏洞,为后续的动态调试提供方向 - 动态调试
简称“动调”,简单点说,就是在Linux环境下,让程序跑起来,观察程序的行为,包括对栈,堆,变量的操控,便于后续编写利用脚本(EXP)。
3、编写脚本
大多数pwn题都是针对用户态的程序进行攻击,并且涉及到使用网络与目标交互,所以EXP使用Python进行编写,Python的语法很简单,很容易上手,对于入门来说,不需要学的多深,并且同一个漏洞的EXP相似度很高,仅需要知道一些基础的语法即可
4、运行脚本
编写好脚本直接跑就行了,脚本会自动与程序交互,发送payload,最后getshell,即可获得flag
PWN入门之一:什么是PWN
https://www.xuanyuan-blog.top/2025/07/03/PWN入门之一:什么是PWN/