關(guān)于我們
書單推薦
新書推薦
|
CTF那些事兒 讀者對象:網(wǎng)絡(luò)安全研究人員
本書創(chuàng)新性的提出新的CTF知識學(xué)習(xí)框架,按照安全雜項入門、隱寫術(shù)、Web滲透、密碼學(xué)基礎(chǔ)、軟件逆向工程、二進制程序漏洞利用(PWN)的順序構(gòu)建知識體系,每節(jié)附有大量實操練習(xí),即使是完全沒有網(wǎng)絡(luò)安全基礎(chǔ)的“新人”,也能對照書中操作,獨立復(fù)現(xiàn)實驗內(nèi)容。
本書由北航Lancet戰(zhàn)隊核心成員傾力編寫,根據(jù)多年來的CTF競賽和培訓(xùn)經(jīng)驗,總結(jié)了全新的CTF知識學(xué)習(xí)框架,按照安全雜項、隱寫術(shù)、密碼學(xué)、Web滲透、軟件逆向工程、二進制程序漏洞利用(PWN)、工業(yè)控制系統(tǒng)安全的順序安排章節(jié)內(nèi)容,每章中附有大量案例和實操練習(xí)。任何網(wǎng)絡(luò)安全初學(xué)者都可以對照書中的講解,系統(tǒng)學(xué)習(xí)CTF相關(guān)的知識并進行實踐,熟練掌握相關(guān)的技術(shù)、工具和比賽技巧。本書適合作為CTF競賽參賽者的訓(xùn)練教材和培訓(xùn)材料,也適合作為網(wǎng)絡(luò)安全技術(shù)人員培訓(xùn)教程或技術(shù)參考書。
前 言
為什么寫這本書 CTF(Capture The Flag)一般翻譯為“奪旗”,起源于古代的戰(zhàn)爭,后來逐漸轉(zhuǎn)變?yōu)闅W美的一種傳統(tǒng)運動。在網(wǎng)絡(luò)空間安全領(lǐng)域,CTF已經(jīng)成為一種重要的競賽形式。 CTF比賽是快速提升網(wǎng)絡(luò)安全實戰(zhàn)技能的重要途徑,已成為各個行業(yè)選拔網(wǎng)絡(luò)安全人才的通用方法。但是,本書作者在從事CTF培訓(xùn)的過程中,發(fā)現(xiàn)存在幾個突出的問題: 1)線下CTF比賽培訓(xùn)中存在嚴(yán)重的“最后一公里”問題,線下培訓(xùn)講師的水平參差不齊。 2)國內(nèi)高等院校和職業(yè)院校的網(wǎng)絡(luò)空間安全學(xué)科與專業(yè)缺乏實戰(zhàn)型、系統(tǒng)化的教材和配套實驗課程。例如,Base64編碼是網(wǎng)絡(luò)安全行業(yè)的基礎(chǔ)知識,但是學(xué)校的教材并不涉及該知識點,也沒有專門的實驗課對該知識進行講解。 3)大部分CTF比賽書籍對想學(xué)習(xí)網(wǎng)絡(luò)空間安全技術(shù)的新人不夠友好,很多初學(xué)者找不到快速、有效的學(xué)習(xí)方法。 為了解決上述問題,幫助零基礎(chǔ)的學(xué)習(xí)者快速掌握基本技能,同時吸引更多的人關(guān)注網(wǎng)絡(luò)空間安全技能的學(xué)習(xí),推進CTF比賽的發(fā)展,本書創(chuàng)新性地提出新的CTF知識學(xué)習(xí)框架,并在每一章附有大量實操練習(xí),即使是沒有網(wǎng)絡(luò)空間安全知識基礎(chǔ)的新手,也能按照書中的操作獨立復(fù)現(xiàn)實驗內(nèi)容。 本書不僅講授了網(wǎng)絡(luò)空間安全相關(guān)的基礎(chǔ)知識和操作技能,還探討了CTF賽題的本質(zhì),著重闡述了面對不同類型題目時的分析思路和方法。比如,我們首次提出“圖像隱寫三板斧”“逆向真經(jīng)”等解題思維模式,并較為全面地總結(jié)了CTF比賽中對工控安全相關(guān)知識的考查方式。從線下培訓(xùn)的效果來看,這些方法的實用性極強。 網(wǎng)絡(luò)空間安全技術(shù)不應(yīng)該被神秘化,更不應(yīng)該被人為地高深化、復(fù)雜化。我們希望通過喜聞樂見的方式,以通俗易懂、幽默風(fēng)趣的語言普及網(wǎng)絡(luò)空間安全的知識,從而提高公眾的網(wǎng)絡(luò)空間安全意識,進而促進全行業(yè)水平的提高,為我國成為網(wǎng)絡(luò)安全強國打下堅實的基礎(chǔ)。 CTF比賽的意義 在一些人眼中,CTF比賽就是一種游戲,這種看法不無道理。一是因為絕大多數(shù)CTF賽題難以上升到高深的理論研究層面;二是受比賽時間與場景搭建等客觀條件的制約,CTF賽題的復(fù)雜度和運算量與現(xiàn)實的業(yè)務(wù)場景有巨大的差距。 古語有云:不以一眚掩大德。在作者看來,CTF比賽對于我國網(wǎng)絡(luò)安全行業(yè)發(fā)展具有舉足輕重的作用。 2015年,我國在高等院校正式設(shè)立“網(wǎng)絡(luò)空間安全”一級學(xué)科與專業(yè),經(jīng)過這些年的努力,專業(yè)建設(shè)取得了長足的發(fā)展,但是在課程和知識體系方面與傳統(tǒng)專業(yè)相比仍有不足。CTF比賽有利于促進高校網(wǎng)絡(luò)空間安全相關(guān)專業(yè)的課程體系建設(shè),并彌補教學(xué)過程中課程銜接不緊密帶來的“知識盲區(qū)”,尤其是那些教材中沒有出現(xiàn)但在實踐中經(jīng)常遇到的重要知識點。例如,通過學(xué)習(xí)軟件逆向分析技術(shù),讀者可以將匯編語言、編譯原理、數(shù)據(jù)結(jié)構(gòu)、C語言、操作系統(tǒng)、計算機體系結(jié)構(gòu)等課程中學(xué)到的知識融會貫通,綜合運用,從而為今后解決實際的網(wǎng)絡(luò)安全問題奠定堅實的基礎(chǔ)。 目前,國內(nèi)專業(yè)的網(wǎng)絡(luò)安全人才非常短缺,同時各個企業(yè)對于員工的網(wǎng)絡(luò)安全技能的要求與日俱增。與其他專業(yè)人員相比,網(wǎng)絡(luò)安全從業(yè)人員的工程實踐能力尤為重要。CTF比賽是網(wǎng)絡(luò)安全人才從小白到高手的演武廳與練兵場。通過參與CTF比賽,可以提高網(wǎng)絡(luò)安全實戰(zhàn)技能。CTF比賽可以快速提升能力,彌補學(xué)校教育中“重理論,輕實踐”的不足。大部分CTF題目不需要選手具備特別深入的理論知識,即使已經(jīng)忘記了相關(guān)的理論知識,通過CTF比賽的鍛煉,選手的網(wǎng)絡(luò)安全實戰(zhàn)技能仍可以有效提高,從而滿足企業(yè)日常在網(wǎng)絡(luò)安全方面的需求。 最后,在我國現(xiàn)行的法律制度下,CTF比賽是普及和學(xué)習(xí)網(wǎng)絡(luò)安全知識的有效途徑。隨著《中華人民共和國網(wǎng)絡(luò)安全法》的實施,網(wǎng)絡(luò)安全技術(shù)野蠻發(fā)展的時代一去不復(fù)返。但現(xiàn)階段網(wǎng)絡(luò)安全問題層出不窮,危害日益嚴(yán)重。CTF比賽不僅滿足了企業(yè)在真實場景下培養(yǎng)員工網(wǎng)絡(luò)安全技能的需求,也規(guī)避了網(wǎng)絡(luò)漏洞肆意傳播的危害。這也是越來越多的企業(yè)將CTF比賽作為員工內(nèi)部考核的主要方式的原因。 綜上所述,CTF比賽的重要特點是能夠快速、高效地培養(yǎng)出滿足當(dāng)前社會發(fā)展需求的網(wǎng)絡(luò)安全人才。 本書特色 1.提出了適合國內(nèi)讀者的網(wǎng)絡(luò)安全學(xué)習(xí)框架 CTF比賽起源于國外,很多學(xué)習(xí)資料也是由英文翻譯而來,但這些資料可能并不適合國內(nèi)學(xué)習(xí)者學(xué)習(xí)使用。本書根據(jù)國內(nèi)計算機學(xué)科與網(wǎng)絡(luò)空間安全學(xué)科的知識體系,按照安全雜項(隱寫)、密碼學(xué)基礎(chǔ)、Web滲透、軟件逆向工程、二進制程序漏洞利用(PWN)、工業(yè)控制系統(tǒng)安全的順序構(gòu)建知識框架。 之所以采用這樣的學(xué)習(xí)框架,是基于以下考慮:安全雜項方面的介紹以工具為主,適合新手快速學(xué)習(xí)和入門,其中的很多知識點也是其他方向的基礎(chǔ);密碼學(xué)在Web滲透、軟件逆向工程、PWN中極為常見,所以安排在安全雜項之后講解;Web滲透一直是網(wǎng)絡(luò)安全領(lǐng)域的熱點,因此放在密碼學(xué)之后學(xué)習(xí);接下來講解二進制程序的知識,先介紹軟件逆向分析,然后介紹二進制程序漏洞利用,因為越來越多的PWN題目要求先讀懂程序的邏輯,所以把逆向的知識放到PWN前面講解,而且把PWN部分分為兩章,主要包括棧漏洞利用、堆漏洞利用以及如何防護;最后介紹當(dāng)前比較火熱的工業(yè)控制系統(tǒng)安全。 2.零基礎(chǔ)高效掌握網(wǎng)絡(luò)安全技能 很多讀者對于學(xué)習(xí)網(wǎng)絡(luò)安全知識有畏難心理,為了幫助他們實現(xiàn)網(wǎng)絡(luò)安全基礎(chǔ)知識和實操技能從“0”到“1”的突破,本書提供了適當(dāng)?shù)墓ぞ吆拓S富的例題,這些例題代表性強,實操方便,有助于讀者理解書中講授的知識點。為方便初學(xué)者,每個例題都給出了詳細的思路和解題步驟。雖然書中用到的一些工具可能已經(jīng)不是網(wǎng)絡(luò)安全實踐中的主流工具,但對于新手而言,這些工具仍有十分重要的示范意義。本書的目的是介紹CTF比賽的基本知識和實操技能,因此并沒有加入較多“炫技”的內(nèi)容。希望讀者通過本書的學(xué)習(xí),打下牢固的基礎(chǔ),進而能夠自學(xué)網(wǎng)絡(luò)安全中更高級的內(nèi)容。 誰適合讀這本書 本書適合以下讀者閱讀: 1)想系統(tǒng)學(xué)習(xí)網(wǎng)絡(luò)安全基礎(chǔ)技能的讀者。本書作者的初衷,是希望以通俗易懂的方式呈現(xiàn)網(wǎng)絡(luò)安全基礎(chǔ)知識和技能,凡是對網(wǎng)絡(luò)安全感興趣的人都可以學(xué)習(xí)本書。 2)政府機關(guān)、事業(yè)單位、國企及其他企業(yè)的技術(shù)人員。對于各類企業(yè)中需要參加CTF比賽的讀者而言,本書可以作為賽前訓(xùn)練的指導(dǎo)書,幫助他們在短時間內(nèi)快速掌握網(wǎng)絡(luò)安全技能。 3)高等院校和職業(yè)院校學(xué)生。對于高等院校和職業(yè)院校的學(xué)生,本書可以作為他們學(xué)習(xí)網(wǎng)絡(luò)安全知識的“準(zhǔn)教材”,有效補充理論知識與實操技能的不足。 4)網(wǎng)絡(luò)安全培訓(xùn)和比賽從業(yè)人員。我們希望拋磚引玉,使本書成為網(wǎng)絡(luò)安全培訓(xùn)的基礎(chǔ)教材和重要參考書,促進CTF比賽和培訓(xùn)行業(yè)的進一步發(fā)展。 如何使用和閱讀這本書 本書提供所有例題需要的工具包和腳本等資源,以方便讀者自行練習(xí)。根據(jù)本書的章節(jié)結(jié)構(gòu),每節(jié)的例題會單獨保存為一個文件夾。例如,第1章的1.1.1節(jié)Base64編碼中,有例題b64steg.txt,這個例題保存的路徑為:/CTF那些事兒/題目/第1章例題/1-1/b64steg.txt。其他題目的路徑以此類推。讀者可以到出版社網(wǎng)站下載上述資源,或發(fā)郵件至jsjed@hz.cmpbook.com索取本書資源。 考慮到例題中所使用的工具或腳本在CTF比賽中有一定的廣泛性和適用性,因此工具和腳本按照題目類型分文件夾保存,方便讀者后續(xù)使用。例如,第1章和第2章均屬于安全雜項(MISC)范疇,這兩章例題所對應(yīng)的工具都在文件夾“/CTF那些事兒/工具包/MISC-工具包.zip/”中。例題b64steg.txt所使用的解題腳本b64steg.py就在上述文件夾中。 由于本書主要講解CTF比賽的初級知識,因此提供的工具和腳本對于大部分簡單和中等難度題目有較好的效果,但并不能保證可以解答所有的CTF比賽題目。如果題目難度較大或考點和書中例題不一致,我們建議讀者根據(jù)題目需求修改工具包中的腳本,千萬不要生搬硬套。 另外,本書盡可能詳盡地給出操作步驟的截圖和說明,讀者最好能對照例題講解進行同步實踐,從而深入理解解題思路和相關(guān)工具的使用方法。 本書涉及的知識和技術(shù)與真實世界中的網(wǎng)絡(luò)攻防息息相關(guān),希望讀者在學(xué)習(xí)了相關(guān)內(nèi)容后,能夠進一步提高網(wǎng)絡(luò)防御能力,在實踐中切實維護單位或企業(yè)的網(wǎng)絡(luò)安全,為我國的網(wǎng)絡(luò)安全建設(shè)添磚加瓦。 編寫分工 本書由北京航空航天大學(xué)的Lancet網(wǎng)絡(luò)安全戰(zhàn)隊傾力打造。Lancet戰(zhàn)隊指導(dǎo)老師李舟軍任本書主編,負責(zé)本書總體策劃和編寫組織工作,并審校全稿。Lancet戰(zhàn)隊的主力隊員趙宇飛、王宇、張翼鵬和楊立群分別負責(zé)各章的編寫。本書共有9章,各章的主要內(nèi)容介紹如下: 第0章?主要介紹CTF比賽的歷史、CTF比賽的賽制、國內(nèi)外知名的CTF比賽和戰(zhàn)隊,以及閱讀本書前需要準(zhǔn)備的相關(guān)實驗環(huán)境。該章由李舟軍、趙宇飛撰寫。 第1章?講解常見的安全雜項題目類型和解題方法。 第2章?介紹安全雜項中隱寫部分的相關(guān)知識,重點介紹“圖像隱寫三板斧”解題套路。 第1章和第2章由趙宇飛撰寫。 第3章?介紹CTF比賽中的密碼學(xué)知識體系,以及常見密碼的加密過程和破解方法。其中,3.0節(jié)、3.1.0節(jié)至3.1.10節(jié)由趙宇飛撰寫,3.1.11節(jié)及之后的內(nèi)容由王宇撰寫。 第4章?介紹Web滲透的基礎(chǔ)知識、常見漏洞類型和工具。該章由張翼鵬撰寫。 第5章?講述軟件逆向工程的原理和常用工具,并提出了解決逆向問題的原則性方法—逆向真經(jīng)。該章由趙宇飛撰寫。 第6章?重點講解棧溢出原理、棧漏洞利用以及格式化字符串漏洞。 第7章?針對堆的結(jié)構(gòu)和漏洞利用方法展開介紹,并介紹如何對二進制程序打補丁。 第6章和第7章由王宇撰寫。 第8章?介紹工業(yè)控制系統(tǒng)的基礎(chǔ)概念、梯形圖和指令表等PLC編程語言基礎(chǔ)知識、常見工業(yè)控制通信協(xié)議以及PLC漏洞利用。該章由楊立群撰寫。 本書的出版離不開許多朋友的大力幫助,他們是翟優(yōu)、董浩、梁明月、邢浩、原銘、謝子鳴、楊琛、簡容和羅杰,在這里向他們表示衷心感謝。 由于作者水平有限,書中的錯誤在所難免,懇請各位讀者批評指正。 接下來,沿用我國傳統(tǒng)戲曲中的表演程序,以兩首定場詩開啟我們的CTF之旅!這兩首詩蘊含了CTF學(xué)習(xí)方法的要義,希望各位讀者在學(xué)習(xí)過程中仔細體會。祝大家閱讀 愉快! 四?v橫先筑基, 三千世界任翱翔
前言
第0章 開啟CTF之旅 1 0.0 CTF比賽的歷史 1 0.1 CTF比賽的常見賽制 1 0.2 國內(nèi)外知名的CTF比賽 3 0.3 國內(nèi)外知名的CTF戰(zhàn)隊 4 0.4 學(xué)習(xí)前的實驗環(huán)境準(zhǔn)備 7 0.4.0 虛擬機運行軟件 7 0.4.1 搭建Python腳本運行環(huán)境 9 0.4.2 搭建Docker使用環(huán)境 11 第1章 安全雜項 12 1.0 安全雜項類賽題簡介 12 1.1 常見的編碼與解碼 13 1.1.0 ASCII編碼 13 1.1.1 Base64編碼 15 1.1.2 Base32編碼 18 1.1.3 Base16編碼 19 1.1.4 其他Base系列編碼 19 1.1.5 Shellcode編碼 21 1.1.6 Quoted-printable編碼 22 1.1.7 UUencode編碼 22 1.1.8 XXencode編碼 23 1.1.9 URL編碼 24 1.1.10 摩斯碼 24 1.1.11 JSFuck編碼 25 1.1.12 Brainfuck編碼 26 1.1.13 編碼類題目的通用解題方法 28 1.2 網(wǎng)絡(luò)流量分析 30 1.2.0 網(wǎng)絡(luò)協(xié)議的基礎(chǔ)知識 31 1.2.1 Wireshark的基本使用方法 33 1.2.2 CTF流量分析的通用方法 42 1.2.3 ICMP 44 1.2.4 Telnet 45 1.2.5 FTP 47 1.2.6 DNS 48 1.2.7 HTTP 50 1.2.8 USB 59 1.2.9 TLS 60 1.2.10 IEEE 802.11 62 1.3 日志分析 65 1.3.0 Web日志及分析方法 65 1.3.1 系統(tǒng)設(shè)備日志及分析方法 70 1.4 電子取證分析 75 1.4.0 電子取證的常用技術(shù) 75 1.4.1 文件恢復(fù) 77 1.4.2 磁盤取證分析方法 79 1.4.3 內(nèi)存取證分析方法 81 1.5 壓縮文件格式與破解 84 1.5.0 ZIP壓縮包格式 84 1.5.1 偽加密 87 1.5.2 壓縮包密碼爆破 89 1.5.3 CRC碰撞破解壓縮包 91 1.5.4 已知明文攻擊 93 1.6 信息搜集與搜索引擎的高級用法 95 1.6.0 信息搜集方法 95 1.6.1 搜索引擎的高級用法 97 第2章 安全雜項——隱寫術(shù)專題 99 2.0 隱寫術(shù)簡介 99 2.1 圖像隱寫方法及信息提取 100 2.1.0 常見的圖像隱寫方法 101 2.1.1 PNG文件格式及隱寫方法 102 2.1.2 JPG文件格式及隱寫方法 106 2.1.3 GIF文件格式及隱寫方法 110 2.1.4 圖像隱寫三板斧 115 2.1.5 圖像隱寫三板斧2.0 124 2.1.6 圖像和像素值的轉(zhuǎn)換 133 2.2 音頻隱寫方法及信息提取 135 2.2.0 常見的音頻文件格式解析 135 2.2.1 基于波形圖的隱寫 137 2.2.2 基于頻譜圖的隱寫 138 2.2.3 音頻LSB隱寫 139 2.2.4 MP3文件隱寫 141 2.2.5 撥號音識別 144 2.2.6 音頻隱寫總結(jié) 146 2.3 視頻隱寫方法及信息提取 147 2.4 文本隱寫方法及信息提取 148 2.4.0 基于文本內(nèi)容的隱寫 149 2.4.1 基于Word文檔的隱寫 149 2.4.2 基于PDF文檔的隱寫 151 2.5 二維碼 155 2.5.0 QR碼的基礎(chǔ)知識和常用工具 156 2.5.1 QR碼畫圖 158 2.5.2 QR碼修復(fù) 159 第3章 密碼學(xué)基礎(chǔ) 161 3.0 密碼學(xué)簡介 161 3.1 古典密碼 165 3.1.0 柵欄密碼 165 3.1.1 凱撒密碼 169 3.1.2 ROT位移密碼 170 3.1.3 Atbash密碼 172 3.1.4 豬圈密碼 172 3.1.5 培根密碼 173 3.1.6 簡單替換密碼 175 3.1.7 仿射密碼 177 3.1.8 單表代換密碼總結(jié) 178 3.1.9 多表代換密碼 179 3.1.10 維吉尼亞密碼 179 3.1.11 希爾密碼 184 3.2 對稱密碼 185 3.2.0 對稱密碼的基本模型 185 3.2.1 流密碼和分組密碼的本質(zhì)區(qū)別 186 3.2.2 xor密碼 186 3.2.3 RC4 190 3.2.4 Feistel密碼結(jié)構(gòu) 191 3.2.5 DES 194 3.2.6 AES 195 3.2.7 填充 196 3.2.8 分組模式 197 3.3 非對稱密碼 206 3.3.0 RSA基礎(chǔ) 206 3.3.1 模數(shù)N相關(guān)攻擊 208 3.3.2 指數(shù)e相關(guān)攻擊 212 3.3.3 私鑰d相關(guān)攻擊 214 3.3.4 廣播攻擊 215 3.3.5 ECC基礎(chǔ) 217 3.3.6 ECC加密 218 3.3.7 Pohlig_Hellman攻擊 219 3.3.8 Smarts攻擊 220 3.4 哈希函數(shù) 221 3.4.0 哈希函數(shù)的基本模型 221 3.4.1 MD5 222 3.4.2 哈希長度擴展攻擊 223 第4章 Web滲透基礎(chǔ) 228 4.0 引言 228 4.0.0 概述 228 4.0.1 HTTP理論基礎(chǔ) 229 4.0.2 環(huán)境搭建與工具使用 234 4.1 Web信息收集的技巧 241 4.1.0 端口掃描 241 4.1.1 目錄探測 247 4.1.2 指紋識別 255 4.2 暴力破解 258 4.2.0 用戶名/密碼爆破 258 4.2.1 參數(shù)爆破 264 4.2.2 密鑰爆破 268 4.2.3 隨機數(shù)爆破 271 4.2.4 字典 275 4.3 PHP弱類型 277 4.3.0 PHP代碼基礎(chǔ) 277 4.3.1 PHP弱類型問題 280 4.4 上傳漏洞 283 4.4.0 前端JavaScript繞過 287 4.4.1 MIME-Type繞過 288 4.4.2 黑名單繞過 288 4.4.3 .htaccess繞過 289 4.4.4 后綴名繞過 290 4.4.5 圖片馬 291 4.4.6 其他類型的問題 296 4.5 SQL注入漏洞 297 4.5.0 SQL注入 297 4.5.1 SQL注入漏洞的分類 300 4.5.2 SQL注入漏洞實戰(zhàn) 301 4.5.3 SQLmap 307 4.5.4 寬字節(jié)注入 309 4.5.5 WAF繞過 310 4.5.6 利用SQL注入讀寫文件 313 4.5.7 報錯注入 314 4.6 文件包含 317 4.6.0 php://filter進階 321 4.6.1 文件包含的分類 322 4.6.2 文件包含中的截斷和phar:// 322 4.7 命令執(zhí)行 324 4.7.0 危險函數(shù) 332 4.7.1 無參數(shù)RCE 333 4.8 CSRF與XSS 338 4.8.0 CSRF 338 4.8.1 CSRF防御 340 4.8.2 XSS 341 4.9 SSRF 344 第5章 軟件逆向工程 347 5.0 軟件逆向工程簡介 347 5.0.0 軟件是怎么生成的 347 5.0.1 軟件逆向工程的定義及目標(biāo) 349 5.0.2 軟件逆向工程的發(fā)展歷史 349 5.1 CTF軟件逆向工程入門 350 5.1.0 逆向題目的特點 350 5.1.1 逆向真經(jīng) 351 5.2 靜態(tài)分析方法 352 5.2.0 靜態(tài)分析的原理和技巧 352 5.2.1 靜態(tài)分析的常用工具 355 5.2.2 靜態(tài)分析實戰(zhàn) 359 5.3 動態(tài)分析方法 383 5.3.0 動態(tài)調(diào)試的技巧 383 5.3.1 匯編 384 5.3.2 使用OllyDbg進行動態(tài)調(diào)試 392 5.3.3 使用GDB進行動態(tài)調(diào)試 399 5.3.4 使用IDA進行本地動態(tài)調(diào)試 403 5.3.5 使用IDA進行遠程動態(tài)調(diào)試 407 第6章 進入 PWN 的世界 410 6.0 PWN簡介 410 6.1 CTF中的PWN 410 6.2 棧溢出入門 414 6.2.0 認識棧結(jié)構(gòu) 415 6.2.1 函數(shù)調(diào)用過程分析 415 6.2.2 Linux操作系統(tǒng)的基本保護 ?機制 418 6.2.3 覆蓋返回地址 419 6.2.4 覆蓋返回地址到Shellcode 421 6.2.5 編寫單個函數(shù)的ROP鏈 423 6.2.6 編寫兩個函數(shù)的ROP鏈 427 6.2.7 編寫多個函數(shù)的ROP鏈 431 6.2.8 ret2syscall 433 6.2.9 用動態(tài)鏈接動態(tài)泄露system ?地址并利用 437 6.2.10 64位程序的棧溢出 442 6.2.11 未知遠程libc的解法 443 6.3 格式化字符串 443 6.3.0 格式化字符串的原理 443 6.3.1 格式化字符串漏洞的利用 446 6.3.2 通過格式化字符串漏洞泄露 ?棧上內(nèi)容 447 6.3.3 通過格式化字符串漏洞泄露 ?任意地址內(nèi)存 448 6.3.4 通過格式化字符串漏洞覆蓋 ?任意地址內(nèi)存 450 6.3.5 64位格式化字符串 456 6.3.6 格式化字符串的綜合利用 456 6.4 棧溢出進階技術(shù) 457 6.4.0 棧劫持 457 6.4.1 ropchain 463 6.4.2 Canary保護機制及其利用 ?方式 463 6.4.3 __libc_csu_init的利用方式 472 6.4.4 ret2_dl_runtime_resolve 474 6.5 棧溢出和格式化字符串總結(jié) 484 第7章 PWN進階 485 7.0 堆管理器 485 7.0.0 ptmalloc堆管理器的基本功能 485 7.0.1 malloc和free簡介 486 7.0.2 內(nèi)存分配背后的系統(tǒng)調(diào)用 487 7.1 堆相關(guān)的數(shù)據(jù)結(jié)構(gòu) 488 7.1.0 malloc_chunk 488 7.1.1 bin 490 7.1.2 fast bin 492 7.1.3 small bin 493 7.1.4 large bin 495 7.1.5 unsorted bin 496 7.1.6 bin 的總結(jié) 497 7.2 malloc的基本算法 497 7.2.0 __libc_malloc 497 7.2.1 fast bin分配算法 498 7.2.2 small bin分配算法 499 7.2.3 large bin分配算法1 500 7.2.4 unsorted bin分配算法 501 7.2.5 large bin分配算法2 503 7.2.6 尋找更大的bin鏈 504 7.2.7 使用top chunk 505 7.2.8 總結(jié) 506 7.3 free函數(shù)的基本算法 506 7.4 堆利用的基本方法 507 7.4.0 House of Prime 507 7.4.1 House of Lore 508 7.4.2 House of Spirit 509 7.4.3 House of Force 512 7.4.4 House of系列方法總結(jié) 514 7.5 鏈表攻擊 514 7.5.0 unlink 514 7.5.1 fast bin 攻擊 520 7.5.2 unsorted bin 攻擊 524 7.6 其他漏洞形式及其利用 526 7.6.0 off by one 527 7.6.1 off by null 530 7.6.2 fast bin 三重釋放攻擊 533 7.7 例題講解 536 7.8 tcache機制及其利用方式 542 7.8.0 tcache的重要數(shù)據(jù)結(jié)構(gòu)與 ?源碼解讀 542 7.8.1 tcache dup(glibc 2.27) 5
你還可能感興趣
我要評論
|