CTF(Capture The Flag)中文通常譯做奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式。CTF起源於1996年DEFCON全球黑客大會,以代替以前黑客們經過互相發起真實攻擊進行技術比拼的方式。發展至今,已經成爲全球範圍網絡安全圈流行的競賽形式,2013年全球舉辦了超過五十場國際性CTF賽事。而DEFCON做爲CTF賽制的發源地,DEFCON CTF也成爲了目前全球最高技術水平和影響力的CTF競賽,相似於CTF賽場中的「世界盃」php
CTF競賽模式python
單兵做戰:理論,雜項,web,pwn,逆向等各類題目ios
綜合靶場:團隊形式,攻擊相同環境的靶機,只需攻擊,不需防護,針對同一個環境,越早拿到flag越好git
混戰模式:參賽團隊便是攻擊者,也是防護者github
CTF知識點web
web:sql注入,xss,文件上傳,包含漏洞,xxe,ssrf,命令執行,代碼審計等算法
pwd:攻擊遠程服務器的服務,會提供服務程序的二進制文件,分析漏洞並編寫exp,棧溢出,堆溢出,繞過保護機制(ASLR,NX等)sql
reverse:逆向,破解程序的算法來獲得程序中的flag,對抗反調試,代碼混淆等shell
mobile:主要考察選手對安卓和ios系統的理解編程
misc:雜項,取證,編解碼,加解密,隱寫,圖片處理,壓縮包,編程......
雜項:
隱寫術(steganography):將信息隱藏在其餘載體中,不讓計劃的接收者以外的人獲取到信息
常見載體:
圖片:細微顏色差異,GIF圖多幀隱藏,exif信息隱藏,圖片修復等 ----解題工具 Stegsolve
音頻:信息隱藏在聲音裏(逆序),信息隱藏在數據裏(分析音頻數據) ----解題工具 Audition,Matlab
視頻:信息隱藏在視頻的某個或多個幀裏 ---解題工具 Premiere
文件隱寫:把多個文件拼接成一個 ---解題工具 binwalk
密碼學及編碼:
凱撒密碼(caeser):是一種最簡單且最廣爲人知的加密技術。它是一種替換加密的技術,明文中的全部字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,全部的字母A將被替換成D,B變成E,以此類推
加解密方法---
在線工具
python的pycipher模塊
pip install pycipher
>>> from pycipher import Caesar
>>> Caesar(key=5).encipher("XXSEC")
'CCXJH'
>>> Caesar(key=5).decipher("CCXJH")
'XXSEC'
>>>
ROT13(Rotate By 13 Places):能夠理解爲一種特殊的凱撒密碼,套用ROT13到一段文字上僅僅只須要檢查字元字母順序並取代它在13位以後的對應字母,有須要超過期則從新繞回26英文字母開頭便可。A換成N、B換成O、依此類推到M換成Z,而後序列反轉:N換成A、O換成B、最後Z換成M。只有這些出如今英文字母裏頭的字元受影響;數字、符號、空白字元以及全部其餘字元都不變。由於只有在英文字母表裏頭只有26個,而且26=2×13,ROT13函數是它本身的逆反
加解密方法---
在線工具
柵欄密碼(Rail Fence Cipher):把要加密的信息分紅N組,依次取各組的1,2,3....位
例:
明文:XSECHITMAN
分組:XSEC
HITMAN
密文:XHECITMAN(2欄)
加解密方法---
在線工具
弗吉尼亞密碼(Vigenere Cipher):維吉尼亞密碼是在凱撒密碼基礎上產生的一種加密方法,它將凱撒密碼的所有25種位移排序爲一張表,與原字母序列共同組成26行及26列的字母表。另外,維吉尼亞密碼必須有一個密鑰,這個密鑰由字母組成,最少一個,最多可與明文字母數量相等
例:
明文:XSEC
密鑰:XX
密文:UPBZ
加解密方法---
在線工具
腳本
對稱加密算法
特色:使用加密用過的密鑰及相同的逆算法對密文進行解密,才能使其恢復可讀明文,即加密解密使用相同的密鑰,
常見對稱加密算法:DES:3DES,AES等
加解密方法---
在線工具
豬圈密碼:豬圈密碼(亦稱朱高密碼、共濟會暗號、共濟會密碼或共濟會員密碼),是一種以格子爲基礎的簡單替代式密碼。即便使用符號,也不會影響密碼分析,亦可用在其它替代式的方法
加解密方法---
在線工具
培根密碼:加密時,明文中的每一個字母都會轉換成一組五個英文字母。其轉換依靠下表
加密者需使用兩種不一樣字體,分別表明A和B。準備好一篇包含相同AB字數的假信息後,按照密文格式化假信息,即依密文中每一個字母是A仍是B分別套用兩種字體。
加解密方法---
在線工具
編碼和摘要
加密:加密傳輸信息,保證信息的安全性,經過密鑰和密文能夠還原原始信息
編碼:將數據轉換成某種固定的格式的編碼信息,方便不一樣系統間的傳輸,經過編碼信息能夠獲得原始信息
散列:也叫摘要或哈希,驗證信息的完整性,不能經過哈希值還原原始信息
常見的編碼:ASCII,Base64,URL,HTML,Unicode,UTF-8,莫斯電碼,二維碼
隱寫術經常使用的工具
Stegsolve.jar:圖片隱寫術工具
010Editor/vim:查看16進制數
Photoshop:圖片拼接查看
Audition:音頻隱寫工具
常見密碼編碼工具
在線加解密工具
python腳本
CTF解密框架(https://github.com/0Chencc/CTFCrackTools)
Burp的Decoder模塊
取證技巧
流量分析:
wireshark:協議篩選,追蹤流,文件導出
電子取證:
日至分析經過日誌分析尋找隱藏在其中的信息
sql注入點的查找,webshell的查找,用戶訪問敏感路徑的查找
雜項題目解題思路
前期準備:
工具,知識
解題過程:判斷考點(單個考點?多個考點?)
造成思路(如未嘗試?什麼工具?)
距離答案只有一步之遙
友情連接 http://www.cnblogs.com/klionsec
http://www.cnblogs.com/l0cm
http://www.cnblogs.com/Anonyaptxxx
http://www.feiyusafe.cn