CTF-MISC解题思路

优秀的人,不是不合群,而是他们合群的人里面没有你

常规套路

  1. 右键查看文件属性
  2. 直接丢010搜索pass,password,flag,ctf,key字样,当心flag可能用栅栏密码或者摩斯密码或者凯撒密码进行加密过,要留心。或者丢随波逐流一把锁哈。
  3. 直接查看文件头,如果不认识丢百度搜索一下
  4. binwalk有时候不一定分离出来
  5. 适当的使用foremost
  6. 上面两个是重点,分离出来的图片,就算没有文件名后缀,也可以拉倒010里面查看数据!!!!
  7. 如果用binwalk发现有多个文件,但是使用命令信息显示但是没有生成分离文件夹,而且foremost也没卵用,就换命令强制使用binwalk -e misc14.jpg -D=jpeg 然后把生成分离出来的图片修改后缀.jpg直接查看
  8. 一定要对文件头有敏感意识!

根据文件头数据判断文件类型

现有一文件,其扩展名未知或标记错误。假设它是一个正常的、非空的文件,且将扩展名
更正后可以正常使用,那么,如何判断它是哪种类型的文件?
在后缀未知,或者后缀被修改的文件,依然通过文件头来判断该文件究竟是什么文件类型。我
们可以使用一个文本编辑工具如 UltraEdit 打开文件( 16 进制模式下),然后看文件头是什么
字符,以下是常见文件类型的文件头字符(16 进制),

PYC,文件头:03F30D0A(直接丢EasyPythonDecompiler.exe 解码)
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 还可能是ppt!),文件头: 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),文件头: 000001BAMPEG (mpg),文件头: 000001B3
Quicktime (mov),文件头: 6D6F6F76
Windows Media (asf),文件头: 3026B2758E66CF11
MIDI (mid),文件头: 4D546864

NTFS

NTFS是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。NTFS比FAT文件系统更稳定,更安全,功能也更为强大。

我也是在一道题才知道这个东西,这玩意隐写在图片里面,我解压报错,但是里面的图片解压出来,丢工具箱看看,binwalk没东西,但是发现ntfs这个东西

直接用工具读取ntfsstreamseditor

点进去,自动就读取出来了

ppt文件

使用工具可以破解密码~

本质上也是个zip文件,改后缀试试看~

文本隐写

一般是snow雪花隐写,特征是这样的

使用工具解密

加密

snow.exe -C -m 'flag{6666}' -p "123" test.txt tt.txt

解密

snow.exe -C -p 123 tt.txt

如果没有设置密码

snow.exe -C tt.txt

word文件

三板斧套路

  1. word一般都是修改后缀zip,然后解压查看
  2. word字体颜色可能修改成透明,ctrl+a全选,修改字体颜色黑色就能看到
  3. Doc 文件的本质是一个压缩文件,常见的隐藏文本的方式有两种,即:将字体隐藏或者设置
    同色字体,点击左上角 文件-选项, 打开 Word 选项对话框, 在“显示”中勾选隐藏
    文字选项
  4. 上面是三板斧操作,还可以结合其他的比如binwalk之类

excel

三板斧

和word相差无几

内容隐藏

点开一看,没有flag

然后丢101也没发现啥,只能走三板斧套路,修改成zip解压出来。一般来说,excel的内容都保存在

\xl\worksheets

这个目录下,点进去看看、

可以看到被加密的内容在这里,内容是1,那么把这个1在excel显示出

选择“条件格式”-“突出单元格规则”-“文本包含”-输入1

有点像二维码

还可以这么来,ctrl+a全选,右键

设置单元格格式-数字-常规

也能出来

然后把1替换成黑色方块

Ctrl+h-替换-格式-填充-选黑色-确定

调整一下列宽,发现CQR扫描不出来??!!!

研究了一下二维码,发现这个二维码的三个角好像不是完整的方块。

查阅资料才知道:是汉信码,又称中国的二维码,特点就是这个四个角,且左下角方向是反的。

用这个在线解密

http://www.efittech.com/hxdec.aspx

宏加密读取

但是我遇到过一个excel宏的题目。首先了解一个工具

