CTF学习笔记(杂项)
CTF的一些簡介
網(wǎng)絡(luò)有:表層網(wǎng)絡(luò)(觸手可及)、深網(wǎng)(需要一定的手段)、暗網(wǎng)(需要專門的工具和技術(shù))三種
白帽子:專門保護(hù)信息不被泄露、防御的工程師
黑帽子:專門盜取信息、爆破數(shù)據(jù)庫的人
CTF賽制與題型:Capture The Flag,直譯為“奪旗賽”。
CTF題目類型:web安全、逆向工程(Rverse)、漏洞挖掘與漏洞利用(PWN、EXPLOIT)、密碼學(xué)(Crypto)、調(diào)查取證(Misc,又叫雜項(xiàng))、移動(dòng)安全(Mobile)
web安全:SQL注入、xss、文件上傳、包含漏洞、xxe、ssrf、命令執(zhí)行、代碼審計(jì)等。
逆向工程:沒有源代碼的軟件,需要使用工具進(jìn)行反編譯
PWN:二進(jìn)制破解
刷題平臺(tái):
WP網(wǎng)址:
雜項(xiàng)題解題思路:
雜項(xiàng)題目主要可以分為四個(gè)方向:文件操作與隱寫、圖片隱寫、壓縮文件處理、流量取證技術(shù)
1、文件操作與隱寫
(1) 文件類型識(shí)別:
file命令:適用于不知道后綴名,無法打開文件的情景,當(dāng)文件沒有后綴名或有后綴名而無法正常打開文件時(shí)根據(jù)識(shí)別出的文件類型,通過修改文件后綴名來打開文件。
file + 文件名 /*kali系統(tǒng)下使用*/winhex:適用于windows下通過文件頭信息判斷文件類型,通過winhex程序查看文件頭類型,根據(jù)文件頭類型判斷文件類型。
(2) 使用winhex程序查看文件類型?
winhex下載地址:123云盤
????????????????????????????????https://423down.lanzouo.com/b0f1bltdg
????????????????????????????????https://pan.baidu.com/s/1Ys6p2u2aHA-BTmuezW0qlw
(3) 文件頭殘缺/錯(cuò)誤:適用于文件頭部殘缺或者文件頭部字段錯(cuò)誤無法打開正常文件。
????????文件無法正常打開的情況有兩種,一種是文件頭部殘缺,另一種是文件頭部字段錯(cuò)誤。正對(duì)文件頭部殘缺的情況,使用winhex程序添加相應(yīng)的文件頭,針對(duì)頭部字段錯(cuò)誤,可以找一個(gè)相同文件進(jìn)行替換。
出現(xiàn)這種情況時(shí),在kali虛擬機(jī)下使用file命令,無法顯示數(shù)據(jù)。
對(duì)文件進(jìn)行修復(fù):使用winhex程序打開文件,對(duì)文件頭進(jìn)行修改。
對(duì)圖片中標(biāo)注的位置進(jìn)行修改,可以改變文件頭部參數(shù)。
2、文件分離操作
(1) Binwalk工具:
Binwalk是Linux下用來分析和分離文件的工具,可以快速分辨文件是否由多個(gè)文件合并而成,并將文件進(jìn)行分離。如果成功分離會(huì)在目標(biāo)文件的目錄。同目錄下生成一個(gè)形如:文件名_extracted的文件目錄,目錄中有分離后的文件。用法如下:
分析文件:binwalk filename 分離文件:binwalk -e filename?將文件分離之后,會(huì)在同級(jí)目錄下生成一個(gè)文件夾,用來存放分離后的文件。binwalk工具在遇到壓縮包時(shí),會(huì)自動(dòng)解壓。
(2) foremost:
如果binwalk無法正確分離文件,可以使用foremost,將目標(biāo)文件復(fù)制到kali中,成功執(zhí)行后,會(huì)在目標(biāo)文件的文件目錄下生成我們?cè)O(shè)置的目錄,目錄中會(huì)按文件類型分離文件。foremost命令的用法:
foremost 文件名 -o 輸出文件名?(3) dd命令(相當(dāng)難用,操作復(fù)雜,適用于解決難題):
當(dāng)文件自動(dòng)分離出錯(cuò)或者因?yàn)槠渌驘o法自動(dòng)分離時(shí),可以使用dd實(shí)現(xiàn)文件手動(dòng)分離。
格式:
dd if=源文件 of=目標(biāo)文件名 bs=1 skip=開始分離的字節(jié)數(shù) 參數(shù)說明: if=file /*輸入文件名,缺省為標(biāo)準(zhǔn)輸入*/ of=file /*輸出文件名,缺省為標(biāo)準(zhǔn)輸出*/ bs=bytes /*同時(shí)設(shè)置讀寫塊的大小為bytes,可以代替ibs和obs*/ skip=blocks /*從輸入文件開頭跳過blocks個(gè)塊后再開始復(fù)制*/如下圖命令dd if=1.txt of=2.txt bs=5 count=1,輸入文件為1.txt,輸出文件為2.txt,將bs=5 count=1,將1.txt的前5位取出來形成2.txt文件。
?下圖命令dd if=1.txt of=3.txt bs=5 count=3 skip=1,輸入文件為1.txt,輸出文件為3.txt,一個(gè)塊5個(gè)字符,共計(jì)3個(gè)塊,skip=1跳過第一個(gè)塊。輸出文件為后3個(gè)塊的內(nèi)容。
使用binwalk查看文件的組成部分,使用dd命令對(duì)文件進(jìn)行分離,從圖中可以看到0-22895是jpeg格式,22896-23046是zip格式,則dd命令格式為:dd if=輸入文件 of=輸出文件 bs=1 count=23046 skip=22859,即每一塊大小為1,跳過前22895塊。(一共取23046塊,所以count=23046)
?使用winhex程序?qū)崿F(xiàn)文件手動(dòng)分離,將文件拖入winhex工具,找到要分離的部分,點(diǎn)擊復(fù)制即可。適用于windows下,利用winhex工具對(duì)程序進(jìn)行手動(dòng)分離。
步驟如下:選擇要分離的部分,選中,右鍵選擇>保存選擇,保存成指定格式即可。這樣就能將文件中的flag提取出來。
3、文件合并操作
使用md5碼檢測(cè)文件合并的準(zhǔn)確性。
(1) Linux下的文件合并:
使用場(chǎng)景:Linux下,通常對(duì)文件名相似的文件進(jìn)行批量合并。格式如下:
cat 文件1 文件2>輸出文件完整性檢測(cè):Linux下計(jì)算文件md5:
md5sum 文件名?(2) Windows下的文件合并:
使用場(chǎng)景:windows下,通常要對(duì)文件名相似的文件進(jìn)行批量合并,格式為:
copy /B 合并的文件(文件1+文件2+...+文件n) 輸出的文件命令完整性檢測(cè):windows下計(jì)算md5,格式為:
certutil -hashfile 文件名 md5??
4、文件內(nèi)容隱寫
文件內(nèi)容隱寫,就是直接將Key以十六進(jìn)制形式寫入文件,一般是放在文件的開頭或結(jié)尾,分析時(shí),重點(diǎn)觀察文件的開頭和結(jié)尾部分。如果在文件中間部分,通常搜索關(guān)鍵字KEY或flag來查找隱藏內(nèi)容。用于Windows下,搜索隱寫的文件內(nèi)容。
(1) Winhex程序/010Editor
將要識(shí)別的文件使用Winhex工具進(jìn)行打開,查找具有關(guān)鍵字或與內(nèi)容不和諧的部分。
?(2) Notepad++工具
使用Notepad++打開文件查看是否具有關(guān)鍵字,安裝HEX-Editor后,Notepad++可以實(shí)現(xiàn)Winhex
的功能。
5、圖片隱寫
常見的圖片隱寫:細(xì)微的顏色差別、GIF圖多幀隱藏(圖片通道隱藏、不同幀圖信息隱藏、不同幀對(duì)比隱寫)、Exif信息隱藏、圖片修復(fù)(圖片頭修復(fù)、圖片尾修復(fù)、CRC校驗(yàn)修復(fù)、長寬高修復(fù))、最低有效位LSB隱寫、圖片加密(Stegdetect、Outguess、Jphide、F5)
(1) firework
使用Winhex打開文件時(shí),會(huì)看到文件頭部包含firework?的標(biāo)識(shí),通過firework可以找到隱藏圖片。適用于查看隱寫的圖片文件。
(2) Exif
Exif按照jpeg的規(guī)格在jpeg中插入一些圖像/數(shù)字相機(jī)的信息數(shù)據(jù)以及縮略圖像,可以通過與jpeg兼容的互聯(lián)網(wǎng)瀏覽器/圖片瀏覽器/圖像處理等一些軟件查看Exif格式的圖像文件,右鍵屬性,查看文件的詳細(xì)信息,查看flag信息。
????????
總結(jié)
以上是生活随笔為你收集整理的CTF学习笔记(杂项)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FreeSWITCH权威指南-基础篇-1
- 下一篇: RGB YUV的来历及相互转换