安全攻防知识——CTF之MISC - 知乎
CTF之MISC杂项从入门到放弃_ctf杂项 你的名字-CSDN博客
CTF MICS笔记总结_archpr 掩码攻击-CSDN博客
一、图片隐写
CTF杂项---文件类型识别、分离、合并、隐写_ctf图片分离-CSDN博客
EXIF(Exchangeable Image File)是“可交换图像文件”的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数、缩略图及其他属性信息
简单来说,Exif信息是镶嵌在 JPEG/TIFF 图像文件格式内的一组拍摄参数,需要注意的是EXIF信息是不支持png,webp等图片格式的(建议自己试的时候,现拍一张,把地理位置信息开启,这样得到的是完整的EXIF信息)
一般来说,修改的都是高度,修改宽度的话,图片会损坏
exif查看器是一种能够读取照片exif信息并展示详细数据的工具。而其中最引人注目的功能之一是地理位置的查看——随着手机拍照功能的发展,照片中含有的exif信息也越来越多。其中包括拍摄时间、焦距、曝光时间等详细参数,还有一项非常有趣的数据是地理位置
一般在网页EXIF查看器查看之后,会有一个主题:XMP-x 的选项,将 hex 编码解码就会获得一定的敏感信息,在mac里面右键显示简介也会有一定的exif信息,但windows系统相对来说比较准确,windows里面点击属性,查看详细信息,一般在标记里面会有exif的信息,hex解码即可,另外后面还会有很多的图片的属性信息
图片的EXIF信息查看器
alpla版本EXIF信息查看器
文件头格式
常见文件的格式包括文件头、文件体和文件尾
- 文件头包括产生或编辑文件的软件信息以及文件本身的参数,文件头格式错误会导致文件不可用
- 文件体是文件的主体部分,包含了文件的具体数据,对文件的容量起决定性的作用
- 文件尾是可选项,可以包含一些用户信息
文件类型 | 文件头格式 | 文件尾格式 |
---|---|---|
JPEG | FF D8 FF | FF D9 |
PNG | 89 50 4E 47 0D 0A 1A 0A | 49 45 4E 44 AE 42 60 82 |
GIF | 47 49 46 38 39 61 | 00 3B |
BMP | 42 4D | 00 00 00 00 |
MP3 | 49 44 33 | FF FB |
WAV | 52 49 46 46 | 3E 00 00 00 |
AVI | 52 49 46 46 | 00 00 00 00 |
MP4 | 00 00 00 20 66 74 79 70 69 73 6F 6D | 00 00 00 |
ZIP | 50 4B 03 04 | 50 4B 05 06 |
RAR | 52 61 72 21 1A 07 00 | 00 00 00 |
25 50 44 46 | 0A 25 25 45 4F 46 | |
DOCX | 50 4B 03 04 | 50 4B 05 06 |
EXE | 4D 5A | - |
ELF | 7F 45 4C 46 | - |
文件格式检测方法
- 查看扩展名(不准确)
- 使用16进制的文本工具查看文件头(windows:winhex、010editor;linux:Hexsditor、Hexdump命令)
- 使用文件识别工具(linux:file命令)
WinHex的使用指南(图文详细版)-CSDN博客
(使用时注意光标要放在hex码的最前面,否则可能会找不到)
【文件头手工查看】
在winhex中,查找图片里面有没有隐藏别的文件,可以在search里面的find hex values里面输入目标文件格式的文件头查找,找到了说明图片隐藏了其他的文件,否则就是没有,一般找到另一种文件头的话,后续在遇到另外的文件头之前的部分应该都是该文件的所有内容
【binwalk工具】
binwalk在Windows10和kali_Linux下的安装及使用教程
CTF-杂项_binwalk和foremost区别-CSDN博客
【strings命令】
查看当前文件里面的可查找的字符串,或者将可打印的字符串直接重定向到文件里面然后人工查看
linux中的strings命令_linux strings-CSDN博客
图片结构
png-8格式的组成:
- png文件标志,固定64字节:0x89504e47 0x0d0a1a0a
- 文件头数据块IHDR
- 调色板数据块PLTE
- sBIT,tRNS块
- 图像数据块IDAT
- 图像结束数据IEND,固定96字节:0x00000000 0x49454e44 0xae426082
png图片结构_png文件sbit-CSDN博客
图片结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )-腾讯云开发者社区
如果一个图片在linux系统打不开,但是在windows系统下可以打开,可能图片的高度有问题——一般来说图片的宽度不能随便改,但是高度可以随便改
winhex工具修改宽高 (限制权限)在winhex里面第二列第一段的8组数字的前四组代表宽,后四组代表高(如下所示:绿色标记的为高)
CTF-MISC图片求正确宽高破解和修改总结_misc 修改图片宽高-CSDN博客
【base64转图片】
在线base64编码|图片转base64|base64转图片|91tool
BugKu CTF(杂项篇MISC)—多种方法解决_图片转base64 ctf比赛-CSDN博客
CTF天天练:杂项之“多种方法解决” - 腾讯云开发者社区-腾讯云
【StegSolve】
CTF-StegSolve使用介绍
【PsQREdit:二维码查看】
PsQREdit可以制作二维码、直接识别二维码(图片文件),利用它,可以把网址、文字、名片、通讯录等内容转换为二维码图片
gnuplot画图
将图片使用notepad++打开,得到一段文本,然后在notepad++点击上边工具栏的插件,Converter里面的hex -> Ascii,然后得到一堆坐标
使用kali的gnuplot(交互式的画图工具)kali下的gnuplot使用_在kali里面用坐标值画图-CSDN博客
二维码处理
二维码扫描必须要有三个方形的标志点,中间的图案一般是随机的,只要有一般都能扫出来
#CTF———杂项(撕毁的二维码) - 爱码网
bugkuCTF—杂项—简单的二维码_ctf二维码-CSDN博客
如何做CTF的二维码处理,CTF二维码解题_ctf扫描二维码脚本-CSDN博客
CTF以题代学----2020unctf misc题目思考_ctf-misc-二维码(二)撕破的二维码-CSDN博客
BUUCTF二维码
BUUCTF在线评测
BUUCTF 二维码 1_buuctf 二维码1-CSDN博客
先使用010-editor工具查看可直接获得flag的前部分和中间部分:
Base64解码得到flag{051d51cc-2528
再向上翻阅得到-4c65-bf88-
zip缺少头部504B,添加解压即可得到完整的docx文件,在doc文档全选改为例如红色可发现隐藏的后半部flag字样,拼凑可得完整的flag。
flag{051d51cc-2528-4c65-bf88-a7165973149c}
二、文件隐写
CTF之misc杂项解题技巧总结——隐写术-CSDN博客
如何做CTF中MISC的图片隐写,CTF图片隐写入门 - 知乎 (zhihu.com)
stegsolve图片隐写查看器
下载地址:http://www.caesum.com/handbook/Stegsolve.jar
安装教程——Stegsolve_stegsolve安装教程-CSDN博客
配置好环境之后直接打开就可以使用
stegsolve功能简介:
上面是软件打开的界面,界面简单。主要供能为analyse,下面对Analyse下面几个功能键作简单介绍:
File Format: 文件格式,这个主要是查看图片的具体信息
Data Extract: 数据抽取,图片中隐藏数据的抽取
Frame Browser: 帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看
Image Combiner: 拼图,图片拼接
CTF-StegSolve使用介绍
LSB隐写
LSB(leastsignificant bit):最低有效位
PNG文件中的图像像数一般是由RGB三原色(红绿蓝)组成,每一种颜色占用8位,取值范围为0x00~0xFF,即有256种颜色,一共包含了256的3次方的颜色,即16777216种颜色
人类的眼睛可以区分约1000万种不同的颜色,这意味着人类的眼睛无法区分余下的颜色大约有6777216种
LSB隐写就是修改RGB颜色分量的最低二进制位(LSB),而人类的眼睛不会注意到这前后的变化每个像数可以携带3比特的信息
LSB隐写原理是修改了照片中的像素的最低位,把一些信息隐藏起来,在无压缩图片bmp或者无损压缩图片png上才能进行LSB隐写,如果是jpg图片则无法进行隐写
基于LSB实现文本、图片、压缩包的隐藏_lsb隐藏算法可以将图片信息隐藏吗-CSDN博客
CTF-图片隐写_ctf图片隐藏flag密码-CSDN博客
2018网鼎杯misc
【2018年 网鼎杯CTF 第一场】China H.L.B “网鼎杯” 部分WriteUp - 先知社区
PNG隐写 i春秋网鼎杯网络安全大赛minified题目writeup_png隐写 123456qwer-CSDN博客
CTF-MISC(隐写篇) - FreeBuf网络安全行业门户
F5隐写
【隐写术】F5隐写-CSDN博客
工具地址:https://github.com/matthewgao/F5-steganography
outguess隐写
【BUUCTF-MISC】outguess_buuctf outguess-CSDN博客
( 新版kali可能未配套,需要下载一下)
CRC爆破
import struct
import binascii
crcbp = open("图片名", "rb").read()
for i in range(2000):
for j in range(2000):
data = crcbp[12:16] + struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if(crc32 == 0x91918666):
print(i, j)
print('hex:', hex(i), hex(j))
脚本跑出来图片的高和宽之后,修改原图片的高和宽:可以使用winhex打开之后,修改第二行,但是winhex属于小端存储(需要从右往左读取它真正的值),然后根据脚本结果修改即可
三、流量分析
CTF——流量分析题型整理总结_ctf流量分析-CSDN博客
嗅探工具 --- wireshark、tcpdump、dsniff、ettercap、bettercap、netsniff-ng、cain-CSDN博客
使用Wireshark进行网络流量分析_wireshark流量分析-CSDN博客
流量分析-Wireshark -操作手册(不能说最全,只能说更全)_wireshark寻找扫描器-CSDN博客
和bp只能抓取http、https协议的应用层协议的数据包不一样,Wireshark能监听全局的流量
- 实时监控网络流量:通过监控网络流量,可以及时发现网络异常流量,如DDoS攻击、僵尸网络、内网攻击等。通过分析异常流量的特征和规律,蓝队可以快速发现攻击源和攻击目标
- 识别和过滤恶意流量:通过对网络通信流量的深度分析,可以识别和过滤出恶意流量,如恶意软件、病毒、木马等,有效保护系统安全
- 分析攻击行为:通过分析攻击流量的特征和行为,可以了解攻击者的攻击手法和战术,为进一步应对攻击提供参考
- 收集并分析日志:通过收集和分析网络通信日志,可以发现潜在的安全漏洞和安全风险,并及时采取措施修补漏洞,提高系统安全性
(用在应急响应和CTF里面较多)
1、wireshark过滤器表达式
协议过滤
TCP:只显示TCP协议的数据流
HTTP:只显示HTTP协议的数据流
ICMP:只显示ICMP协议的数据流
ARP:只显示ARP协议的数据流
DNS:显示DNS协议的数据流
IP过滤ip.addr = 192.168.116.138,只显示ip为192.168.116.138有关的数据流
ip.src = 192.168.116.138,只显示源IP地址为192.168.116.138的数据流
ip.dst = 192.168.116.138,只显示目标IP地址为192.168.116.138的数据流
端口过滤tcp.port == 80,只显示80端口TCP数据流
udp.prot == 67,只显示67端口UDP数据流
tcp.srcport == 80, 只显示源地址的80端口数据流
tcp.dstport == 80,只显示目的地址80端口数据流
过滤HTTP协议http.request.method==“GET”,显示get请求
http.request.method==“POST” ,显示POST请求
http.request.url contains admin ,显示url中包含admin的请求
http.request.code==404,显示状态码为404
http contains “FLAG”,请求或相应中包含特定内容
连接符
and,or
如:tcp.port == 80 and ip.addr = 192.168.116.138过滤包长度
udp.length20,整个UDP数据包
tcp.len>=20,TCP数据包中的IP数据包
ip.len20,整个IP数据包
frame.len==20,整个数据包
wireshark着色规则
点开左上角视图中的着色规则就能看到2、数据流的追踪
我们的一个完整的数据流一般都是由很多个包组成的;
所以当我们想查看某条数据包对于的数据流的话。可以选中数据,右键选择追踪流;
里面就会有tcp流、udp流、ssl流、http流。数据包属于哪种流就选择对应的流;
当我们选择了追踪流时,会弹出该流的完整的数据流还有这个数据流中包含的数据包,对话框下面可以选择数据流方向,顶部的过滤器就是该流的过滤规则3、数据包的统计分析
统计中的协议分级功能可以查看所选包协议的分布情况,帮助识别可疑协议,和不正常的网络应用程序
在Endpoints窗口中,可以通过排序Bytes和Tx Bytes来判断占用带宽最大的主机
Conversions窗口可以看到两个主机之间发送/接收数据包的数量、字节大小以及数据的流向情况,也可以通过排序来判断占用最大带宽的主机;
在Conversions窗口中只能看到会话的统计情况,无法看到包的具体内容;
这时可以使用快速过滤会话功能,过滤出想要查看的内容;
快速过滤会话的功能在Conversions窗口中进行操作,可以对选中的会话或者非选中的会话选择数据流向进行过滤4、数据包的大致结构
第一行:数据包整体概述
第二行:链路层详细信息,主要的是双方的mac地址
第三行:网络层详细信息,主要的是双方的IP地址
第四行:传输层的详细信息,主要的是双方的端口号
第五行:TCP或UDP是传输的DATA,DNS这是域名的相关信息5、网络分析
只抓包头
在进行网络分析时往往只需要知道两个节点是不是能够联通,具体的传输信息并不重要,所以抓包的时候可以设置只抓包头,这样就大大减少了数据包的大小,有利于数据分析;
设置方法:Capture(捕获)–>Options(选项)–>Snaplen(Snap长度);
将这个值设置200以下就可以抓到所有网络层次的头信息了
另外也可以直接点击任务栏里的快捷键,快速设置只抓必要的包
我们可以设置抓包的filter,只抓一些感兴趣的包;
设置方法:Capture(捕获)–>Options(选项)–>Capture Filter(捕获过滤器)在输入框里输入规则,然后点击开始即可,比如输入
dst host 220.181.38.148(捕获目标主机为220.181.38.148的数据包)
220.181.38.148是ping www.baidu.com的ip地址,不同地理位置ping的ip可能不一样,然后浏览器访问百度就可以看到我们想要的捕获结果6、自动分析
Wireshark有强大的统计分析功能,可以帮助分析人员快速统计出一些基本信息。比如点击Analyze(分析)–>Expert InfoComposite(专家信息),就可以看到数据包的中的一些不同级别的信息统计,包含重传次数、链接建立次数、网络错误等,在分析网络性能时这个功能很有作用
单击Statistics(统计)–>TCPStream Graph(TCP流图形),可以生成一些统计图表
此外还可以统计分层信息、网络会话列表、网络端点列表、ip地址统计列表、应用层数据包信息等
题目举例:被嗅探的流量
【嗅探】
网络嗅探是指利用计算机的网络接口截获其它计算机的数据报文的一种手段,网络嗅探的基础是数据捕获,网络嗅探系统是并接在网络中来实现对于数据的捕获的,这种方式和入侵检测系统相同
嗅探的大部分场景在内网,内网使用ARP协议将IP地址转化为MAC地址,RARP协议将MAC地址转化为IP地址,内网通信时,可以嗅探内网网卡:充当通信中间人,做信息转发或者单纯嗅探,外网一般不能实现
BUUCTF在线评测
buuctf—被嗅探的流量_buuctf被嗅探的流量-CSDN博客
【pcapng文件】
网络数据包捕获文件格式
PCAPNG是PCAP Next Generation Dump File Format的缩写,意为PCAP下一代文件格式,后缀名为.pcapng
PCAPNG是一种网络数据包捕获文件格式,旨在克服现有PCAP格式的限制,PCAPNG格式在结构上由多个数据块组成,每个块都包含特定的格式类型、长度和内容
支持者CloudShark和Wireshark等工具解析
盲注流量分析
【CTF-misc】流量分析_盲注流量分析如何获取ctf-CSDN博客
使用Wireshark进行网络流量分析_wireshark流量分析-CSDN博客
在wireshark数据包里面保存所有的流量,然后保存为txt文件,在notepad++v8.1.9里面打开(其余版本功能可能不合适),然后点击探索,查找,正则匹配查找目标(一般就是flag、ctf、盲注里面会有id=*之类的),然后全部标记,复制标记文本,然后新建或者直接覆盖源文件
1、手工找:找到每个起始盲注的ASCII码对应数字,然后记录结尾的ASCII码对应的数字,最后转化为字符即可
list=[102,108,97,103,123,xxx,……]
for i in list:
print(char(i),end='')
python流量分析
2、使用脚本分析:主要针对的是盲注语句,把所有的有变化的截取出来,先遍历每一行,截取出来最后的from部分的第几位数据和后面的ASCII码,然后使用finall匹配,到位数变化的时候,
import re
s = r"from%20t\),([0-9]*),1\)\)=([0-9]*)"
pat = re.compile(s)
f = open("/Users/Nosery/Desktop/1.pcapng","rb")
st = f.read().decode("utf-8","ignore") //不解析的忽略
lis = pat.findall(st)
print(lis)
flag = ['' for i in range(1000)] //给flag给出一个限制范围
print(flag)
for t in lis:
flag[int(t[0])] = chr(int(t[1])) //将每一位截出来的元组不停转换覆盖为字符串
for i in flag:
print(i,end="")
SqlMap流量分析
SqlMap分析使用二分法
流量分析的时候,先进行URL解码:notepad++全选,解码即可,然后审计找到目标语句:点击搜索,正则匹配(SqlMap的流量较为复杂,正则匹配的时候要精细一点),然后标记复制,
入侵检测之sqlmap恶意流量分析-腾讯云
Sqlmap流量分析(osshell)、UA头隐藏 - LinkPoc - 博客园
【分析举例】
绿色框中的数字代表是测试第几个字符红色框中的数字代表与当前测试的字符的ascii值相比较的值
粉色框中数字代表返回的数据的长度(要依据这个来判断上面的语句是否正确)
二分法取第一位:
- asci有 128个所以从 64 开始判断、然后是96(64和128的中间值),说明>64是正确的,才会取96
- 80、80小于96,说明>96是错误的,所以才会取 64和96 的中间值 80
- 72,说明>80是错误的,取80和64之间的中间值72
- 76,说明>72是正确的,才会取 72 和80之间的中间值76
- 74,说明>76是错误的,才会取 72 和76的中间值 74,然后是73,说明>74是错误的,才会取72和 74的中间值 73至于>73 语句是否正确,关系到我们最后的取值
第一个字符 的asci值 的范围为 72<x<= 74,至于是 73 还是 74,需另做判断:若>73正确,则x=74 第一个字符 的ascii值为 74 就是 J,若 >73 错误,则 x= 73 就是 I
由于我们上面已经知道了 >64 是正确的返回包的数据长度是 467
- >96 是错误的返回包的数据长度是 430
- >80 是错误的返回包的数据长度是 430
- >72 是正确的返回包的数据长度是 467
- >76 是错误的返回包的数据长度是 430
- >74 是错误的返回包的数据长度是 430
可以看到当判断语句正确时 ,返包的数据长度是大于 430 的 ,错误时是小于等于 430 然后看到 最后一条语句 >73 的返回值为 430,第一个字符的ascii 为 73
USB流量分析
USB(键盘)流量分析_usb流量分析-CSDN博客
buuctf [第九章][9.4.1 鼠标流量分析]鼠标流量分析writeup_buuctf鼠标流量分析-CSDN博客
mappings = { 0x04:"A", 0x05:"B", 0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G", 0x0B:"H", 0x0C:"I", 0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O", 0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5", 0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[DEL]", 0X2B:" ", 0x2C:" ", 0x2D:"-", 0x2E:"=", 0x2F:"[", 0x30:"]", 0x31:"\\", 0x32:"~", 0x33:";", 0x34:"'", 0x36:",", 0x37:"." }
nums = []
keys = open('out.txt')
for line in keys:
if line[0]!='0' or line[1]!='0' or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0':
continue
nums.append(int(line[6:8],16))
keys.close()
output = ""
for n in nums:
if n == 0 :
continue
if n in mappings:
output += mappings[n]
else:
output += '[unknown]'
print 'output :\n' + output
使用 open
函数以默认模式(文本模式)打开 out.txt
文件,并将其赋值给 keys
。然后,代码遍历文件的每一行(for line in keys:
)
对于每一行,代码检查该行的特定位置(索引0, 1, 3, 4, 9, 10, 12, 13, 15, 16, 18, 19, 21, 22)的字符是否不等于 '0'
。如果任何一个位置不满足这个条件,代码将跳过当前行(使用 continue
)
如果当前行通过了上述检查,代码将提取索引6到7的字符(即两个十六进制数字),使用 int(line[6:8], 16)
将其转换为整数,并添加到 nums
列表中
f=open('usbdata.txt','r')
fi=open('out.txt','w')
while 1:
a=f.readline().strip()
if a:
if len(a)==16: # 鼠标流量的话len改为8
out=''
for i in range(0,len(a),2):
if i+2 != len(a):
out+=a[i]+a[i+1]+":"
else:
out+=a[i]+a[i+1]
fi.write(out)
fi.write('\n')
else:
break
fi.close()
使用一个无限循环 while 1:
来持续读取文件中的数据
a = f.readline().strip()
:读取文件的一行内容,并使用 strip()
方法移除每行首尾的空白字符(如空格、制表符、换行符等)
检查读取到的行 a
是否为空(即是否已到达文件末尾)
如果 a
不为空且长度为16(或者如果它是鼠标流量,则长度为8,但在这段代码中只考虑了长度为16的情况),则执行以下操作:
- 初始化一个空字符串
out
用于存储处理后的数据 - 使用一个
for
循环遍历a
中的字符,每次迭代处理两个字符(通过range(0, len(a), 2)
实现) - 在循环内部,检查当前迭代是否不是每行的最后一个组(通过
if i+2 != len(a):
判断)。如果不是最后一个组,则在两个字符后添加一个冒号(:
) - 如果是最后一个组,则只将两个字符添加到
out
中,不添加冒号 - 将处理后的字符串
out
写入到out.txt
文件中,并在其后添加一个换行符\n
如果 a
为空(即已到达文件末尾),则使用 break
语句退出循环
题目:BUUCTF USB
BUUCTF在线评测
BUUCTF:USB解题思路
《CTF特训营》——古典密码学_云影密码解密工具-CSDN博客
【云影密码(01248码)】
这种加密方式仅使用01248这5种数字来进行,其中0用来唯一表示间隔,其他数字用加法和表示替换密文。再使用数字1~26表示字母A~Z。
如:18 = 1+8 = 9 = I,1248 = 1+2+4+8 = 15 = O特点:密文中仅存在01248,加密对象仅有字母
例:CRYPTO001
88421 0122 048 02244 04 0142242 0248 0122
23 5 12 12 4 15 14 5
W E L L D O N E
可知flag为WELLDONE
binwalk提取流量
Binwalk工具的详细使用说明_binwalk使用教程-CSDN博客
四、压缩包文件
RAR基础爆破
基础破解:给你一个压缩包,你并不能获得什么,因为他是四位数字加密的哈哈哈哈。。。CSDN
john解决压缩包爆破
压缩包模块(密码爆破)_kali john原理-CSDN博客
zip压缩包爆破
Ziperello安装及使用
zip伪加密
【zip伪加密】
1、zip组成
一个zip文件由这样三个部分组成_zip 文件结构_一只独孤的程序猿的博客-CSDN博客
2、实例
压缩源文件数据区:
- 50 4B 03 04:这是头文件标记(0x04034b50)
- 14 00:解压文件所需 pkware 版本
- 00 00:全局方式位标记(有无加密) 头文件标记后2bytes
压缩源文件目录区:
- 50 4B 01 02:目录中文件文件头标记(0x02014b50)
- 3F 00:压缩使用的 pkware 版本
- 14 00:解压文件所需 pkware 版本
- 00 00:全局方式位标记(有无加密,伪加密的关键) 目录文件标记后4bytes
压缩源文件目录结束标志:
- 50 4B 05 06:目录结束标记
3、全局方式位标记
全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性
- 第二个数字为奇数时 –>加密
- 第二个数字为偶数时 –>未加密
4、辨别zip是真加密还是伪加密
1)无加密
压缩源文件数据区的全局加密应当为
00 00
(50 4B 03 04两个bytes之后)
且压缩源文件目录区的全局方式位标记应当为00 00
(50 4B 03 04四个bytes之后)2)伪加密
压缩源文件数据区的全局加密应当为
00 00
且压缩源文件目录区的全局方式位标记应当为09 00
3)真加密
压缩源文件数据区的全局加密应当为
09 00
且压缩源文件目录区的全局方式位标记应当为09 00
【CTF】ZIP 伪加密-CSDN博客
【CaptfEncoder】
一款可扩展跨平台网络安全工具套件CaptfEncoder-CSDN博客
buuctf-MISC篇做题笔记_buuctf小明的保险箱-CSDN博客
压缩包CRC明文攻击
zip明文攻击:在压缩过程中不会对文件进行更改,但会进行摘要处理,要求一个单独的文件已知且进行压缩之后的CRC值与某个包含此文件的压缩包的CRC值相等
zip压缩文件明文攻击以及相关问题_在选定的档案中没有匹配的文件-CSDN博客
已知文件:
未知密钥压缩包:
只要两者CRC值相等,那么就可以进行明文攻击
明文破解(千万不要让选手看到)-腾讯云开发者社区-腾讯云
【ARCHPR】
ARCHPR怎么使用?ARCHPR使用教程_文件管理_软件教程_脚本之家
明文攻击题目举例
【网络安全 | Misc】明文攻击 ACTF2020_ctf 已知明文攻击-CSDN博客
一道关于压缩包的ctf题目(包括暴力破解,明文攻击,伪加密)
五、内存镜像取证
volatility
内存取证-volatility工具的使用 (史上更全教程,更全命令)_volatility内存取证-CSDN博客
金砖大赛题举例
第46届金砖国家世界技能大赛湖北省选拔赛 内存取证样题一_第46界世界技能大赛湖北数据取证-CSDN博客
john破解密码工具
强网杯内存取证和磁盘恢复
强网杯2021 CipherMan (内存取证分析)_强网杯 取证-CSDN博客
[HDCTF2019]你能发现什么蛛丝马迹吗
BUUCTF:[HDCTF2019]你能发现什么蛛丝马迹吗-CSDN博客