oletools-python工具,用于分析MS OLE2文件(结构化存储,复合文件二进制格式)和MS Office文档,以进行恶意软件分析,取证和调试。

直接安装

pip install -U oletools

使用方法如下:

python oleid.py xxxx.excel

如下是一些文件的功能

oleid:分析OLE文件以检测通常在恶意文件中发现的特定特征。
olevba:从MS Office文档(OLE和OpenXML)中提取和分析VBA Macro源代码。
MacroRaptor:检测恶意的VBA宏
msodde:检测并从MS Office文档,RTF和CSV中提取DDE / DDEAUTO链接
pyxswf:检测,提取和分析可能嵌入在MS Office文档(例如Word,Excel)和RTF等文件中的Flash对象(SWF),这对于恶意软件分析特别有用。
oleobj:从OLE文件中提取嵌入式对象。
rtfobj:从RTF文件中提取嵌入式对象。


olebrowse:一个简单的GUI,可浏览OLE文件(例如MS Word,Excel,Powerpoint文档),以查看和提取单个数据流。
olemeta:从OLE文件中提取所有标准属性(元数据)。
oletimes:提取所有流和存储的创建和修改时间戳。
oledir:显示OLE文件的所有目录条目,包括空闲和孤立的条目。
olemap:显示OLE文件中所有扇区的映射。

直接使用命令就能读取到宏

另一种方法也能读取宏

  1. 修改excel文件的后缀为【.zip】,改为压缩包
  2. 打开压缩包后,进入【xl】文件夹,将文件【vbaProject.bin】拷贝出来。
  3. 使用 Hex Editor Neo二进制编辑器打开文件【vbaProject.bin】,搜索【DPB】,将【DPB】改为【DPX】保存。
  4. 将修改后的文件【vbaProject.bin】 放回到压缩包中,替换掉原来的文件。
  5. 将文件后缀【.zip】改回到原来的【.xlsm】
  6. 打开excel文件,进入VBA,查看代码,点击【工具】–>【VBA Project属性】
  7. 点击保护,重新设置密码
  8. 保存EXCEL文件,关闭后重新打开,输入设置的密码,已经可以查看源码了

pdf文件

内容隐藏

打开长得这样

但是发现可以编辑图片,让图片移动或者删除图片

wbStego4open加密

利用 PDF 文件头添加额外信息,这个区域的信息会被 Adobe Acrobat Reader 阅读器忽
略。

工具: wbStego4open

wbStego4open是一个隐写开源工具,它支持Windows和Linux平台,可以使用wbStego4open把文件隐藏到BMP、TXT、HTM和PDF文件中,而且不会被看出破绽。

所以这四种文件,如果给了密码,可以试一试这个破解

wbStego4open 会把插入数据中的每一个 ASCII 码转换为二进制形式,然后把每一个二进
制数字再替换为十六进制的 20 或者 09, 20 代表 0, 09 代表 1。
最后,这些转换后的十六进制数据被嵌入到 PDF 文件中。查看用 wbStego4open 修改后的
文件内容,会发现文件中已混入了很多由 20 和 09 组成的 8 位字节

桌面有这个软件,直接打开运行就行~~

如果pdf有打开密码,可以使用工具爆破!!

文件内容隐藏

如果打开看是一张平平无奇的内容,里面有很多文字。直接ctal+a全选所有文字,复制到文本内容查看

杂七杂八16进制的数据

010可以带入16进制的文本内容,比如一个文件的16进制被导出文本格式,打开这个文本,看到很多很多十六进制代码,就用010左上角导入16进制文本,根据文件头标志,左上角另存为正确的格式保存。

steghide隐写

Steghide是一款开源的隐写术软件,它可以让你在一张图片或者音频文件中隐藏你的秘密信息,而且你不会注意到图片或音频文件发生了任何的改变。

接收方必须以下列方式使用steghide:

steghide extract -sf xxxx.jpg    

运用如上命令,然后输入设置方设置的密码就可以得到隐藏文件

也可以直接使用命令

steghide extract -sf xxxxxx.jpg -p 123456
#-sf  参数
#test.jpg  图片名称
#-p 密码参数,后面空格跟密码,无密码可不加参数,回车就好

然后在网上找到了一个python爆破脚本

