感謝 ChaMd5 戰(zhàn)隊(duì)的24 名參與編寫的戰(zhàn)隊(duì)成員,他們分別是 b0ldfrev、badmonkey、bingo、董浩宇、eevee、飯飯(范鵬)、ggb0n、LFY、luckyu、南宮十六、Pcat、prowes5、PureT、Reshahar、thinker、天河、童帥、Vanish、waynehao、wEik1、Windforce17、xq17、逍遙自在、張智恒。
隨著數(shù)字化和智能化的不斷應(yīng)用和發(fā)展,CTF涉及的技術(shù)領(lǐng)域、比賽的形式、解題的方法等也在快速變化,對(duì)參賽者的技術(shù)能力和實(shí)戰(zhàn)經(jīng)驗(yàn)要求越來越高,過往的圖書越來越不能滿足新時(shí)代CTFer的需求。
本書是一本與時(shí)具進(jìn)的CTF著作,緊跟CTF變化趨勢(shì),圍繞Web安全、密碼學(xué)、逆向工程、Pwn、隱寫術(shù)、數(shù)字取證、代碼審計(jì)7大傳統(tǒng)核心領(lǐng)域以及智能合約、工控、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)4大新興領(lǐng)域,全面、系統(tǒng)地講解了CTFer需要掌握的安全技術(shù)及其進(jìn)階知識(shí),精心設(shè)計(jì)和挑選了大量的實(shí)操案例和典型真題,并分享了很多流行的戰(zhàn)術(shù)和戰(zhàn)法。既適合作為新人系統(tǒng)學(xué)習(xí)的入門教程,又適合身經(jīng)百戰(zhàn)的CTFer作為備賽時(shí)的定海神針,總而言之,本書希望能指導(dǎo)CTFer在新時(shí)代的比賽中取得傲人的成績(jī)。
本書是國內(nèi)老牌CTF戰(zhàn)隊(duì)ChaMd5核心成員多年實(shí)戰(zhàn)經(jīng)驗(yàn)的總結(jié),得到了來自百度、騰訊、綠盟、奇安信等多家互聯(lián)網(wǎng)企業(yè)以及Lilac、Nu1L Team、Redbud、W&M、米斯特、網(wǎng)絡(luò)尖刀等國內(nèi)知名CTF戰(zhàn)隊(duì)和SRC安全團(tuán)隊(duì)的20余位專家的好評(píng)和一致推薦。
本書提供一站式CTF在線學(xué)習(xí)平臺(tái)CTFHub(www.ctfhub.com),平臺(tái)為CTFer提供了最新賽事消息、學(xué)習(xí)技能樹、歷年的真題及其解析、完善的題目環(huán)境及配套的Writeup、常見CTF工具及其使用。
(1)緊跟時(shí)代步伐:CTF隨著技術(shù)的應(yīng)用和發(fā)展不斷變化,本書從新賽事、新題目、新打法、新技術(shù)4個(gè)維度指導(dǎo)讀者成為新時(shí)代CTFer。
(2)作者背景權(quán)威:ChaMd5是國內(nèi)的王牌安全團(tuán)隊(duì),團(tuán)隊(duì)核心成員來自阿里、滴滴、啟明星辰、綠盟、知道創(chuàng)宇、奇安信、永信至誠、360、陌陌、牛盾、安恒、啟明等公司。
(3)作者經(jīng)驗(yàn)豐富:自成立以來,在CTF比賽、工控安全比賽、IoT比賽、AI安全比賽、車聯(lián)網(wǎng)安全比賽等多種安全賽事中屢獲佳績(jī),累計(jì)獲得6次冠軍,為企業(yè)報(bào)告安全漏洞超10萬個(gè)。
(4)覆蓋11大領(lǐng)域:全面覆蓋Web安全、密碼學(xué)、逆向工程、Pwn、隱寫術(shù)、數(shù)字取證、代碼審計(jì)7大傳統(tǒng)核心領(lǐng)域以及智能合約、工控、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)4大新興領(lǐng)域,緊跟安全技術(shù)的發(fā)展。
(5)從基礎(chǔ)到進(jìn)階:不僅詳細(xì)講解11大技術(shù)領(lǐng)域的基礎(chǔ)和原理,而且還針對(duì)性地講解了它們的進(jìn)階知識(shí)、技巧和心得。
(6)大量案例真題:不僅精心設(shè)計(jì)了大量的實(shí)操案例來幫助讀者理解,而且還精心挑選了大量的典型真題,給出了真題的解法以及比賽的戰(zhàn)術(shù)、戰(zhàn)法。
(7)22位專家力薦:來自百度、騰訊、綠盟、奇安信等多家互聯(lián)網(wǎng)企業(yè)的專家,來自Lilac、Nu1L Team、Redbud、W&M、米斯特、網(wǎng)絡(luò)尖刀等國內(nèi)知名CTF戰(zhàn)隊(duì)和安全團(tuán)隊(duì)的專家,以及來自高校的學(xué)者聯(lián)袂推薦。
前 言
為什么要寫這本書
2016年ChaMd5安全團(tuán)隊(duì)成立,轉(zhuǎn)眼間已經(jīng)7年了。我們?cè)诟鱏RC平臺(tái)和CTF比賽中獲得了不少獎(jiǎng)項(xiàng),逐漸意識(shí)到團(tuán)隊(duì)成員應(yīng)該將這幾年的經(jīng)驗(yàn)和技術(shù)沉淀下來,為安全行業(yè)的新人以及熱愛安全行業(yè)、想提升技術(shù)的伙伴們提供幫助。
2021年年中,本著為行業(yè)做點(diǎn)貢獻(xiàn)的想法,我開始籌劃和構(gòu)思寫書,這個(gè)時(shí)候恰好應(yīng)邀為Nu1L戰(zhàn)隊(duì)所著的《從0到1:CTFer成長(zhǎng)之路》寫書評(píng),拜讀該書樣章后受到了很大的啟發(fā)。又逢我們的隊(duì)長(zhǎng)L1n3為內(nèi)部成員和安全愛好者搭建了CTFHub平臺(tái),對(duì)歷年CTF比賽真題進(jìn)行復(fù)現(xiàn),由此我發(fā)現(xiàn)一本僅圍繞CTF進(jìn)行討論的書可能缺少亮點(diǎn),便考慮怎樣才能對(duì)安全從業(yè)人員或者想從事安全方面工作的人提供更實(shí)際的
幫助。
2021年年底,我有幸遇到了機(jī)械工業(yè)出版社的楊福川編輯和韓蕊編輯,他們了解到我們團(tuán)隊(duì)在行業(yè)內(nèi)獲得過很多獎(jiǎng)項(xiàng),問我們?yōu)槭裁床粚懸槐緯。在和楊福川編輯多次交流后,我們確定了本書的框架把學(xué)生時(shí)期的CTF比賽和工作中的實(shí)戰(zhàn)相結(jié)合。為了寫好這本書,我們研究了市面上相關(guān)圖書涉及的安全技術(shù)知識(shí),將一些未被提及的內(nèi)容歸納總結(jié)到本書中。
本書把20多位業(yè)內(nèi)資深專家近年來積累的經(jīng)驗(yàn)和行業(yè)技巧毫無保留地分享給大家,我相信再好的技術(shù)也需要傳承,如果舍不得分享,那就沒有了價(jià)值。
作者簡(jiǎn)介
ChaMd5安全團(tuán)隊(duì)
國內(nèi)老牌CTF戰(zhàn)隊(duì),成立于2016年,為維護(hù)企業(yè)安全建設(shè)而成立,竭盡全力培養(yǎng)安全人才,服務(wù)于各大企業(yè)。
專注于算法加解密、安全漏洞挖掘、CTF競(jìng)賽及安全人才培養(yǎng)。團(tuán)隊(duì)成員200余人,大多數(shù)來自阿里、滴滴、啟明星辰、綠盟、知道創(chuàng)宇、奇安信、永信至誠、360、陌陌、牛盾、安恒、啟明等公司,也有部分在校學(xué)生與自由職業(yè)者。
團(tuán)隊(duì)自成立以來,在CTF比賽、工控安全比賽、IoT比賽、AI安全比賽、車聯(lián)網(wǎng)安全比賽等多種安全賽事中屢獲佳績(jī),累計(jì)獲得6次冠軍。長(zhǎng)期與企業(yè)保持良好合作關(guān)系,累計(jì)向企業(yè)報(bào)告安全漏洞超過10萬個(gè),多次在SRC中獲得第1名,曾獲得華為、螞蟻金服、百度、京東、滴滴、微軟和蘋果等多家企業(yè)的感謝和好評(píng)。
ChaMd5團(tuán)隊(duì)?wèi)?zhàn)績(jī)(部分):
(1)CTF比賽
2021年 第四屆強(qiáng)網(wǎng)擬態(tài)第1名
2021年 長(zhǎng)安杯總決賽一等獎(jiǎng)
2021年 巔峰極客第1名
(2)工控安全比賽
2020年 之江杯第1名
2018年 賽博地球杯工業(yè)互聯(lián)網(wǎng)安全大賽·線下 第二名
(3)IoT安全比賽
2020年西湖論劍IOT挑戰(zhàn)賽第1名
(4)AI安全比賽
2022年 CCF BDCI 競(jìng)技賽單賽題決賽二等獎(jiǎng)
(5)車聯(lián)網(wǎng)安全比賽
2022年 CICV 智能網(wǎng)聯(lián)汽車漏洞挖掘賽·線下一等獎(jiǎng)
2021年 第二屆中國智能網(wǎng)聯(lián)汽車大賽·天融信杯銅獎(jiǎng)
2021年 世界智能駕駛挑戰(zhàn)賽銅獎(jiǎng)
(6)SRC成績(jī)
2022年BSRC(百度)獲得團(tuán)隊(duì)第1名
2017-2020年DSRC團(tuán)隊(duì)第1名
2020年JSRC(京東)團(tuán)隊(duì)年度第二名
2020年網(wǎng)易SRC團(tuán)隊(duì)年度第二名
2020年字節(jié)跳動(dòng)SRC團(tuán)隊(duì)年度第三名
2020年360SRC年度團(tuán)隊(duì)第二名
2020年TSRC(騰訊)年度合作伙伴獎(jiǎng)
2019年華為云年度團(tuán)隊(duì)二等獎(jiǎng)
2019年MTSRC(美團(tuán))年度團(tuán)隊(duì)第二名
2019年ASRC(阿里)年度合作伙伴獎(jiǎng)
目 錄
贊譽(yù)
前言
第1章 Web安全1
1.1 SQL注入1
1.1.1 SQL注入基礎(chǔ)1
1.1.2 SQL注入進(jìn)階16
1.2 XSS 27
1.2.1 XSS類型27
1.2.2 XSS Bypass技巧29
1.2.3 XSS進(jìn)階35
1.2.4 XSS CTF例題43
1.3 跨站請(qǐng)求偽造44
1.4 服務(wù)器端請(qǐng)求偽造46
1.4.1 SSRF利用47
1.4.2 SSRF Bypass技巧57
1.4.3 SSRF進(jìn)階60
1.5 任意文件上傳70
1.5.1 客戶端校驗(yàn)70
1.5.2 服務(wù)端校驗(yàn)72
1.5.3 任意文件上傳進(jìn)階85
1.6 任意文件包含89
1.6.1 常見的利用方式89
1.6.2 任意文件包含進(jìn)階93
1.7 命令注入95
1.7.1 常見危險(xiǎn)函數(shù)96
1.7.2 常見注入方式97
1.7.3 Bypass技巧99
1.7.4 命令注入進(jìn)階102
1.8 XML外部實(shí)體注入104
1.8.1 XML的基本語法104
1.8.2 利用方式106
1.8.3 Bypass技巧107
1.9 反序列化漏洞108
1.9.1 什么是反序列化108
1.9.2 PHP反序列化109
1.10 服務(wù)端模板注入115
1.10.1 模板引擎115
1.10.2 服務(wù)端模板注入原理116
1.10.3 Flask-Jinja2模板注入117
1.10.4 PHP-Smarty模板注入126
1.10.5 CTF實(shí)戰(zhàn)分析129
1.11 邏輯漏洞132
1.11.1 登錄體系安全133
1.11.2 業(yè)務(wù)數(shù)據(jù)安全134
1.11.3 會(huì)話權(quán)限安全139
1.11.4 密碼重置漏洞144
1.11.5 CTF實(shí)戰(zhàn)分析150
第2章 密碼學(xué)153
2.1 現(xiàn)代密碼學(xué)153
2.1.1 計(jì)算安全和無條件安全153
2.1.2 對(duì)稱密碼學(xué)154
2.1.3 非對(duì)稱密碼學(xué)155
2.2 古典密碼學(xué)156
2.2.1 置換密碼156
2.2.2 代換密碼159
2.2.3 古典密碼學(xué)的常用工具和方法164
2.3 分組密碼的結(jié)構(gòu)165
2.3.1 常見的網(wǎng)絡(luò)結(jié)構(gòu)165
2.3.2 常見的加密模式166
2.3.3 常見的分組加密算法170
2.4 針對(duì)分組密碼的攻擊方式170
2.5 差分分析攻擊實(shí)例:對(duì)DES的差分
攻擊172
2.6 格密碼182
2.6.1 格理論知識(shí)基礎(chǔ)182
2.6.2 knapsack密碼系統(tǒng)186
2.6.3 NTRU密碼系統(tǒng)188
2.6.4 基于Lattice的一些攻擊場(chǎng)景191
第3章 逆向工程194
3.1 初識(shí)逆向工程194
3.1.1 逆向工程基礎(chǔ)194
3.1.2 匯編語言基礎(chǔ)196
3.1.3 Windows逆向工程198
3.1.4 Linux逆向工程206
3.2 逆向工程進(jìn)階207
3.2.1 逆向工程常用算法207
3.2.2 代碼保護(hù)技術(shù)210
3.2.3 工具的高級(jí)應(yīng)用217
3.2.4 Hook和DLL注入技術(shù)230
3.2.5 現(xiàn)代逆向工具237
3.3 高級(jí)語言逆向241
3.3.1 Python語言逆向241
3.3.2 .NET程序逆向245
3.3.3 WebAssembly程序逆向254
3.3.4 Go程序逆向256
3.3.5 Rust程序逆向272
3.4 Android平臺(tái)逆向工程277
3.4.1 Android靜態(tài)分析277
3.4.2 Android動(dòng)態(tài)分析279
3.4.3 Android代碼保護(hù)技術(shù)282
3.4.4 Android Hook和脫殼技術(shù)283
3.5 逆向工程心得與逆向?qū)W習(xí)285
3.5.1 關(guān)于逆向心得285
3.5.2 關(guān)于逆向?qū)W習(xí)286
第4章 Pwn方向288
4.1 Pwn基礎(chǔ)288
4.1.1 常用三大工具288
4.1.2 Linux基礎(chǔ)295
4.1.3 Glibc內(nèi)存管理機(jī)制306
4.2 Pwn初探309
4.2.1 棧漏洞309
4.2.2 格式化字符串漏洞318
4.2.3 堆漏洞331
4.2.4 整數(shù)漏洞341
4.3 Pwn進(jìn)階342
4.3.1 棧相關(guān)技巧342
4.3.2 格式化字符串漏洞352
4.3.3 堆漏洞361
4.3.4 IO_FILE利用371
4.3.5 特殊場(chǎng)景下的Pwn375
第5章 隱寫術(shù)390
5.1 圖片隱寫390
5.1.1 在文件結(jié)構(gòu)上直接附加信息390
5.1.2 LSB隱寫394
5.1.3 Exif395
5.1.4 盲水印396
5.2 音頻隱寫397
5.2.1 MP3隱寫397
5.2.2 音頻頻譜隱寫398
5.3 視頻隱寫399
5.4 其他載體的隱寫方式399
5.4.1 PDF隱寫399
5.4.2 DOC隱寫400
第6章 數(shù)字取證402
6.1 數(shù)字取證概述402
6.1.1 數(shù)字取證的發(fā)展402
6.1.2 數(shù)字取證規(guī)范和法律依據(jù)403
6.2 數(shù)字取證技術(shù)入門404
6.2.1 存儲(chǔ)與恢復(fù)404
6.2.2 Windows系統(tǒng)級(jí)取證通識(shí)406
6.2.3 UNIX/Linux系統(tǒng)級(jí)取證通識(shí)409
6.2.4 Mac OS系統(tǒng)級(jí)取證通識(shí)411
6.3 數(shù)字取證技術(shù)實(shí)務(wù)進(jìn)階414
6.3.1 文件結(jié)構(gòu)分析與恢復(fù)414
6.3.2 鏡像還原與仿真417
6.3.3 內(nèi)存取證高級(jí)分析417
6.3.4 數(shù)字取證實(shí)戰(zhàn)分析423
第7章 代碼審計(jì)431
7.1 Java反序列化漏洞431
7.1.1 Java反序列化漏洞原理431
7.1.2 Ysoserial工具介紹437
7.1.3 CTF Java Web題目詳解438
7.2 Python審計(jì)方向440
7.2.1 常見漏洞審計(jì)440
7.2.2 進(jìn)階漏洞審計(jì)445
7.2.3 自動(dòng)化代碼審計(jì)451
第8章 智能合約安全455
8.1 合約工具配置455
8.1.1 區(qū)塊鏈與以太坊455
8.1.2 基礎(chǔ)工具配置456
8.1.3 Remix的使用456
8.1.4 Etherscan的使用459
8.2 合約常見漏洞461
8.2.1 無符號(hào)整數(shù)溢出461
8.2.2 假充值漏洞462
8.2.3 跨合約調(diào)用463
8.2.4 call漏洞合約464
8.2.5 短地址攻擊465
8.2.6 重入攻擊467
8.2.7 tx.origin身份認(rèn)證漏洞469
8.2.8 可控隨機(jī)數(shù)470
8.2.9 異常紊亂漏洞470
8.3 CTF題目分析471
8.3.1 內(nèi)聯(lián)匯編471
8.3.2 區(qū)塊鏈生態(tài)類475
8.4 智能合約漏洞分析實(shí)戰(zhàn)477
8.4.1 整數(shù)溢出造成的合約攻擊477
8.4.2 跨合約調(diào)用漏洞造成的攻擊477
第9章 工控安全479
9.1 工業(yè)控制系統(tǒng)概述479
9.1.1 基本概念和主要元件479
9.1.2 工業(yè)控制系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)481
9.2 工業(yè)控制系統(tǒng)協(xié)議482
9.2.1 Modbus482
9.2.2 S7Comm489
9.2.3 DNP3490
9.3 EtherNet/IP491
9.3.1 BACnet491
9.3.2 OPC492
9.4 工業(yè)控制系統(tǒng)編程493
9.4.1 PLC編程493
9.4.2 HMI編程508
9.5 工業(yè)控制系統(tǒng)逆向512
9.5.1 固件逆向512
9.5.2 VxWorks內(nèi)核機(jī)制分析519
9.5.3 GoAhead Web Server執(zhí)行流程
分析522
9.6 工業(yè)控制系統(tǒng)滲透527
9.6.1 工控網(wǎng)絡(luò)特點(diǎn)527
9.6.2 資產(chǎn)探測(cè)530
9.6.3 漏洞利用533
第10章 物聯(lián)網(wǎng)安全535
10.1 物聯(lián)網(wǎng)基礎(chǔ)理論535
10.1.1 ARM535
10.1.2 MIPS538
10.2 物聯(lián)網(wǎng)安全分析539
10.2.1 仿真環(huán)境搭建539
10.2.2 固件的提取、解密和分析545
10.2.3 分析調(diào)試工具549
10.3 相關(guān)漏洞原理550
10.3.1 Web漏洞550
10.3.2 緩沖區(qū)溢出551
10.3.3 后門559
10.4 漏洞分析559
10.4.1 Web漏洞560
10.4.2 緩沖區(qū)溢出569
10.4.3 內(nèi)置后門及后門植入574
第11章 車聯(lián)網(wǎng)安全578
11.1 什么是車聯(lián)網(wǎng)578
11.2 車聯(lián)網(wǎng)安全競(jìng)賽579
11.2.1 總線逆向破解580
11.2.2 線上奪旗賽591
11.2.3 實(shí)車漏洞挖掘594
11.3 車聯(lián)網(wǎng)安全實(shí)戰(zhàn)596
11.3.1 TBOX安全596
11.3.2 車機(jī)安全603
11.3.3 充電樁安全615