CTF-WEB(MISC)

安全攻防知识——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信息查看器 

文件头格式

常见文件的格式包括文件头、文件体和文件尾

  • 文件头包括产生或编辑文件的软件信息以及文件本身的参数,文件头格式错误会导致文件不可用
  • 文件体是文件的主体部分,包含了文件的具体数据,对文件的容量起决定性的作用
  • 文件尾是可选项,可以包含一些用户信息
文件类型文件头格式文件尾格式
JPEGFF D8 FFFF D9
PNG89 50 4E 47 0D 0A 1A 0A49 45 4E 44 AE 42 60 82
GIF47 49 46 38 39 6100 3B
BMP42 4D00 00 00 00
MP349 44 33FF FB
WAV52 49 46 463E 00 00 00
AVI52 49 46 4600 00 00 00
MP400 00 00 20 66 74 79 70 69 73 6F 6D00 00 00
ZIP50 4B 03 0450 4B 05 06
RAR52 61 72 21 1A 07 0000 00 00
PDF25 50 44 460A 25 25 45 4F 46
DOCX50 4B 03 0450 4B 05 06
EXE4D 5A-
ELF7F 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格式的组成:

  1. png文件标志,固定64字节:0x89504e47 0x0d0a1a0a
  2. 文件头数据块IHDR
  3. 调色板数据块PLTE
  4. sBIT,tRNS块
  5. 图像数据块IDAT
  6. 图像结束数据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 binasciicrcbp = 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) & 0xffffffffif(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 res = 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值相比较的值

粉色框中数字代表返回的数据的长度(要依据这个来判断上面的语句是否正确)

二分法取第一位:

  1. asci有 128个所以从 64 开始判断、然后是96(64和128的中间值),说明>64是正确的,才会取96
  2.  80、80小于96,说明>96是错误的,所以才会取 64和96 的中间值 80
  3.  72,说明>80是错误的,取80和64之间的中间值72
  4.  76,说明>72是正确的,才会取 72 和80之间的中间值76
  5.  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':continuenums.append(int(line[6:8],16))keys.close()output = ""
for n in nums:if n == 0 :continueif 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改为8out=''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:breakfi.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博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3004156.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt QML】QLibrary加载共享库中的类

QLibrary是一个用于加载动态链接库&#xff08;或称为共享库&#xff09;的类。它提供了一种独立于平台的方式来访问库中的功能。 在QLibrary中&#xff0c;可以通过构造函数或setFileName()方法设置要加载的库文件名。当加载库文件时&#xff0c;QLibrary会搜索所有平台特定的…

设计模式: 责任链模式

目录 一&#xff0c;责任链模式 二&#xff0c;特点 四&#xff0c;实现步骤 五&#xff0c;代码 一&#xff0c;责任链模式 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种软件设计模式&#xff0c;它属于行为型模式。在这种模式中&#xff0c…

量子城域网建设设备系列(二):量子密钥管系统(KMS)

在上文介绍光量子交换机的文章中我们提到&#xff0c;量子保密通信网络的通道切换是由量子密钥管理系统&#xff08;Key Management System&#xff0c;KMS&#xff09;给光量子交换机下发信道切换指令&#xff0c;实现整个网络中任意两对量子密钥分发终端的量子信道互联互通&a…

数据分析--客户价值分析RFM(分箱法/标准化)

原数据 原数据如果有异常或者缺失等情况&#xff0c;要先对数据进行处理 &#xff0c;再进行下面的操作&#xff0c;要不然会影响结果的正确性 一、根据RFM计算客户价值并对客户进行细分 1. 数据预处理 1.1 创建视图存储 R、F、M的最大最小值 创建视图存储R 、F、M 的最大最小…

探索高级聚类技术:使用LLM进行客户细分

在数据科学领域&#xff0c;客户细分是理解和分析客户群体的重要步骤。最近&#xff0c;我发现了一个名为“Clustering with LLM”的GitHub仓库&#xff0c;它由Damian Gil Gonzalez创建&#xff0c;专门针对这一领域提供了一些先进的聚类技术。在这篇文章中&#xff0c;我将概…

Java中使用Redis实现分布式锁的三种方式

1. 导语 随着软件开发领域的不断演进,并发性已经成为一个至关重要的方面,特别是在资源跨多个进程共享的分布式系统中。 在Java中,管理并发性对于确保数据一致性和防止竞态条件至关重要。 Redis作为一个强大的内存数据存储,为在Java应用程序中实现分布式锁提供了一种高效的…

VTK 的可视化方法:Cutting Probing

VTK 的可视化方法&#xff1a;Cutting & Probing VTK 的可视化方法&#xff1a;Cutting & ProbingCuttingProbing VTK 的可视化方法&#xff1a;Cutting & Probing Cutting 和 Probing 都是对三维数据截取二维平面的方法。它们的区别是&#xff1a; Cutting 使用…

Java-异常处理-处理RuntimeException(2/2)

下面有一个简单的整数除法运算程序&#xff0c;输入两个整数作为被除数和除数&#xff0c;在正常情况下&#xff0c;会输出两数相除的整数商。 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.i…

私域运营的崛起:企业第三极销售渠道的战略思考与定制开发AI智能名片B2B2C商城小程序

在数字化营销的新时代&#xff0c;私域运营如同璀璨新星&#xff0c;已然崛起为企业不可或缺的第三极销售渠道。那么&#xff0c;如何善用这一新兴领域的价值&#xff0c;使之为企业带来持续增长和竞争力&#xff0c;已成为众多企业需要从战略层面深入思考的问题。而在这一过程…

Node.js -- MongoDB

文章目录 1. 相关介绍2. 核心概念3. 命令行交互3.1数据库命令3.2 集合命令3.3 文档命令 4. 数据库应用场景4.1 新增4.2 删除4.3 更新4.4 查询 5. 图形化工具Robo 3T 1. 相关介绍 一、简介 Mongodb是什么 MongoDB是一个基于分布式文件存储的数据库&#xff0c;官方地址https://…

如何使用免费软件从Mac恢复音频文件?

要从Mac中删除任何文件&#xff0c;背后是有原因的。大多数Mac用户都希望增加Mac中的空间&#xff0c;这就是为什么他们更喜欢从驱动器中删除文件以便出现一些空间的原因。一些Mac用户错误地删除了该文件&#xff0c;无法识别这是一个重要文件。例如&#xff0c;他们错误地从Ma…

C++_set和map的学习

1. 关联式容器 STL中的容器有序列式容器和关联式容器。 其中 vector 、 list 、 deque 、 forward_list(C11)就是序列式容器&#xff0c; 因为其底层为线性序列的数据结构&#xff0c;里面 存储的是元素本身 关联式容器 也是用来存储数据的&#xff0c;与序列式容器不同的是&am…

Leetcode 108.将有序数组转换为二叉搜索树

题目描述 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#xff1a;[0,-10,5,null,-3,null,9] 也将被…

牛客网刷题 | BC73 计算一元二次方程

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 从键盘输入a, b, c的…

Scala应用 —— JDBC的创建

文章目录 Scala应用 —— JDBC的创建前言一、JDBC的创建过程1.初始化连接1.1 配置驱动1.2 创建连接对象 2. 初始化执行器2.1 创建执行器对象2.2 初始化执行器参数 3. 执行操作并返回结果 二、Scala JDBC的基本设计思路1. 操作步骤设计2. 解决结果差异化3.实现jdbc方法并输出结果…

使用unreal engine5.3.2创建c++第一人称游戏

UE5系列文章目录 文章目录 UE5系列文章目录前言一、NuGet 简介二、解决方法&#xff1a; 前言 为了使用unreal engine5.3.2创建c第一人称游戏&#xff0c;今天安装了Visual Studio 2022专业版。在ue5中创建c工程&#xff0c;结果编译器报错&#xff1a; 严重性 代码 说明 项目…

ThreeJS:坐标辅助器与轨道控制器

ThreeJS与右手坐标系 使用ThreeJS创建3D场景时&#xff0c;需要使用一个坐标系来定位和控制对象的位置和方向。 ThreeJS使用的坐标系是右手坐标系&#xff0c;即&#xff1a;X轴向右、Y轴向上、Z轴向前&#xff0c;如下图所示&#xff0c; ThreeJS-右手坐标系 Tips&#xff1a;…

python 11Pandas数据可视化实验

实验目的&#xff1a; 学会使用Pandas操作数据集&#xff0c;并进行可视化。 数据集描述&#xff1a; 该数据集是CNKI中与“中药毒理反应”相关的文献信息&#xff0c;包含文章题目、作者、来源&#xff08;出版社&#xff09;、摘要、发表时间等信息。 实验要求&#xff1…

文件传送协议

壹、文件传输协议FTP 一、FTP简介 文件传送协议FTP曾是互联网上使用最广泛的协议&#xff1b; 在互联网发展的早期阶段&#xff0c;用FTP传送文件约占整个互联网的通信量的三分之一&#xff1b;知道1995年&#xff0c;www的通信量才首次超过FTP。 FTP实现的是通过网络实现异…

口袋实验室--使用AD2高效调试IIC、UART、SPI等低速接口

目录 1. 简介 2. 调试过程 2.1 简要步骤 2.2 Si5338 寄存器配置流程 2.3 AD2的基本配置 2.4 检查Si5338状态 2.5 配置Si5338寄存器 2.6 保存Si5338寄存器 3. 总结 1. 简介 使用Digilent Analog Discovery 2进行调试不仅提升了工作效率&#xff0c;而且极大地简化了常…