PWN是一个黑客之间利用的词语,通常指攻破设备或系统。发音雷同“砰”,对黑客而言,这象征着成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被利用了。在网络安全语境中,PWN通常指的是通过不同的攻击手段如利用漏洞、进行社会工程学攻击等方法成功地获得了一个设备、系统或网络的未授权控制权。一旦攻击者“PWN了”一个系统,他们就可以执行各种恶意活动,如窃取数据、安装恶意软件或制造更广泛的破坏。
在CTF(Capture The Flag)等黑客比赛中,PWN使命经常涉及在一个受限制的情况中探求和利用漏洞来访问受保护的资源或系统。具体来说,PWN标题通常会提供一个用C或C++编写的程序,该程序运行在目的服务器上,参赛者需要通过网络与服务器进行交互,利用程序中的漏洞(如栈溢出、堆溢出、整数溢出、格式化字符串漏洞等)来造成内存破坏,进而获取长途计算机的shell,并最终获得flag。
二、常见PWN漏洞
栈是一种数据结构,遵循后进先出的原则(Last in First Out),主要有压栈(push)与出栈(pop)两种操作eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器。如果用C语言来表明,可以把这些寄存器看成变量看待。在栈中,esp生存栈帧的栈顶地址,ebp生存栈帧的栈底地址。程序的栈是从进程地址空间的高地址向低地址增长的。
2.2. 栈溢出原理