CTF 題目類型一般分為 Web 滲透、RE 逆向、Misc 雜項(xiàng)、PWN 二進(jìn)制漏洞利用、Crypto 密碼破譯。
一、Web類題目
在傳統(tǒng)的CTF線上比賽中,Web類題目是主要的題型之一,相較于二進(jìn)制、逆向等類型的題目,參賽者不需掌握系統(tǒng)底層知識(shí);相較于密碼學(xué)、雜項(xiàng)問題,不需具特別強(qiáng)的編程能力,故入門較為容易。Web類題目常見的漏洞類型包括注入、XSS、文件包含、代碼執(zhí)行、上傳、SSRF等。
信息搜集
前期的題目信息搜集可能對(duì)于解決CTF線上比賽的題目有著非常重要的作用
敏感目錄泄露
通過敏感目錄泄露,我們往往能獲取網(wǎng)站的源代碼和敏感的URL地址,如網(wǎng)站的后臺(tái)地址等。
比如:
- 攻擊者可以通過.git文件夾中的信息獲取開發(fā)人員提交過的所有源碼,進(jìn)而可能導(dǎo)致服務(wù)器被攻擊而淪陷。
- admin之類的敏感后臺(tái)文件夾
敏感備份文件
通過一些敏感的備份文件,我們往往能獲得某一文件的源碼,亦或網(wǎng)站的整體目錄等。
比如:vim的備份文件
常規(guī)文件
比如:
- robots.txt:記錄一些目錄和CMS版本信息。
- readme.md:記錄CMS版本信息,有的甚至有Github地址。
Banner識(shí)別
一個(gè)網(wǎng)站的Banner信息(服務(wù)器對(duì)外顯示的一些基礎(chǔ)信息)對(duì)解題有著十分重要的作用,選手往往可以通過Banner信息來獲得解題思路,如得知網(wǎng)站是用ThinkPHP的Web框架編寫時(shí),我們可以嘗試ThinkPHP框架的相關(guān)歷史漏洞。
SQL注入
而由于開發(fā)者在程序編寫過程中,對(duì)傳入用戶數(shù)據(jù)的過濾不嚴(yán)格,將可能存在的攻擊載荷拼接到SQL查詢語句中,再將這些查詢語句傳遞給后端的數(shù)據(jù)庫(kù)執(zhí)行,從而引發(fā)實(shí)際執(zhí)行的語句與預(yù)期功能不一致的情況。這種攻擊被稱為SQL注入攻擊。
SQL注入漏洞也是現(xiàn)實(shí)場(chǎng)景下最常見的漏洞類型之一。
SQL注入,包括數(shù)字型注入、UNION注入、字符型注入、布爾盲注、時(shí)間注入、報(bào)錯(cuò)注入和堆疊注入等注入方式。
任意文件讀取漏洞
所謂文件讀取漏洞,就是攻擊者通過一些手段可以讀取服務(wù)器上開發(fā)者不允許讀到的文件。
文件讀取漏洞常常意味著被攻擊者的服務(wù)器即將被攻擊者徹底控制。
SSRF漏洞
SSRF(Server Side Request Forgery,服務(wù)端請(qǐng)求偽造)是一種攻擊者通過構(gòu)造數(shù)據(jù)進(jìn)而偽造服務(wù)器端發(fā)起請(qǐng)求的漏洞。因?yàn)檎?qǐng)求是由內(nèi)部發(fā)起的,所以一般情況下,SSRF漏洞攻擊的目標(biāo)往往是從外網(wǎng)無法訪問的內(nèi)部系統(tǒng)。
SSRF漏洞形成的原因多是服務(wù)端提供了從外部服務(wù)獲取數(shù)據(jù)的功能,但沒有對(duì)目標(biāo)地址、協(xié)議等重要參數(shù)進(jìn)行過濾和限制,從而導(dǎo)致攻擊者可以自由構(gòu)造參數(shù),而發(fā)起預(yù)期外的請(qǐng)求。
命令執(zhí)行漏洞
通常情況下,在開發(fā)者使用一些執(zhí)行命令函數(shù)且未對(duì)用戶輸入的數(shù)據(jù)進(jìn)行安全檢查時(shí),可以注入惡意的命令,使整臺(tái)服務(wù)器處于危險(xiǎn)中。
XSS漏洞
跨站腳本(Cross-Site Scripting,XSS)是一種網(wǎng)站應(yīng)用程序的安全漏洞攻擊,是代碼注入的一種,允許惡意用戶將代碼注入網(wǎng)頁,其他用戶在觀看網(wǎng)頁時(shí)會(huì)受到影響。
根據(jù)XSS漏洞點(diǎn)的觸發(fā)特征,XSS可以粗略分為反射型XSS、存儲(chǔ)型XSS。
反射型XSS通常是指惡意代碼未被服務(wù)器存儲(chǔ),每次觸發(fā)漏洞的時(shí)候都將惡意代碼通過GET/POST方式提交,然后觸發(fā)漏洞。
存儲(chǔ)型XSS則相反,惡意代碼被服務(wù)器存儲(chǔ),在訪問頁面時(shí)會(huì)直接被觸發(fā)(如留言板留言等場(chǎng)景)。
Web文件上傳漏洞
文件上傳在Web業(yè)務(wù)中很常見,如用戶上傳頭像、編寫文章上傳圖片等。在實(shí)現(xiàn)文件上傳時(shí),如果后端沒有對(duì)用戶上傳的文件做好處理,會(huì)導(dǎo)致非常嚴(yán)重的安全問題,如服務(wù)器被上傳惡意木馬或者垃圾文件。
二、二進(jìn)制類題目
移動(dòng)端題目
CTF中的移動(dòng)端題目普遍偏少,Android類的題目主要偏向雜項(xiàng)(Misc)和逆向(Reverse)。
前者通常根據(jù)Android系統(tǒng)特性隱藏相關(guān)數(shù)據(jù),考察參賽者對(duì)系統(tǒng)特性的熟悉程度;
后者主要考察參賽者的Java、C/C++逆向能力,出題人常常會(huì)加入混淆(ollvm等)、加固、反調(diào)試等技術(shù),以增加應(yīng)用的逆向難度。這類題目往往需要參賽者具備一定的逆向和開發(fā)能力,熟悉常用調(diào)試逆向工具,知道常見反調(diào)試及加殼脫殼方法。
在CTF中,逆向工程一般是指軟件逆向工程,即對(duì)已經(jīng)編譯完成的可執(zhí)行文件進(jìn)行分析,研究程序的行為和算法,然后以此為依據(jù),計(jì)算出出題人想隱藏的flag。
一般,CTF中的逆向工程題目形式為:程序接收用戶的一個(gè)輸入,并在程序中進(jìn)行一系列校驗(yàn)算法,如通過校驗(yàn)則提示成功,此時(shí)的輸入即flag。
靜態(tài)分析
逆向工程的最基本方法是靜態(tài)分析,即不運(yùn)行二進(jìn)制程序,而是直接分析程序文件中的機(jī)器指令等各種信息。目前,靜態(tài)分析最常用的工具是IDA Pro。
動(dòng)態(tài)分析
所謂動(dòng)態(tài)分析,就是將程序?qū)嶋H運(yùn)行起來,觀察程序運(yùn)行時(shí)的各種行為,從而對(duì)程序的功能和算法進(jìn)行分析。這需要被稱為調(diào)試器的軟件,調(diào)試器可以在程序運(yùn)行時(shí)觀察程序的寄存器、內(nèi)存等上下文信息,還可以讓程序在指定的地址停止運(yùn)行等。
二進(jìn)制代碼保護(hù)和混淆
在現(xiàn)實(shí)生活中,攻與防的博弈無處不在。為了防止自己編寫的二進(jìn)制程序被逆向分析,許多軟件會(huì)采取各種手段,為程序加上重重壁壘。
二進(jìn)制代碼的保護(hù)手段種類繁多,且運(yùn)用極其靈活,例如:對(duì)匯編指令進(jìn)行一定程度的混淆變換,可以干擾靜態(tài)分析中的反匯編過程;在程序中穿插各種反調(diào)試技術(shù),能有效地抵御動(dòng)態(tài)分析;對(duì)程序中的關(guān)鍵算法進(jìn)行虛擬化保護(hù),可以給逆向工作者帶來極大的阻力。
符號(hào)執(zhí)行
符號(hào)執(zhí)行(Symbolic Execution)是一種程序分析技術(shù),可以通過分析程序來得到讓特定代碼區(qū)域執(zhí)行的輸入。
使用符號(hào)執(zhí)行分析一個(gè)程序時(shí),該程序會(huì)使用符號(hào)值作為輸入,而非一般執(zhí)行程序時(shí)使用的具體值。在達(dá)到目標(biāo)代碼時(shí),分析器可以得到相應(yīng)的路徑約束,然后通過約束求解器來得到可以觸發(fā)目標(biāo)代碼的具體值。
在實(shí)際環(huán)境下,符號(hào)執(zhí)行被廣泛運(yùn)用到了自動(dòng)化漏洞挖掘測(cè)試的過程中。
在CTF中,符號(hào)執(zhí)行很適合解決各種逆向題,只需讓符號(hào)執(zhí)行引擎自動(dòng)分析,找到讓程序執(zhí)行到輸出flag正確的位置,然后求解出所需的輸入即可。
二進(jìn)制插樁
插樁(Instrumentation)是在保證程序原有邏輯完整性的基礎(chǔ)上,在程序中插入探針,通過探針的執(zhí)行來收集程序運(yùn)行時(shí)信息的技術(shù)。
插樁往往用在以下兩方面:
- 程序分析,性能分析,錯(cuò)誤檢測(cè)、捕獲和重放。
- 程序行為模擬,改變程序的行為,模擬不支持的指令。
與源碼級(jí)插樁相比,二進(jìn)制插樁與語言無關(guān),不需要程序的源碼,也不需要重新編譯鏈接程序,它直接對(duì)程序的機(jī)器碼進(jìn)行插樁,因此在逆向工程和實(shí)際漏洞挖掘中一般可以使用二進(jìn)制插樁。
二進(jìn)制動(dòng)態(tài)插樁相對(duì)于二進(jìn)制靜態(tài)插樁更加強(qiáng)大,可以在程序運(yùn)行時(shí)進(jìn)行插樁,可以處理動(dòng)態(tài)生成的代碼,如加殼,適用的場(chǎng)景更加廣泛。
二進(jìn)制漏洞PWN
通過二進(jìn)制漏洞獲取計(jì)算機(jī)權(quán)限的方法或者過程被稱為PWN。
在CTF中,PWN主要通過利用程序中的漏洞造成內(nèi)存破壞以獲取遠(yuǎn)程計(jì)算機(jī)的shell,從而獲得flag。
PWN題目比較常見的形式是把一個(gè)用C/C++語言編寫的可執(zhí)行程序運(yùn)行在目標(biāo)服務(wù)器上,參賽者通過網(wǎng)絡(luò)與服務(wù)器進(jìn)行數(shù)據(jù)交互。因?yàn)轭}目中一般存在漏洞,攻擊者可以構(gòu)造惡意數(shù)據(jù)發(fā)送給遠(yuǎn)程服務(wù)器的程序,導(dǎo)致遠(yuǎn)程服務(wù)器程序執(zhí)行攻擊者希望的代碼,從而控制遠(yuǎn)程服務(wù)器。
逆向工程是PWN的基礎(chǔ),二者的知識(shí)結(jié)構(gòu)差不多。所以,有時(shí)會(huì)用二進(jìn)制安全來指代逆向工程和PWN。
三、密碼學(xué)題目
近年來,CTF中密碼學(xué)題目的難度不斷增大,占比也越來越高。相比于Web和二進(jìn)制,密碼學(xué)更考驗(yàn)參賽者的基礎(chǔ)知識(shí),對(duì)數(shù)學(xué)能力、邏輯思維能力與分析能力都有很高的要求。
??最后
?為了幫助大家更好的學(xué)習(xí)網(wǎng)絡(luò)安全,小編給大家準(zhǔn)備了一份網(wǎng)絡(luò)安全入門/進(jìn)階學(xué)習(xí)資料,里面的內(nèi)容都是適合零基礎(chǔ)小白的筆記和資料,不懂編程也能聽懂、看懂,所有資料共282G,朋友們?nèi)绻行枰拙W(wǎng)絡(luò)安全入門+進(jìn)階學(xué)習(xí)資源包,可以點(diǎn)擊免費(fèi)領(lǐng)取(如遇掃碼問題,可以在評(píng)論區(qū)留言領(lǐng)取哦)~
《網(wǎng)絡(luò)安全入門+進(jìn)階學(xué)習(xí)資源包》https://mp.weixin.qq.com/s/jtxi_jI1uWAUYsspCPXbHwhttps://mp.weixin.qq.com/s/jtxi_jI1uWAUYsspCPXbHw
網(wǎng)絡(luò)安全源碼合集+工具包
?網(wǎng)絡(luò)安全面試題
最后就是大家最關(guān)心的網(wǎng)絡(luò)安全面試題板塊
所有資料共282G,朋友們?nèi)绻行枰拙W(wǎng)絡(luò)安全入門+進(jìn)階學(xué)習(xí)資源包,可以點(diǎn)擊免費(fèi)領(lǐng)取(如遇掃碼問題,可以在評(píng)論區(qū)留言領(lǐng)取哦)~文章來源:http://www.zghlxwxcb.cn/news/detail-495481.html
黑客/網(wǎng)安大禮包:《黑客&網(wǎng)絡(luò)安全入門&進(jìn)階學(xué)習(xí)資源包》免費(fèi)分享黑客\x26amp;網(wǎng)絡(luò)安全入門資料共282G,朋友們?nèi)绻行枰住毒W(wǎng)絡(luò)安全入門+進(jìn)階學(xué)習(xí)資源包》,可以免費(fèi)領(lǐng)取~https://mp.weixin.qq.com/s/jtxi_jI1uWAUYsspCPXbHw.文章來源地址http://www.zghlxwxcb.cn/news/detail-495481.html
到了這里,關(guān)于網(wǎng)絡(luò)安全:CTF入門必備之題型介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!