【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-密码破解,真的是
前言
binwalk是一款用于分析二进制文件的工具,它可以扫描一个文件,识别其中的各种文件格式,并在其中搜索嵌入的文件和可执行代码。binwalk主要用于安全测试和数字取证方面的工作,可以用于寻找网络攻击和恶意软件中隐藏的信息。
binwalk可以对文件进行深度分析,包括静态和动态分析,可以检测流行的文件头、魔法数字、压缩和加密算法等。binwalk还可以搜索网络流量、捕获和分析通信协议、提取文件系统等。binwalk支持多种操作系统,包括Linux、MacOS、Windows等。
foremost是一款文件恢复工具,用于在文件系统中恢复已删除的文件。它可以在硬盘、CD、DVD、USB驱动器和闪存卡等存储设备上进行工作,并恢复基于文件的格式,如JPEG、PDF、ZIP等文件。foremost会快速扫描存储设备的二进制数据,查找头文件和脚注签名,以确定可能已删除文件的位置。
foremost支持多种文件格式的恢复,并可以自定义恢复的文件格式。它还可以通过搜索关键字来缩小搜索范围,以提高恢复速度和准确性。foremost可在Linux、Windows和MacOS操作系统上运行,可以作为命令行工具或图形用户界面进行操作。
1.打开题目
2.解题
首先是分离出来一个png得到一个key:ctfer2333
binwalk -e out.gif
foremost out.gif
分离gif 得到576张图片。一开始以为是二维码,然后一直捣鼓二维码。最后朋友提示说是二进制的格式,图片上的绿色为0 紫色为1 转换 。 尝试了绿色为1 和紫色为0 发现 绿色为0 紫色为1 可以转换。
用python进行解密得到
from PIL import Image
# 读取图片
image = Image.open('C:\\Users\\28919\\Desktop\\out.gif')
# 存放分离出的图片的路径
split = 'C:\\Users\\28919\\Desktop\\gif\\'
# 循环读取gif的每一帧
try:
while True:
# 当前位置
current = image.tell()
# 保存图片
image.save(split + str(current) + '.png')
# 移动到下一张
image.seek(current + 1)
except:
pass
# 储存提取出的字符
string = ''
# 直接把2进制转为10进制储存在line里
line = 0
i = 0
# 图片里每一个色块是10×10像素大小,总共24×24个色块
for y in range(24):
for x in range(24):
# 载入一张图片
pix = Image.open(split+str(i)+'.png').convert('RGBA').load()
# 读取色块的颜色值
r, g, b, p = pix[x*10,y*10]
if g == 255:
# 0
line = line << 1
if r == 255 and b == 255:
# 1
line = (line << 1) + 1
i += 1
# 凑够8位就把line转为字符储存在string里
if i%8 == 0:
string += chr(line)
line = 0
print(string)
得到o8DlxK+H8wsiXe/ERFpAMaBPiIcj1sHyGOMmQDkK+uXsVZgre5DSXw==hhhhhhhhhhhhhhhh
各种尝试无果之后去掉 后面hhhhhhhhhh可能是那个加密的key (可能是最开始解密出来的png图片的意思,并不是说是ctfer23333,请勿错误理解)
然后进行des解密如下: 得到flag:
- 点赞
- 收藏
- 关注作者
评论(0)