CTF—杂项学习

1 文件操作隐写

1.1 文件类型识别

1.1.1 File命令

当文件没有后缀名或有后缀名而无法打开时,根据识别出的文件类型来修改后缀名即可正常打开文件,file是Linux下的文件识别命令。

file 文件名

使用场景:不知道后缀名,无法打开文件

1.1.2 winhex

通过winhex程序中可以查看文件头类型,根据文件头类型判断出文件类型。用010editor和notepad软件都可以查看文件头。

使用场景:Windows下通过文件头信息判断文件类型

1.1.3 文件头残缺/错误

通常文件无法正常打开有两种情况,一种是文件头部残缺,另一种是文件头部字段错误。针对文件头部残缺的情况,使用winhex程序添加相应的文件头,针对头部字段错误,可以找一个相同类型的文件进行替换。

file 文件名

结果显示文件内容是data,则表示文件出错,需要修复

例如 XXX.png:data

使用场景:文件头部残缺或文件头部字段错误,无法正常打开文件

1.2 文件分离操作

1.2.1 Binwalk工具

Binwalk是Linux下用来分析和分离文件的工具,可以快速分辨文件是否由多个文件合并而成,并将文件进行分离。如果分离成功会放在目标文件的目录,同目录下生成一个形如_文件名_extracted的文件目录。(Binwalk遇到压缩包会自动解压)

分析文件:binwalk filename

分离文件:binwalk -e filename

1.2.2 foremost

如果Binwalk无法正确分离出文件,可以使用foremost,对目标文件进行分离,然后输出到指定目录中。

foremost 文件名 -o 输出目录名

1.2.3 dd

当文件自动分离出错或因为其他原因无法自动分离时,可以使用dd实现文件手动分离。

dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节数

参数解释:

if=file 输入文件名

of=file 输出文件名

ba=bytes 设置读写块的大小为bytes

skip=blocks 从输入文件开头跳过blocks个块后再开始复制

1.2.4 winhex/010editor

除了使用dd外,还可以使用winhex实现文件手动分离,将目标文件拖入winhex中,找到要分离的部分,点击复制即可。也可以使用010editor导入十六进制的txt文件,然后另存为正确后缀名的文件即可打开。

使用场景:手动分离文件

1.3 文件合并操作

通常对文件名相似的文件们可以尝试将文件进行批量合并。

1.3.1 Linux下的文件合并

cat 合并的文件 > 输出的文件

例1:cat chapter01 chapter02 chapter03 > book

例2:cat chapter* >book1

合并完成后,可以通过对文件进行完整性检测,来判断是否合并正确。

md5sum 文件名

例:md5sum sim.jpg

1.3.2 Windows下的文件合并

copy /B 合并的文件 输出的文件

例1:copy /B chapter01+chapter02+chapter03 book

例2:copy /B chapter* book

合并完成后,可以通过对文件进行完整性检测,来判断是否合并正确。

certutil -hashfile 文件名 md5

1.4 文件内容隐写

文件内容隐写就是直接将key以十六进制的形式写在文件中,通常在文件的开头或结尾。如果在文件中间部分,通常搜索关键字KEY或flag来查找隐藏内容。

具体可以将要识别的文件拖入weinhex中,查找具有关键字或明显与文件内容不和谐的部分。

2 图片隐写术

2.1 细微的颜色差别

2.2 GIF图多帧隐藏

2.2.1 颜色通道隐藏

2.2.2 不同帧图信息隐藏

2.2.3 不同帧对比隐写

2.3 EXIF信息隐藏

2.4 图片修复

2.4.1 图片头修复

2.4.2 图片尾修复

2.4.3 CRC校验修复

2.4.4 长宽高修复

2.5 最低有效位LSB隐写

2.6 图片加密

2.6.1 Stegdetect

2.6.2 Jutguess

2.6.3 Jphide

2.6.4 F5

3 压缩文件处理

4 流量取证技术

相关推荐
海尔辛6 分钟前
学习黑客Active Directory 入门指南(一)
windows·学习·ad
兔子坨坨2 小时前
pycharm连接github(详细步骤)
windows·git·学习·pycharm·github
Johny_Zhao2 小时前
Vmware workstation安装部署微软WSUS服务应用系统
网络·人工智能·网络安全·信息安全·云计算·系统运维·wsus
虾球xz3 小时前
游戏引擎学习第293天:移动Familiars
c++·学习·游戏引擎
lichuangcsdn3 小时前
【springcloud学习(dalston.sr1)】Eureka服务端集群的搭建(含源代码)(二)
学习·spring cloud·eureka
名誉寒冰3 小时前
RPC框架源码分析学习(二)
qt·学习·rpc
m0_738206546 小时前
嵌入式学习的第二十二天-数据结构-栈+队列
数据结构·学习
向上的车轮11 小时前
MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题
笔记·学习·matlab
前端小崔12 小时前
从零开始学习three.js(18):一文详解three.js中的着色器Shader
前端·javascript·学习·3d·webgl·数据可视化·着色器
龙湾开发13 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图
c++·笔记·学习·图形渲染·贴图