关于pwn的一些事儿,你知道几个?
2023-08-15 15:02
目录
一.前言
本人凭着一腔热血想要入门pwn,但却被pwn的高入门门槛泼了一次又一次冷水,趁着自己还记得,写一点心得为后来想入门的跟我一样的零基础新手提供一些帮助。
二.pwn的介绍 pwn的定义
想必很多想要入门的新手都已经通过各种各样的入门文章或视频了解了pwn的定义以及方向,但出于礼貌,我在这里还是再重复一下下。
”Pwn”是一个黑客语法的俚语词,是指攻破设备或者系统。发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵了。
咳咳学道需要入门吗小说百度云,以上来自百度知道,博主也是作为一个刚刚入门的小白,写出来的东西能跟百度相比吗(就是因为自己不知道)。总之呢,pwn不管是入门门槛还是难度,相比其他ctf项目都要大,但是架不住pwn帅啊,谁想玩pwn不是因为它帅啊,成为一个能够黑掉别人电脑的黑客不帅吗?
所以啊,管他什么定义,帅就完事了,现在朝着天空大喊一声“pwn”,开始苦逼帅气的入门之旅。
pwn的题目模式
知己知彼方能百战百胜,赛方给出我们题目,而我们就要千方百计把赛方的服务器给pwn了。这里就把赛方叫做面壁者,答题人叫做破壁人吧(三体人狂喜)
一般pwn的题目都是由面壁者给出自己的服务器IP以及端口(一般是Linux系统),这个端口在运行着一个进程。同时面壁者再给出一个二进制文件,而这个文件正好就是那个进程正在运行的文件。
而破壁人要做的就是通过找出面壁者提供的这个二进制文件漏洞,并且利用这个漏洞获取面壁者服务器的最高权限。
所以破壁人如何找出二进制漏洞就成为了pwn的重中之重。但这个漏洞可不是写在文件上的,破壁人要通过各种手段找出漏洞并且利用它必定少不了一些知识,而这些知识也造就了pwn的高入门门槛。
前置知识 一.Linux
pwn题目给出的文件一般是Linux系统的文件学道需要入门吗小说百度云,如果不知道Linux系统,你在下把文件改一万个后缀名也打不开。所以想要入门pwn,最起码要把文件给跑起来吧,所以Linux的知识必不可少
如果想要快速入门,不在于对于知识的精通,学一些常用就行了,但有时间最好系统学习(这句话适用于以下所有知识)
能够把文件跑起来,知道怎么用命令行,怎么安装工具,就差不多行了,安装个有图形界面的Linux系统对新手还是挺友好的
二.C语言
由于C语言的古老,造就了很多不可名状的漏洞,但是架不住它牛逼啊。pwn题所有的文件都是用C语言编写的,在反汇编时反出来的也是C语言代码,你连代码都看不懂你还找什么漏洞,就算代码看得懂我也天天写bug所以学会看C语言代码对于寻找漏洞非常重要。
当然,如果你有C++的基础基本就可以快速入门C语言了。绝对不是因为学校要学所以会C++
三.汇编语言
把反汇编转成C语言只是图一乐,真要玩pwn还得看我汇编(bushi)。即使反汇编工具能够把汇编语言转成C语言,能看懂汇编语言还是学习pwn的必要条件,不管是分析栈还是分析地址,汇编语言都是很重要的工具。
当然,不要看要学汇编就兴冲冲买个黑皮书开啃,学会几个常用的前期就够用了,mov、lea、add、sub、ret、call、push、pop,把这几个彻底弄清楚就差不多能应付前期的学习了。就算遇到了新的汇编指令,现学现卖就行了,不用太深究,不然几年也入不了门。
四.计算机组成原理
分析程序的时候时常要跟寄存器啥的打交道,还有十六进制地址之类的,所以一点计组知识还是很有必要的,但是pwn毕竟不是一个太底层的东西,了解一些概念,以及怎么计算地址,什么间址寻址、间址寻址那些就差不多了。不会有人连寄存器是啥都不知道吧
三.总结
本文只是博主对pwn入门的一些小小心得,毕竟本人也只是一个刚刚入门的小白,看个ctf-wiki都要看半天才看得懂一道题,写这个博客也主要是为了让那些跟我一样的小白知道怎么入门,毕竟大佬眼中的入门跟新手眼中的入门有时候真的不是一个概念。
可能有的人也没有很多的时间去系统地学完汇编语言之类的,我也只是根据目前我做过的题目和所学的东西提出建议,如果觉得我说的不对尽量不要骂人哦(笑)。
如果有新手想跟博主一起进步一起从零开始学习pwn,可以点个小小的关注,谢谢啦。
推荐阅读:
下一篇: 基础Java自学之路(2021年最新版)