| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Pwn入门基础 -> 正文阅读 |
|
[Python知识库]Pwn入门基础 |
在CTF中,pwn主要是指通过程序本身的漏洞,编写利用脚本破解程序拿到系统的权限(shell),从而获得flag(通常为目标目录下文件内的一段随机字符串)这就要求我们对程序的各种函数,内存地址,堆栈空间,文件的结构有足够的了解。 0x01知识储备● c语言 ● python ● 汇编语言 ● Linux操作系统 ● 数据结构和算法 ? ? ? ?c语言是当前比赛中pwn项目最常用的语言,IDA pro反汇编后得到的也是c语言的伪代码,所以c语言的熟练掌握会对程序的分析有很大帮助。 ? ? ? ?python主要用于编写exp(攻击)脚本,另外python有一个pwntools的python库是几乎每个pwn选手必备的。 ? ? ? ?前面虽说有c语言的伪代码,但是很多情况下伪代码并不能给我们提供所有有效信息,这时候我们就不得不直接分析汇编指令了。 ? ? ? ?Linux操作系统能够提供各种辅助指令来获取信息,了解操作系统还能加深我们对堆栈的理解。 ? ? ?较难的程序中大多包含了复杂的数据结构与算法,需要我们迅速且准确在其中找出漏洞,这也就需要我们熟悉各种数据结构与算法并能在一定的魔改下依旧做出判断。 0x02必备工具● IDA pro: 新手入门必备,能对程序进行静态调试(也能动态调试),查看伪代码等信息。 ● pwngdb:Linux系统下gdb调试的一个插件,能对程序进行动态调试,查看程序函数的调用,栈内信息等等,新手使用需要一定时间的熟悉。 ● pwntools:前面已经介绍,一个python的第三方库,极大的便利了我们exp的编写 ● 虚拟机:主要是用来装Linux操作系统的,因为许多pwn的题目在Linux的环境下更利于我们去分析,操作起来也更方便,实际上一般是windows和linux系统结合起来进行分析。 0x03基本漏洞学习● 整数溢出 ● 栈溢出 ● ROP(返回导向式编程) ● 格式化字符串漏洞 ● 堆溢出 0x04入门书籍推荐● 从0到1CTFer成长之路(Nu1L战队) ● 有趣的二进制 ● C Primer Plus 0x05刷题网站推荐XCTF(攻防世界)?https://adworld.xctf.org.cn/ Bugku CTF??首页 - Bugku CTF Jarvis OJ??Jarvis OJ ctf.show?ctf.show BUUCTF??BUUCTF在线评测 CTFHub??CTFHub 前三个网站题目比较基础(攻防世界还有进阶区),适合新手,后面三个网站题库丰富,CTFHub上还有许多真题还有各种比赛的日程。 新手入门前期学习以刷题为主,帮助深入了解知识。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 17:34:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |