PWN概论

什么是pwn

pwn是ctf解题赛中的一个题目类别,它在黑客俚语中代表着攻破,获取权限,由“own”这个词引申而来。在CTF比赛中它代表着溢出类的题目,常见的类型有整数溢出、栈溢出、堆溢出等。主要考查参赛选手对漏洞的利用能力。

学习pwn的知识储备

反汇编工具

在比赛中我们会拿到一个二进制文件(由c文件编译而来),我们要找出这个可执行文件的漏洞,但二进制文件是由0和1的机器码组成,正常人是直接无法看懂里面的内容的,这时我们需要利用反编译工具将这个二进制文件反编译为我们能看懂的语言(汇编语言或者c语言)。常见的反编译工具有IDA等

C语言

熟悉c语言是pwn的基础(起码能看懂大部分代码),我们要对反编译后的伪代码进行分析,从伪代码中找出程序的漏洞。

汇编语言

虽然反编译工具能帮我们将二进制文件反编译为c的伪代码,但是能看懂汇编程序也很重要。在必要的时候它帮助我们深入理解程序运行时寄存器的状态,以及在后续的学习中能够帮助我们更好地理解各种漏洞的原理。

python

python作为最近比较火的脚本类语言,它在编写一些脚本上展现出很强的功能性和便捷性,所以ctf中一般的漏洞攻击的脚本我们用python来编写,需要能够看懂和编写简单的python程序,以便我们从他人的wp中学习和在漏洞攻击时的脚本编写。

操作系统

需要基本都操作系统知识,它能够帮助我们知道一个程序运行的时候操作系统都做了些什么,有助于高级漏洞的学习。

其中c语言和汇编语言我认为是开始学习pwn的必要前置条件,如果掌握了这两门知识,在后续的学习过程中会易理解很多,在比赛中也能灵活应对各种问题。至于python,在有了c语言基础的话学起来不难,所以可以在边学pwn的时候边学一些python中漏洞攻击时实用的函数。在此之外也可以学习学习数据结构,对涉及基本算法的漏洞题目和知识点会很有帮助。

学习资源推荐

  • 浙大翁恺老师的c语言网课、《c Primer Plus》
  • 王爽老师的《汇编语言》、b站小甲鱼老师的汇编语言视频
  • 《IDA Pro权威指南》
  • 《CTF竞赛权威指南》、Ctf Wiki学习网站
  • 《操作系统导论》、《深入理解计算机操作系统》
  • 浙大刷题网站:Jarvis OJ
  • http://pwnable.kr/play.php

个人学习方法

在有一定编程和代码阅读能力后再开始pwn的学习,不然学习过程会很吃力。我们可以在学习某个漏洞攻击的时候,就可以对该漏洞多找几道题练练手,这种有正反馈的学习会使我们越来越有动力。在遇到问题的时候可以多利用搜索引擎和学习资料,及时弥补或矫正知识漏洞和理解偏差,多做个人总结。前期学习一定会比较艰难,但是努力啃完各种资料,入门后就回变得明朗和有趣起来。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值