初识pwn
1.pwn的概述:
pwn目前接触只是在CTF中的一种题型,代表二进制漏洞的挖掘与利用。但是pwn这个词语一开始来自与黑客的俗语,用通俗的话来讲可以这样解释。(比如我pwn掉一个程序,就是我成功找到这个二进制的漏洞并且利用成功,也可以说我pwn你的电脑,就是我通过你电脑的某个端口挂的服务,然后通过这个服务上的漏洞,成功pwn掉你的电脑) 不过他的核心还是二进制漏洞的挖掘和利用。
2.二进制漏洞
2.1二进制漏洞和web漏洞的区别
pwn所研究的漏洞全都是已经编译成机器码的二进制程序的漏洞,而web漏洞是由于基于C语言PHP本身设计上的缺陷,在高级的应用层挖掘漏洞,进而黑掉别人的网站或者服务器
2.2二级制程序的概述
所谓二进制程序就是可执行文件,就是linux下里的elf文件,与windows下的exe文件等同 ,如:
此时的a.out就是一个可执行文件,我们可以用file命令看他的文件类型
可见它是一个64位的elf文件
3.学习pwn之前的基础知识
1.C语言基础:C语言是目前pwn题目中用的最多的一种语言,比赛方给你一个二进制程序,用IDA pro反编译的到的最多的是C语言的伪代码,所以熟练的掌握C语言对分析程序有很大的帮助
2.python:python主要用于写攻击脚本,要求不高,只要用到几个简单的代码
3.汇编语言:代码变成可执行文件是一个复杂的过程,其中很重要的一步就是高级语言编译成汇编语言,要做pwn题,首先得看懂汇编语言,只需要会用add 、sub、push、 pop、mov等几个基本指令就可以应付前期
4.linux基础:要求掌握linux操作系统的基本命令
5.计算机组成原理