-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

CTF競賽權威指南(Pwn篇)

( 簡體 字)
作者:楊超類別:1. -> 安全 -> 網路安全 -> 駭客攻擊與入侵
譯者:
出版社:電子工業出版社CTF競賽權威指南(Pwn篇) 3dWoo書號: 53809
詢問書籍請說出此書號!

缺書
NT售價: 695

出版日:12/1/2020
頁數:726
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121399527
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序

近年來,在黨和國家的高度重視下,網絡安全行業發展迅猛,吸引了大批年輕學子和有志青年投身其中。2015年,“網絡空間安全”正式成為“工學”門類下的一級學科,與此同時,不論是在高校、還是企事業單位中,CTF等類型的信息安全競賽也開始蓬勃發展,通過競賽涌現出了一大批高手、能手。但是競賽中各個模塊間的發展程度卻參差不齊。相對而言,Web、Misc等模塊發展較快,參與的選手也較多;二進制安全相關模塊,如Reverse(逆向)、Mobile(此處指移動安全)等模塊的選手相對就少些,而其中的Pwn模塊,則參賽選手最少。究其原因,主要是因為相對其他模塊,二進制安全相關模塊的學習曲線更陡峭,要求選手對系統的理解更為深入。

市面上安全相關的書籍、教程汗牛充棟,與漏洞主題相關的卻屈指可數。在這些書籍中,由于作者本身都是從事漏洞發掘工作的,所以相關案例多以Windows平臺下的各種軟件漏洞為主,其他平臺為輔。但Windows平臺本身內部實現機制就比較復雜,相關文檔不多,且有的軟件自身還會有自己私有的內存管理方法(比如微軟的Office軟件),在開始學習相關技能之前,所需要掌握的相關前置背景知識就夠人喝一壺了。

本書另辟蹊徑,利用歷屆的CTF真題,以x86/x64平臺下Linux系統中的Pwn樣題為例,講述漏洞利用的基本方法和技巧。由于Linux系統本身就是一個開源系統,相關文檔也比較齊全,因此,在這個平臺上容易把問題講透。把基本功練扎實了,再去學習其他平臺上的漏洞利用技術,必將起到事半而功倍的效果。此外,當前被廣泛使用的Android等操作系統本身就是Linux系統的變種,相關技術也很容易移植到這些系統的漏洞發掘利用中去。

本書的作者是業內后起之秀。書中所用的例子貼近CTF實戰,講解詳盡,思路清晰,非常有助于讀者理解和學習。
本書的審校者——吳石老師率領的騰訊eee戰隊——曾多次斬獲國內外高等級競賽的大獎,相關經驗非常豐富。
本書為廣大學子和從業人員學習漏洞利用技術知識提供了有益的指導。相信有志學習者,經過認真鉆研,必能早日登堂入室,為我國網絡安全事業的發展添磚加瓦。
——崔孝晨,《Python絕技:運用Python成為頂級黑客》、《最強Android書:架構大剖析》譯者


時間回到2017年7月。
隨著信息安全的發展,CTF競賽開始引人關注。這種有趣的競賽模式非常有助于技術切磋和快速學習。在西電信安協會(XDSEC)學長的帶領下,當時的我已經接觸CTF賽題有較長時間了。由于當時網上還沒有比較完善和系統的資料,本著開源精神、自利利他的目的,我在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月于北京
內容簡介:

本書專注于Linux二進制安全。全書包含12章,從二進制底層開始,結合源碼詳細分析了常見的二進制安全漏洞、緩解機制以及漏洞利用方法,并輔以分析工具和環境搭建的講解。本書在素材的選擇上較為連續、完整,每個知識點均配以經典例題,并花費了大量篇幅深入講解,以最大程度地還原分析思路和解題過程。讀者完全可以依據本書自主、系統性地學習,達到舉一反三的效果。本書主要面向CTF初學者,也適合對CTF感興趣的人群學習。
目錄:

第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
序: