书籍详情

CTF竞赛权威指南(Pwn篇)

CTF竞赛权威指南(Pwn篇)

作者:杨超 著

出版社:电子工业出版社

出版时间:2020-12-01

ISBN:9787121399527

定价:¥139.00

购买这本书可以去
内容简介
  本书专注于Linux二进制安全。全书包含12章, 从二进制底层开始, 结合源码详细分析了常见的二进制安全漏洞、 缓解机制以及漏洞利用方法, 并辅以分析工具和环境搭建的讲解. 本书在素材的选择上较为连续、 完整, 每个知识点均配以经典例题, 并花费了太量篇幅深入讲解,以最大程度地还原分析思路和解题过程. 读者完全可以依据本书自主、 系统性地学习, 达到举 反三的效果. 本书主要面向CTF初学者, 也适合对CTF感兴趣的人群学习.
作者简介
  杨超,毕业于西安电子科技大学,L-Team成员。目前就职于中国汽研北京分院,从事车联网安全研究和工具开发工作。曾任职于海康威视、斗象科技。活跃在开源社区, GitHub:firmianay。腾讯eee战队,腾讯安全2016年成立的一支具有国际先进技术实战能力的CTF战队。战队核心成员均来自腾讯安全科恩实验室,导师由腾讯安全科恩实验室负责人、国际著名网络安全专家吴石担任。 目前,战队成员已连续4年参与征战DEFCON决赛,并在HITCON、PlaidCTF、SECCON等世界顶级安全赛事中,不断刷新战队历史最好成绩,为国际间的技术交流与人才培养奠定基础。同时,战队还积极参与国内赛事演练,并在2018年连续荣膺中国网络安全三大国赛——“强网杯”“网鼎杯”和“护网杯”赛事冠军,成为第一个实现国赛大满贯的战队;2019年,战队再度蝉联“强网杯”线上、线下赛冠军。2020年,战队获得第四届“强网杯”亚军。
目录
第1章CTF简介
1.1赛事介绍
1.1.1赛事起源
1.1.2竞赛模式
1.1.3竞赛内容
1.2知名赛事及会议
1.2.1网络安全竞赛
1.2.2网络安全会议
1.2.3网络安全学术会议
1.3学习经验
1.3.1二进制安全入门
1.3.2CTF经验8
1.3.3对安全从业者的建议8

第2章二进制文件
2.1从源代码到可执行文件11
2.1.1编译原理11
2.1.2GCC编译过程12
2.1.3预处理阶段13
2.1.4编译阶段14
2.1.5汇编阶段15
2.1.6链接阶段15
2.2ELF文件格式16
2.2.1ELF文件的类型16
2.2.2ELF文件的结构18
2.2.3可执行文件的装载24
2.3静态链接26
2.3.1地址空间分配26
2.3.2静态链接的详细过程27
2.3.3静态链接库29
2.4动态链接30
2.4.1什么是动态链接30
2.4.2位置无关代码31
2.4.3延迟绑定32

第3章汇编基础
3.1CPU架构与指令集34
3.1.1指令集架构34
3.1.2CISC与RISC对比35
3.2x86/x64汇编基础36
3.2.1CPU操作模式36
3.2.2语法风格36
3.2.3寄存器与数据类型37
3.2.4数据传送与访问38
3.2.5算术运算与逻辑运算39
3.2.6跳转指令与循环指令40
3.2.7栈与函数调用41

第4章Linux安全机制
4.1Linux基础45
4.1.1常用命令45
4.1.2流、管道和重定向46
4.1.3根目录结构47
4.1.4用户组及文件权限47
4.1.5环境变量49
4.1.6procfs文件系统51
4.1.7字节序52
4.1.8调用约定53
4.1.9核心转储54
4.1.10系统调用55
4.2StackCanaries58
4.2.1简介58
4.2.2实现61
4.2.3NJCTF2017:messager63
4.2.4sixstarsCTF2018:babystack65
4.3No-eXecute69
4.3.1简介69
4.3.2实现70
4.3.3示例73
4.4ASLR和PIE75
4.4.1ASLR75
4.4.2PIE76
4.4.3实现77
4.4.4示例79
4.5FORTIFY_SOURCE83
4.5.1简介83
4.5.2实现84
4.5.3示例86
4.5.4安全性89
4.6RELRO90
4.6.1简介90
4.6.2示例90
4.6.3实现93

第5章分析环境搭建
5.1虚拟机环境96
5.1.1虚拟化与虚拟机管理程序96
5.1.2安装虚拟机97
5.1.3编译debug版本的glibc98
5.2Docker环境100
5.2.1容器与Docker100
5.2.2Docker安装及使用101
5.2.3Pwn题目部署102