#python3运行
from subprocess import *

def foo():
    stegoFile='1.jpg'#隐写的图片
    extractFile='passwd.txt'#爆破的密码
    passFile='dic.txt'#字典

    errors=['could not extract','steghide --help','Syntax error']
    cmdFormat='steghide extract -sf "%s" -xf "%s" -p "%s"'
    f=open(passFile,'r')

    for line in f.readlines():
        cmd=cmdFormat %(stegoFile,extractFile,line.strip())
        p=Popen(cmd,shell=True,stdout=PIPE,stderr=STDOUT)
        content=str(p.stdout.read(),'gbk')
        for err in errors:
            if err in content:
                break
        else:
            print (content),
            print ('the passphrase is %s' %(line.strip()))
            f.close()
            return

if __name__ == '__main__':
    foo()
    print ('ok')
    pass

时间戳相关

一个题目发现的,打开发现不少时间戳,注意带when的时间戳才是需要的

1997-09-22T02:17:02+08:00
2055-07-15T12:14:48+08:00
2038-05-05T16:50:45+08:00
1984-08-03 18:41:46+08:00

更新一下格式,(把:换成-)

1997-09-22 02:17:02
2055-07-15 12:14:48
2038-05-05 16:50:45
1984-08-03 18:41:46

把这些时间戳转换成十六进制,实用网站

https://tool.lu/timestamp

得出结果

874865822 
2699237688 
2156662245 
460377706

转换成hex然后添加花括号就是了,就是十进制转16进制

ctfshow{3425649ea0e31938808c0de51b70ce6a}

还能用py脚本直接解析

import time

str1 = "1997:09:22 02:17:02+08:00,2055:07:15 12:14:48+08:00,2038:05:05 16:50:45+08:00,1984:08:03 18:41:46+08:00"
list1 = str1.split(",")
list2 = []
for x in list1:
    list2.append(x[:-6])

res=""
timeformat = "%Y:%m:%d %H:%M:%S"
for t in list2:
    arr = time.strptime(t,timeformat)
    timestamp = time.mktime(arr)
    x = hex(int(timestamp))[2:]
    res+=x
print("ctfshow"+"{"+res+"}")
# ctfshow{3425649ea0e31938808c0de51b70ce6a}

转换输入,

DAT文件

.dat后缀文件有可能是微信聊天文件,使用专用工具打开就能解密,长点记性~~

用WXDatConvter打开解密

结合密码学思考

有些时候,举个例子出提示,比如出现一串字符大小写,可以考虑只保存大写之类的,或者转换,比如

JooAd:opDXV

转出可以比如二进制,大写0小写1

或者培根密码,大写A小写B或者反过来尝试一下

多个文件合并

既然 CTF 有文件分离的题目,那自然也少不了文件合成的了,但是文件合成还是有技巧的

linux

将 chapter01、 chapter02、 chapter03 三个文件按从左到右顺序合并,输出到 book 文件中。

所使用的命令: cat chapter01 chapter02 chapter03 > book

将所有以 chapter 开头的文件按文件名从小到大的顺序合并,输出到 book 文件中。

所使用的命令: cat chapter* > book

win

将 chapter01、 chapter02、 chapter03 三个文件按从左到右顺序合并,输出到 book 文件中。

所使用的命令: copy /B chapter01+chapter02+chapter03 book

将所有以 chapter 开头的文件按文件名从小到大的顺序合并,输出到 book1 文件中。

所使用的命令: copy /B chapter* book1

游戏问题

直接让你玩游戏,你就体验两下,然后看看有没有通关文件save文件,如果新生成了文件,用HXD或者winhex看看里面的数据,是不是保存通关卡多少关,修改成最后一关,保存然后看看游戏有没有通过。

jar文件的杂项

如果过不去,直接丢反编译器,我保存在这里

C:\Users\langzi\Desktop\Ltools\渊龙Sec安全团队CTF&AWD工具包V4.0\2#CTF工具大全\4.REVERSE逆向\安卓逆向\jd-gui
坚持原创技术分享,您的支持将鼓励我继续创作!

-------------本文结束感谢您的阅读-------------

腾讯云主机优惠打折:最新活动地址


版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%