CTF入門
轉載:
CTF簡介:
CTF(Capture The Flag)中文一般譯作奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式。
CTF起源于1996年DEFCON全球黑客大會,以代替之前黑客們通過互相發起真實攻擊進行技術比拼的方式。
發展至今,已經成為全球范圍網絡安全圈流行的競賽形式,2013年全球舉辦了超過五十場國際性CTF賽事。
而DEFCON作為CTF賽制的發源地,DEFCON CTF也成為了目前全球最高技術水平和影響力的CTF競賽,類似于CTF賽場中的“世界杯” 。
CTF靶場:CTF刷題,在校生備戰CTF比賽,信安入門、提升自己、豐富簡歷之必備(一場比賽打出好成績,可以讓你輕松進大廠,
如近期的各種CTF杯),在職人員可以工作意外提升信安全技能。
滲透實戰靶場:挖洞、滲透實戰(web、域、橫向滲透),適合實戰能力需要大幅度提升的同學。
一、CTF入門
1.1、CTF常識
CTF(Capture The Flag,奪旗賽)起源于 1996 年 DEFCON 全球黑客大會,是網絡安全愛好者之間的競技游戲。
CTF 競賽涉及眾多領域,內容繁雜。
CTF是一種流行的信息安全競賽形式,其英文名可直譯為“奪得Flag”,也可意譯為“奪旗賽”。
其大致流程是,參賽團隊之間通過進行攻防對抗、
程序分析等形式,率先從主辦方給出的比賽環境中得到一串具有一定格式的字符串或其他內容,并將其提交給主辦方,從而奪得分數。
為了方便稱呼,我們把這樣的內容稱之為“Flag”。
CTF比賽知識范圍大致分為:
Web安全、PWN(二進制安全)、Reverse(逆向破解)、Crypto(密碼學安全)、Forensics(數字取證)、Misc(雜項)
Web安全
CTF中的Web題型,就是給定一個Web網站,選手要根據題目所提示的信息,找到網站上的flag字符串。
做題的方法類似于滲透測試,
但通常不會是一個完整的滲透測試,而是用到滲透測試中的某一個或某幾個環節。
可能涉及信息搜集、各類漏洞發現與利用、權限提升等等。
為了獲取flag,可能需要拿到管理員權限,數據庫權限,甚至獲取網站所在服務器的權限。
所需知識:
語言:PHP、Python、JavaScript…
數據庫:MySQL、MSSQL…
服務器:Apache、Nginx…
Web框架:ThinkPHP、Flask…
語言特性:弱類型、截斷…
函數特性:is_numeric、strcmp等;
PWN
PWN在安全領域中指的是通過二進制/系統調用等方式獲得目標主機的 shell。
CTF 中主要考察二進制漏洞的發掘和利用,需要對計算機操作系統底層 有一定的了解。
在 CTF 競賽中,PWN 題目主要出現在 Linux 平臺上。
所需知識: C/C++編程語言基礎、編譯原理、匯編、反匯編、操作系統、加密與解密、堆棧原理、棧溢出、堆溢出…
Reverse
CTF之REVERSE題目涉及到軟件逆向、破解技術等,要求有較強的反匯編、反編譯扎實功底。
需要掌握匯編,堆棧、寄存器方面的知識。有好的邏輯思維能力。
主要考查參賽選手的逆向分析能力。
所需知識: 匯編、反匯編、堆棧、調試器、代碼分析、OllyDBG、IDA等
Crypto
CTF之CRYPTO部分題目考察各種加解密技術,包括古典加密技術、現代加密技術甚至出題者自創加密技術。
所需知識: 數學知識、密碼編制、密碼破解、古典密碼、現代密碼、密碼分析;
Forensics
CTF之FORENSICS包括文件格式分析,隱寫術,內存轉儲分析或網絡數據包捕獲分析,
提取靜態數據文件中隱藏的信息的任何挑戰都可以歸為這一類
所需知識: 數據恢復、磁盤取證、內存取證、流量分析、文件隱寫;
Misc
就是除上述之外的亂七八糟的網絡安全范圍內的東西,英文全稱為 Miscellaneous,
意思是混雜的、各種各樣的。MISC 題通 常包括文件分析、圖像隱寫、數據搜索、內存鏡像分析和流量分析等。
題型多樣,腦洞大,趣味性強是 MISC 題型的主要特點。
所需知識: 信息隱藏、文件格式、內存鏡像、流量分析、數據分析、社會工程等;
1.2、CTF競賽模式
解題模式(Jeopardy)
在解題模式CTF賽制中,參賽隊伍可以通過互聯網或者現場網絡參與。
這種模式的CTF競賽與ACM編程競賽、信息學奧賽類似,
以解決網絡安全技術挑戰題目的分值和時間來排名,通常用于在線選拔賽,選手自由組隊(人數不受限制)。
題目主要包含六個類別:RE逆向工程、Pwn漏洞挖掘與利用、Web滲透、Crypto密碼學、Mobile移動安全和Misc安全雜項。
攻防模式(Attack-Defense)
在攻防模式CTF賽制中,參賽隊伍在網絡空間互相進行攻擊和防守,
通過挖掘網絡服務漏洞并攻擊對手服務來得分,
通過修補自身服務洞進行防御來避免丟分。
攻防模式通常為線下賽,參賽隊伍人數有限制(通常為3到5人不等),
可以實時通過得分反映出比賽情況,最終也以得分直接分出勝負。
這是一種競爭激烈、具有很強觀賞性和高度透明性的網絡安全賽制。
在這種賽制中,不僅僅是比參賽隊員的智力和技術,也比體力(因為比賽一般都會持續48小時及以上),同時也比團隊之間的分工配合與合作。
混合模式(Mix)
結合了解題模式與攻防模式的CTF賽制,主辦方會根據比賽的時間、進度等因素來釋放需解答的題目,題目的難度越大,解答完成后獲取的分數越高。參賽隊伍通過解題獲取一些初始分數,然后通過攻防對抗進行得分增減的零和游戲,最終以得分高低分出勝負。采用混合模式CTF賽制的典型代表如iCTF國際CTF競賽。
二、CTF賽事發布網站
i春秋: https://www.ichunqiu.com/competition
XCTF社區:https://time.xctf.org.cn
CTFwiki(入門必看wiki): https://ctf-wiki.github.io/ctf-wiki/#/introduction
CTFrank: https://ctfrank.org/
CTFtime(基本都是國外的): https://ctftime.org
三、CTF在線靶場
1、BugkuCTF(經典靶場,難度適中,適合入門刷題,題量大)
https://ctf.bugku.com/
2、北京聯合大學BUUCTF(新靶場,難度中上,搜集了很多大賽原題)
https://buuoj.cn/
3、CTFSHOW:(新靶場,題量大,很多大賽會從中抽原題)
https://ctf.show/challenges
4、XCTF攻防世界:
https://adworld.xctf.org.cn/task
上面4個靶場是我常去的,BugkuCTF很久以前就刷了一遍,
BUUCTF刷了有70%,CTFSHOW最近一直在刷,XCTF攻防世界以前有內網滲透實驗,現在主要上去刷CTF。
5、實驗吧:
http://www.shiyanbar.com(2017年刷過一遍,目前站一直更新)
**6、安恒周周練:**https://www.linkedbyx.com/home
7、XSS專練:https://xss.haozi.me/tools/xss-encode/
8、南京郵電大學CTF網絡攻防訓練平臺: http://ctf.nuptzj.cn/
9、網絡信息安全實驗平臺 http://hackinglab.cn/index.php
四、漏洞靶場
1. DVWA(必練):Web安全入門必刷的靶場,包含了最常見的web漏洞,界面簡單易用,
通過設置不同的難度,可更好地理解漏洞的原理及對應的代碼防護
http://www.dvwa.co.uk
2. Sqli-Labs(必練):一個印度大神程序員寫的,用來學習sql注入的一個游戲教程,目前65關,沖關過程中學注入。
https://github.com/Audi-1/sqli-labs
3. Upload-labs(必練):一個和sqli-labs類似的靶場平臺,專門學習文件上傳的,目前21關。
https://github.com/c0ny1/upload-labs
4. BWVS(老版本bugku的離線版):
https://github.com/bugku/BWVS
5. BWAPP:
https://sourceforge.net/projects/bwapp
6. WAVSEP:
https://github.com/sectooladdict/wavsep
7. VulnStack:
http://vulnstack.qiyuanxuetang.net/vuln
8. Webug 3.0:
https://pan.baidu.com/s/1eRIB3Se
9. Metasploitable:
https://github.com/rapid7/metasploitable3
10. DVWA-WooYun:
https://sourceforge.net/projects/dvwa-wooyun
11. OWASP Mutillidae:
https://sourceforge.net/projects/mutillidae
12. Web for Pentester:
https://www.pentesterlab.com/exercises/web_for_pentester
五、滲透實戰靶場
1、Vulhub: (各種漏洞環境集合,一鍵搭建漏洞測試靶場)
https://vulhub.org/(在線版)
https://github.com/vulhub/vulhub(離線版)
2、vulnhub:(國外實戰靶場,適合入門提高)
https://www.vulnhub.com/
3、vulnstack(紅隊實戰靶場,域、橫向滲透、多層網絡,強烈推薦,目前共7個靶場,網上writeup齊全)
http://vulnstack.qiyuanxuetang.net/vuln/#
4、WebGoat(WEB漏洞測試和練習)
https://github.com/WebGoat/WebGoat
5、Web For Pentester(web漏洞檢測技術)
https://www.pentesterlab.com
6、VulApps(快速搭建各種漏洞環境與安全工具環境)
http://vulapps.evalbug.com/
7、bWAPP(集成了各種常見漏洞和最新漏洞的開源Web應用程序)
http://www.itsecgames.com/
8、btslab(不同類型的Web應用程序漏洞)
https://github.com/CSPF-Founder/btslab/
9、pikachu(一個好玩的Web安全-漏洞測試平臺)
https://github.com/zhuifengshaonianhanlu/pikachu
版權聲明:本文為博主程序員鬼鬼原創文章。
原文鏈接:https://blog.csdn.net/shanguicsdn111/article/details/142467668