第6章分析工具
6.1IDAPro104
6.1.1简介104
6.1.2基本操作105
6.1.3远程调试108
6.1.4IDAPython110
6.1.5常用插件114
6.2Radare2115
6.2.1简介及安装115
6.2.2框架组成及交互方式115
6.2.3命令行工具118
6.2.4r2命令122
6.3GDB125
6.3.1组成架构125
6.3.2工作原理125
6.3.3基本操作127
6.3.4增强工具130
6.4其他常用工具132
6.4.1dd133
6.4.2file133
6.4.3ldd134
6.4.4objdump134
6.4.5readelf135
6.4.6socat136
6.4.7strace<race136
6.4.8strip137
6.4.9strings138
6.4.10xxd138

第7章漏洞利用开发
7.1shellcode开发141
7.1.1shellcode的基本原理141
7.1.2编写简单的shellcode141
7.1.3shellcode变形143
7.2Pwntools145
7.2.1简介及安装145
7.2.2常用模块和函数145
7.3zio152
7.3.1简介及安装152
7.3.2使用方法153

第8章整数安全
8.1计算机中的整数156
8.2整数安全漏洞157
8.2.1整数溢出157
8.2.2漏洞多发函数158
8.2.3整数溢出示例159

第9章格式化字符串
9.1格式化输出函数162
9.1.1变参函数162
9.1.2格式转换162
9.2格式化字符串漏洞164
9.2.1基本原理164
9.2.2漏洞利用166
9.2.3fmtstr模块174
9.2.4HITCONCMT2017:pwn200176
9.2.5NJCTF2017:pingme178

第10章栈溢出与ROP
10.1栈溢出原理183
10.1.1函数调用栈183
10.1.2危险函数186
10.1.3ret2libc186
10.2返回导向编程187
10.2.1ROP简介187
10.2.2ROP的变种189
10.2.3示例191
10.3BlindROP192
10.3.1BROP原理192
10.3.2HCTF2016:brop193
10.4SROP200
10.4.1SROP原理200
10.4.2pwntoolssrop模块204
10.4.3BackdoorCTF2017:FunSignals204
10.5stackpivoting206
10.5.1stackpivoting原理206
10.5.2GreHackCTF2017:beerfighter209
10.6ret2dl-resolve213
10.6.1ret2dl-resolve原理213
10.6.2XDCTF2015:pwn200217

第11章堆利用
11.1glibc堆概述224
11.1.1内存管理与堆224
11.1.2重要概念和结构体226
11.1.3各类bin介绍229
11.1.4chunk相关源码231
11.1.5bin相关源码235
11.1.6malloc_consolidate()函数237
11.1.7malloc()相关源码239
11.1.8free()相关源码248
11.2TCache机制251
11.2.1数据结构251
11.2.2使用方法252
11.2.3安全性分析255
11.2.4HITBCTF2018:gundam257
11.2.5BCTF2018:HouseofAtum263
11.3fastbin二次释放268
11.3.1fastbindup268
11.3.2fastbindupconsolidate273
11.3.30CTF2017:babyheap275
11.4houseofspirit283
11.4.1示例程序284
11.4.2LCTF2016:pwn200287
11.5不安全的unlink291
11.5.1unsafeunlink292
11.5.2HITCONCTF2016:SecretHolder295
11.5.3HITCONCTF2016:SleepyHolder303
11.6off-by-one307
11.6.1off-by-one307
11.6.2poisonnullbyte310
11.6.3ASISCTF2016:b00ks313
11.6.4PlaidCTF2015:PlaidDB320
11.7houseofeinherjar325
11.7.1示例程序325
11.7.2SECCONCTF2016:tinypad328
11.8overlappingchunks336
11.8.1扩展被释放块336
11.8.2扩展已分配块339
11.8.3hack.luCTF2015:bookstore342
11.8.40CTF2018:babyheap349
11.9houseofforce353
11.9.1示例程序353
11.9.2BCTF2016:bcloud356
11.10unsortedbin与largebin攻击363
11.10.1unsortedbinintostack363
11.10.2unsortedbinattack367
11.10.3largebin攻击370
11.10.40CTF2018:heapstorm2374

第12章Pwn技巧
12.1one-gadget383
12.1.1寻找one-gadget383
12.1.2ASISCTFQuals2017:Starthard385
12.2通用gadget及Return-to-csu388
12.2.1Linux程序的启动过程388
12.2.2Return-to-csu390
12.2.3LCTF2016:pwn100392
12.3劫持hook函数395
12.3.1内存分配hook396
12.3.20CTF2017-babyheap397
12.4利用DynELF泄露函数地址401
12.4.1DynELF模块401
12.4.2DynELF原理402
12.4.3XDCTF2015:pwn200403
12.4.4其他泄露函数406
12.5SSPLeak409
12.5.1SSP409
12.5.2__stack_chk_fail()411
12.5.332C3CTF2015:readme412
12.5.434C3CTF2017:readme_revenge416
12.6利用environ泄露栈地址422
12.7利用_IO_FILE结构429
12.7.1FILE结构体429
12.7.2FSOP431
12.7.3FSOP(libc-2.24版本)433
12.7.4HITCONCTF2016:HouseofOrange438
12.7.5HCTF2017:babyprintf445
12.8利用vsyscall449
12.8.1vsyscall和vDSO449
12.8.2HITBCTF2017:1000levels451
猜您喜欢

读书导航