5.0 用户推荐指数
科技
类型
7.8
豆瓣评分
可以朗读
语音朗读
436千字
字数
2020-06-01
发行日期
展开全部
主编推荐语
本书主要从Web、Reverse、PWN、Crypto、APK、IoT等方面对CTF的入门知识、学习方法和常见题型进行了介绍,并且结合实际题目对相关知识点进行讲解。
内容简介
本书主要从Web、Reverse、PWN、Crypto、APK、IoT六个方面对CTF的入门知识、学习方法和常见题型进行了介绍,并且结合实际题目对相关知识点进行讲解,同时结合线上赛、线下赛对竞赛技巧进行了总结。
从定位上来说,本书并不能让读者读完就成为“职业竞技选手”,而是希望读者能够从本书中知道自己对哪些方面感兴趣,要进一步学习哪些方面的知识,达到CTF入门的目的。因此,本书面向的人群是CTF的初学者。当然,如果有经验的读者想要跨领域学习其他类型的题目的解法,也可以从本书中获取一些灵感。
目录
- 版权信息
- 前言
- 为什么写这本书
- 本书特色
- 资源获取及反馈
- 战队介绍
- 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
- 本篇小结
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。