CTF学习笔记
CTF比赛类型
1.解题模式
1.1解题模式题目类型(从易到难)
a. Misc杂项
利用隐写术等保护技术将信息隐藏在图像、音频、视频、压缩包中,或者信息就在一段内存镜像或网络流量中,尝试将隐藏的信息恢复出来即可获得flag。
b. Cryptology密码学
分析题目中的密码算法与协议,利用算法或协议的弱点来计算密钥或对密文进行解密,从而获取flag。
c. Web安全
通过浏览器访问题目服务器上的网站,寻找网站漏洞,利用网站漏洞获得服务器的部分或全部权限,拿到flag,通常包含分值最大的Web渗透题。
d. Reverse逆向工程*
题目就是一个软件,但是通常没有软件的源代码,需要利用工具对软件进行反编译甚至反汇编,从而理解软件内部逻辑和原理,找出于flag计算相关的算法并破解这个算法,获取flag。
e. PWN二进制*
访问一个本地或远程的二进制服务程序,通过逆向工程找出程序中存在的漏洞,并利用程序中的漏洞获取远程服务器的部分或全部权限,拿到flag。
2.攻防模式
略……
CTF学习攻略
需掌握的技能
基础知识
- Linux基础
- 网络协议分析
- 计算机组成原理*
- 操作系统原理*
专项知识
1. 方向A*
知识:PWN+逆向+密码学
技能:IDA工具(f5插件),逆向工程,密码学,缓冲区溢出……
2. 方向B
知识:Web+Misc杂项
技能:网络安全,内网渗透,数据库安全,信息收集能力
Misc杂项
文件操作与隐写
1. 文件类型识别
1.1 file命令
使用场景:
当文件没有后缀名或者有后缀名但是无法正常打开时,可以用file命令查看,进而补上后缀名打开文件。
1.2 hex软件(本人倾向于在Linux下使用GHex)
使用场景:
用于以16进制查看、编辑文件,可以为文件头被损坏了的文件进行修复,有时候也可以直接看到flag。
常见文件类型头信息
JPEG (jpg),文件头:FFD8FF
PNG (png),文件头:89504E47
GIF (gif),文件头:47494638
TIFF (tif),文件头:49492A00
Windows Bitmap (bmp),文件头:424D
CAD (dwg),文件头:41433130
Adobe Photoshop (psd),文件头:38425053
Rich Text Format (rtf),文件头:7B5C727466
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
Email [thorough only] (eml),文件头:44656C69766572792D646174653A
Outlook Express (dbx),文件头:CFAD12FEC5FD746F
Outlook (pst),文件头:2142444E
MS Word/Excel (xls.or.doc),文件头:D0CF11E0
MS Access (mdb),文件头:5374616E64617264204A
WordPerfect (wpd),文件头:FF575043
Postscript (eps.or.ps),文件头:252150532D41646F6265
Adobe Acrobat (pdf),文件头:255044462D312E
Quicken (qdf),文件头:AC9EBD8F
Windows Password (pwl),文件头:E3828596
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
Wave (wav),文件头:57415645
AVI (avi),文件头:41564920
Real Audio (ram),文件头:2E7261FD
Real Media (rm),文件头:2E524D46
MPEG (mpg),文件头:000001BA
MPEG (mpg),文件头:000001B3
Quicktime (mov),文件头:6D6F6F76
Windows Media (asf),文件头:3026B2758E66CF11
MIDI (mid),文件头:4D546864
2. 文件分离
2.1 binwalk
使用场景:
一些文件由多个文件组合而成,可以用这个工具进行分析和分离。
使用方法:
binwalk //分析文件
binwalk -e //分离文件
2.2 foremost
使用方法:
foremost+(要分离的文件名)+ -o + 输出的文件夹名
2.3 dd
使用场景:
当上面两个无法自动分离的,也就是多个文件非顺序多片存储时,就用这个半自动分离。
使用方法:
dd+if=(输入文件名)+of=(输出文件名)+bs=()