CTF-All-In-One/book/README.md

81 lines
8.3 KiB
Markdown
Raw Normal View History

2020-11-12 12:31:40 +07:00
# 关于本书
2020-12-08 11:12:16 +07:00
- [作者简介](#作者简介)
- [作者序](#作者序)
- [推荐序](#推荐序)
- [内容简介](#内容简介)
- [本书结构](#本书结构)
2021-01-02 10:16:34 +07:00
![img](./poster.jpg)
2020-11-12 12:31:40 +07:00
## 作者简介
杨超毕业于西安电子科技大学L-Team成员。目前就职于中国汽研北京分院从事车联网安全研究和工具开发。曾在海康威视、斗象科技工作过。活跃在开源社区关注我的GitHubfirmianay
## 作者序
时间回到2017年7月随着信息安全的发展CTF竞赛也开始引人关注这种有趣的竞赛模式对技术切磋和快速学习十分有效。在西电信安协会XDSEC学长的带领下我已经接触了较长的一段时间。由于网上还没有比较完善和系统的资料本着开源之精神以分享他人提高自己为目的我在GitHub上创建了一个叫做“CTF-All-In-One”的项目并给了自己第1个star。在随后的时间里这个项目日渐完善吸引和帮助了不少初学者到今天已经收获了超过2100个star在此我将它们献给所有为技术分享与进步作出贡献的CTF出题人和项目贡献者们。
收到刘皎老师的约稿邀请是在2018年10月那时我刚上大四我说可以试试看就惊喜又惶恐地接受了这项挑战。然后就是定目录交样章在2019年1月签订了约稿合同。没想到写作的道路竟如此艰难每一章、每一节、每一个例子甚至每一个词都要斟酌就生怕误人子弟。学业和工作的事情很多最初参与的两个朋友相继离开我本人也多次想要放弃直到2020年7月才完成初稿。经过几轮艰苦的校稿终于在2020年10月签订了出版合同。两年时间仿佛一晃就这样过去了。
写作的过程基本就是一个现学现卖的过程,我一边学习新知识,一边在框架体系里进行整理。这条路上有太多的分叉和无数的坑,我尽量把自己的经验写进书里,让读者可以快速获得其中的关键技术,避免重复劳动。所以与其称之为一本书,倒不如说是一个经过校对、完善,最终得到出版的知识库。在这个过程中,我也发现了写作对我来说是一种有效的训练方式,是一种附加的价值,通过对自己的知识和想法进行梳理,从而大大有益于我的工作。
我知道自己的限度这本书是我写的第一本也很可能是最后一本。安全很有趣我很高兴当初选择了它很荣幸有机会分享出来希望读者读到这本书时也会为自己的选择而感到高兴。我们将此书命名为《CTF竞赛权威指南(Pwn篇)》是给未来留出了空间期待有更多人参与进来拿出Web篇、Reverse篇、Crypto篇等更好的作品让这个系列更配得上“权威”二字。
作为一本面向初学者的书,读者中一定不乏中学生群体,全国中学生网络安全竞赛每年都在我的母校西安电子科技大学进行,今年已是第三届,颇具规模。欢迎各位报考网络与信息安全学院,这里真的是一个很棒的地方。
最后感谢我的大学室友刘晋他早期的帮助让这个项目得以成型。感谢腾讯的吴石老师他的推荐让这个成型的项目得以转换成书。感谢电子工业出版社的刘皎老师她认真细致的工作使本书得以高质量地呈现给读者。感谢eee战队谢天忆、朱梦凡、马会心和刘耕铭的审核。感谢我的学弟槐和koocola贡献了本书第11章的初稿。感谢湖北警官学院的谈楚瑜和MXYLR以及其他来自GitHub的朋友的鼓励和支持。感谢我的父母给了我选择和发展的自由让我在人生道路上没有后顾之忧。以及感谢那位不愿透露姓名的朋友遇见你曾是青春最美好的事。感谢你们
杨超
2020年11月于北京
2020-12-08 11:12:16 +07:00
## 推荐序
近年来在党和国家的高度重视下网络安全行业发展迅猛吸引了大批年轻学子和有志青年投身其中。2015年“网络空间安全”正式成为“工学”门类下的一级学科与此同时不论是高校、还是企事业单位中CTF等类型的信息安全竞赛也开始蓬勃发展。通过竞赛涌现出了一大批高手、能手。但是竞赛中各个模块间的发展程度却也参差不齐。相对而言Web、Misc等模块发展较快参与的选手也较多二进制安全相关模块如逆向RE、移动安全Mobile等选手相对就少些而其中的Pwn模块则参赛选手最少。究其原因主要是因为相对其他模块二进制安全相关模块的学习曲线更陡峭要求选手对系统的理解更为深入。
市面上安全相关的书籍、教程汗牛充栋与漏洞主题相关的却屈指可数。在这些书籍中由于作者本身都是从事漏洞发掘工作的所以相关案例多以Windows平台下各种软件漏洞的为主其他平台为辅。但Windows平台本身内部实现机制就比较复杂相关文档不多且有的软件自身还会有自己私有的内存管理方法比如微软的office软件在开始学习相关技能之前所需要掌握的相关前置背景知识就够人喝一壶了。
本书另辟蹊径利用历年历届的CTF真题以x86/x64平台下Linux系统中的Pwn样题为例讲述漏洞利用的基本方法和技巧。由于Linux系统本身就是一个开源系统相关文档也比较齐全因此在这个平台上容易把问题讲透。把基本功练扎实了再去学习其他平台上的漏洞利用技术必将起到事半而功倍的效果。此外当前被广泛使用的Android等操作系统本身就是Linux系统的变种相关技术也很容易移植到这些系统的漏洞发掘利用中去。
本书的作者是业内后起之秀。书中所用的例子贴近CTF实战讲解详尽思路清晰非常有助于读者理解和学习。
本书的审校者——吴石老师率领的腾讯eee战队——曾多次斩获国内外高等级竞赛的大奖相关经验非常丰富。
本书为广大学子和从业人员学习漏洞利用技术知识提供了有益的指导。相信有志学者,经过认真钻研,必能早日登堂入室,为我国网络安全事业的发展添砖加瓦。
——崔孝晨
《Python绝技运用python成为顶级黑客》、《最强Android书架构大剖析》译者
2020-11-12 12:31:40 +07:00
## 内容简介
本书专注于Linux二进制安全。全书包含12章从二进制底层开始结合源码详细分析了常见的二进制安全漏洞、缓解机制以及漏洞利用方法并辅以分析工具和环境搭建的讲解。
本书在素材的选择上较为连续、完整,每个知识点均配以经典例题,并花费了大量篇幅深入讲解,以最大程度地还原分析思路和解题过程。读者完全可以依据本书自主、系统性地学习,达到举一反三的效果。
本书主要面向CTF初学者也适合对CTF感兴趣的人群学习。
## 本书结构
**第1章 CTF简介**介绍CTF竞赛模式、安全领域会议和学习经验。
**第2章 二进制文件**介绍ELF文件格式、动静态编译和程序加载过程。
**第3章 汇编基础**介绍必要的x86/x64汇编基础知识。
**第4章 Linux安全机制**介绍必要的Linux基础知识以及Pwn题中最常见的安全机制Stack Canaries、No-eXecute、ASLR、PIE、FORTIFY_SOURCE、RELRO
**第5章 分析环境搭建**介绍虚拟机、Docker环境的搭建和Pwn题的部署。
**第6章 分析工具**介绍IDA Pro、Radare2、GDB以及其他常用工具的使用方法。
**第7章 漏洞利用开发**介绍shellcode的基本原理以及如何用Pwntools和zio库编写漏洞利用脚本。
**第8章 整数安全**:介绍计算机中整数的存储方式,以及溢出、回绕、截断等安全问题。
**第9章 格式化字符串**:介绍格式化字符串漏洞的原理和利用方法。
**第10章 栈溢出与ROP**介绍栈溢出漏洞、返回导向编程的基本原理以及BROP、SROP、ret2dl-resolve等多种利用方法。
**第11章 堆利用**介绍glibc对内存堆块的管理方式以及unlink、off-by-one、堆块重叠等多种利用方法。
**第12章 pwn技巧**介绍Pwn题中常见的利用技巧和值得关注的安全问题。