类似推荐
编辑推荐
本书主要从Web、Reverse、PWN、Crypto、APK、IoT等方面对CTF的入门知识、学习方法和常见题型进行了介绍,并且结合实际题目对相关知识点进行讲解。
内容简介
本书主要从Web、Reverse、PWN、Crypto、APK、IoT六个方面对CTF的入门知识、学习方法和常见题型进行了介绍,并且结合实际题目对相关知识点进行讲解,同时结合线上赛、线下赛对竞赛技巧进行了总结。
从定位上来说,本书并不能让读者读完就成为“职业竞技选手”,而是希望读者能够从本书中知道自己对哪些方面感兴趣,要进一步学习哪些方面的知识,达到CTF入门的目的。因此,本书面向的人群是CTF的初学者。当然,如果有经验的读者想要跨领域学习其他类型的题目的解法,也可以从本书中获取一些灵感。
作者简介
写作团队FlappyPig战队,曾荣获XCTF国际联赛总冠军、TCTF/0CTF冠军、WCTF世界黑客大师挑战赛季军,多次入围Defcon全球总决赛。
章节目录
版权信息
前言
为什么写这本书
本书特色
资源获取及反馈
战队介绍
CTF赛制介绍
第一篇 CTF之Web
第1章 常用工具安装及使用
1.1 Burp Suite
1.2 Sqlmap
1.3 浏览器与插件
1.4 Nmap
第2章 SQL注入攻击
2.1 什么是SQL注入
2.2 可以联合查询的SQL注入
2.3 报错注入
2.4 Bool盲注
2.5 时间盲注
2.6 二次注入
2.7 limit之后的注入
2.8 注入点的位置及发现
2.9 绕过
2.10 SQL读写文件
2.11 小结
第3章 跨站脚本攻击
3.1 概述
3.2 常见XSS漏洞分类
3.3 防护与绕过
3.4 危害与利用技巧
3.5 实例
第4章 服务端请求伪造
4.1 如何形成
4.2 防护绕过
4.3 危害与利用技巧
4.4 实例
第5章 利用特性进行攻击
5.1 PHP语言特性
5.1.1 弱类型
5.1.2 反序列化漏洞
5.1.3 截断
5.1.4 伪协议
5.1.5 变量覆盖
5.1.6 防护绕过
5.2 Windows系统特性
第6章 代码审计
6.1 源码泄露
6.2 代码审计的方法与技巧
第7章 条件竞争
7.1 概述
7.2 条件竞争问题分析及测试
第8章 案例解析
8.1 NSCTF 2015 Web实例
8.2 湖湘杯2016线上选拔赛Web实例
8.3 0CTF 2017 Web实例
8.4 2019 WCTF大师赛赛题剖析:P-door
本篇小结
第二篇 CTF之Reverse
第9章 Reverse概述
9.1 逆向分析的主要方法
9.2 汇编指令体系结构
9.2.1 x86指令体系
9.2.2 x64指令体系
9.3 逆向分析工具介绍
9.3.1 反汇编和反编译工具
9.3.2 调试器
9.3.3 Trace类工具
第10章 Reverse分析
10.1 常规逆向分析流程
10.1.1 关键代码定位
10.1.2 常见加密算法识别
10.1.3 求解flag
10.2 自动化逆向
10.2.1 IDAPython
10.2.2 PythonGdb
10.2.3 pydbg
10.2.4 Angr
10.3 干扰分析技术及破解方法
10.3.1 花指令
10.3.2 反调试
10.3.3 加壳
10.3.4 控制流混淆
10.3.5 双进程保护
10.3.6 虚拟机保护
10.4 脚本语言的逆向
10.4.1 .NET程序逆向
10.4.2 Python程序逆向
10.4.3 Java程序逆向
本篇小结
第三篇 CTF之PWN
第11章 PWN基础
11.1 基本工具
11.2 保护机制
11.3 PWN类型
11.4 常见利用方法
11.5 程序内存布局
11.6 真题解析
第12章 栈相关漏洞
12.1 栈介绍
12.1.1 函数栈的调用机制
12.1.2 函数参数传递
12.2 栈溢出
12.2.1 基本概念
12.2.2 覆盖栈缓冲区的具体用途
12.3 栈的特殊利用
12.4 栈喷射
12.5 线程栈
12.6 真题解析
12.6.1 {ZCTF-2015}guess(PWN100)
12.6.2 {ZCTF-2015}spell(PWN300)
12.6.3 {Codegate-2015}Chess(PWN700)
12.6.4 {RCTF-2015}Welpwn(PWN200)
第13章 堆相关漏洞
13.1 堆介绍
13.1.1 堆基本数据结构chunk
13.1.2 堆空闲块管理结构bin
13.1.3 malloc基本规则
13.1.4 free基本规则
13.1.5 tcache
13.2 漏洞类型
13.3 利用方法
13.3.1 最基本的堆利用
13.3.2 unlink
13.3.3 fastbin attack
13.3.4 forgotten chunk
13.3.5 house of force
13.3.6 house of spirit
13.3.7 house of orange
13.3.8 堆喷射
13.3.9 更多堆利用技巧
13.4 真题解析
第14章 格式化字符串漏洞
14.1 基本概念
14.2 信息泄露与修改
14.3 额外技巧
14.4 真题解析
14.4.1 {CCTF-2016}PWN3(PWN350)
14.4.2 {RCTF-2015}nobug(PWN300)
14.4.3 {LCTF-2016}PWN200
第15章 整型漏洞
15.1 宽度溢出
15.2 符号转换
15.3 数组越界
15.4 真题解析
第16章 逻辑漏洞
16.1 基本概念
16.2 竞态条件漏洞
16.3 真题解析
第17章 Attack&Defense模式
17.1 修补方案
17.1.1 大小修改法
17.1.2 函数替换法
17.1.3 .eh_frame段Patch法
17.1.4 其他方法
17.2 攻防策略
相关知识链接推荐
本篇小结
第四篇 CTF之Crypto
第18章 Crypto概述
第19章 编码
19.1 hex
19.2 urlencode
19.3 morsecode
19.4 jsfuck
19.5 uuencode
19.6 base家族
第20章 古典密码
20.1 移位密码
20.1.1 简单移位密码
20.1.2 曲路密码
20.1.3 云影密码
20.1.4 栅栏密码
20.2 替代密码
20.2.1 单表替代密码
20.2.2 多表替代密码
第21章 现代密码
21.1 分组密码和序列密码
21.1.1 DES/AES基本加解密
21.1.2 分组密码CBC bit翻转攻击
21.1.3 分组密码CBC选择密文攻击
21.1.4 分组密码CBC padding oracle攻击
21.1.5 Feistel结构分析
21.1.6 攻击伪随机数发生器
21.2 公钥密码
21.2.1 RSA基础
21.2.2 直接模数分解
21.2.3 费马分解和Pollard_rho分解
21.2.4 公约数模数分解
21.2.5 其他模数分解方式
21.2.6 小指数明文爆破
21.2.7 选择密文攻击
21.2.8 LLL-attack
21.2.9 Wiener Attack&Boneh Durfee Attack
21.2.10 共模攻击
21.2.11 广播攻击
21.2.12 相关消息攻击
21.2.13 DSA
21.3 哈希
21.3.1 哈希碰撞
21.3.2 哈希长度扩展攻击
第22章 真题解析
22.1 SUPEREXPRESS
22.2 VIGENERE
22.3 Revolver
22.4 Railgun
本篇小结
第五篇 CTF之APK
第23章 APK基础
23.1 Android题目类型
23.2 Android基本架构
23.2.1 Android的Dalvik虚拟机
23.2.2 Native层
23.3 ARM架构基础知识
23.3.1 函数调用/跳转指令
23.3.2 出栈入栈指令
23.3.3 保存/恢复寄存器的值
23.4 adb
23.5 APK文件格式
第24章 Dalvik层逆向分析
24.1 Dalvik基础知识
24.1.1 寄存器
24.1.2 类型
24.1.3 方法
24.1.4 指令特点
24.2 静态分析
24.2.1 使用Apktool反编译APK程序
24.2.2 使用dex2jar生成jar文件
24.2.3 使用jd-gui查看反编译的Java代码
24.2.4 使用FernFlower反编译Jar文件
24.2.5 使用Android Killer/jadx/APK Studio逆向分析平台
24.2.6 使用JEB进行静态分析
24.2.7 其他的静态分析软件
24.3 动态调试
24.3.1 使用log调试
24.3.2 smali动态调试
24.3.3 使用Xposed框架Hook进程
24.3.4 使用Frida框架Hook进程
24.4 Dalvik层混淆及加固技术
24.4.1 ProGuard混淆
24.4.2 DEX破坏
24.4.3 APK伪加密
24.4.4 APK增加数据
24.4.5 DEX隐藏
第25章 Native层逆向
25.1 Native层介绍
25.1.1 正向——使用NDK编写Native层应用
25.1.2 JNI调用特征分析
25.2 使用IDA Pro静态分析
25.3 动态调试
25.3.1 使用IDA Pro进行动态调试
25.3.2 使用GDB进行动态调试
25.3.3 使用Frida框架HOOK进程
25.4 OLLVM混淆及加固技术
25.4.1 -fla
25.4.2 -bcf
25.4.3 -sub
本篇小结
第六篇 CTF之IoT
第26章 IoT基础知识
26.1 什么是IoT
26.2 什么是嵌入式系统
26.3 嵌入式系统的基本概念
26.4 CTF中常见的IoT题型归类
第27章 IoT固件逆向工程
27.1 常见IoT架构介绍
27.2 芯片手册的寻找与阅读
27.3 使用IDA手动寻找固件入口点
27.4 寄存器地址和SRAM地址的处理方法
27.5 IDA之CPU高级选项
27.6 动态调试环境搭建
27.7 专业调试工具
27.8 反编译工具
第28章 固件结构分析
28.1 常见固件类型
28.2 Flash文件系统
28.3 固件基地址确定方法
28.4 固件分析工具
第29章 无线信号分析
29.1 无线通信基本理论介绍
29.2 常见调制方式与解调方法
29.3 Matlab在数字信号处理中的应用
第30章 经典赛题讲解
30.1 PCTF2016:Confused ARM
30.2 UCTF2016资格赛:TWI
30.3 UCTF2016决赛:Normandie
30.4 ACTF2016:4G Radio
30.5 UCTF2016资格赛:传感器(1)(2)
30.6 UCTF2016资格赛:Add
本篇小结
CTF特训营:技术详解、解题方法与竞赛技巧是2020年由机械工业出版社华章分社出版,作者FlappyPig战队。
得书感谢您对《CTF特训营:技术详解、解题方法与竞赛技巧》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。