[MRCTF2020]Hello_ misc

解压得一个png图片和一个flag.rar

图片拖入010editor

选择带zip头的这段蓝色全部复制,file-new-new Hex File,黏贴到新文件,另存为为1.zip

要密码,线索中断(当然try to restore it.png,隐藏了zip压缩包,可以用binwalk 、foremost分离。)

再去看图片是否隐写

方法一使用StegSolve查看隐写

Release StegSolve 1.4 · Giotino/stegsolve · GitHub

上面是stegslove 1.4版本下载地址,支持图片拖放

方法二使用Zsteg查看隐写

使用zsteg it.png命令看到有zip和lsb隐写

分别使用

zsteg -e "extradata:0" > 2.zip

zsteg it.png -E "b1,r,lsb,xy" > at.png

提取zip和png

图片转文字 - 图片转Excel表格 - PDF转Word - 白描网页版

!@#$%67*()-+

用这个密码解压flag.rar提示密码错误

去解压之前用010edittor从图片手工提取的zip分卷压缩文件成功,得到一个out.txt

这是啥,使用TTl解密,哪下面的博客用过的脚本解密

[SWPU2019]Network-CSDN博客

import binascii

binary_dict = {

'63': '00',

'127': '01',

'191': '10',

'255': '11'

}

with open('out.txt', 'r') as f:

binary_str = ''.join(binary_dict.get(num.rstrip(), '') for num in f)

number = ''.join(chr(int(binary_str[i:i+8], 2)) for i in range(0, len(binary_str), 8))

print("Binary String:", binary_str)

print("Decoded Number:", number)

下面是要输出的文件的,没有用注释掉

#data = binascii.unhexlify(number)

#with open('pass1.txt', 'wb') as f2:

f2.write(data)

拿0ac1fe6b77be5dbe作为密码去解压flag.zip

解压发现是word,改为docx后缀,打开

改色看到内容

import base64

要解码的字符串

encoded_str = '''MTEwMTEwMTExMTExMTEwMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTEwMDAwMDAxMTExMTExMTExMDAxMTAx

MTEwMTEwMTEwMDAxMTAxMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTEwMTEwMDEx

MTEwMDAwMTAxMTEwMTExMDExMTEwMTExMTExMTAwMDExMTExMTExMTExMDAxMDAxMTAxMTEwMDAwMDExMTExMDAwMDExMTExMTEx

MTEwMTEwMTAwMDAxMTExMDExMTEwMTExMTExMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTExMTExMTAwMTEwMTExMTExMTExMTEx

MTEwMTEwMTAxMTExMTExMDExMTEwMTExMTAxMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTAxMTExMTAwMTEwMTExMTExMTExMTEx

MTEwMTEwMTAwMDAxMTAwMDAwMTEwMDAwMDAxMTAwMDExMTAwMDAwMTEwMTEwMTEwMTAxMTEwMDAwMDAxMTExMDAwMDExMTExMTEx'''

按行分割字符串

lines = encoded_str.split('\n')

逐行解码并打印

for line in lines:

decoded_str = base64.b64decode(line).decode()

decoded_str = decoded_str.replace('1', ' ')

print(decoded_str)

或者把word里那几行base64拷贝出另存为3.txt,使用下面脚本

mport base64

with open('3.txt', 'r', encoding='utf-8') as file:

for line in file:

line = line.encode('utf-8').decode('unicode_escape')

line = base64.b64decode(line).decode('utf-8')

#print(line)

decoded_line = line.replace('1',' ').replace('0','o')

print( decoded_line)

He1Lo_mi5c~

flag{He1Lo_mi5c~}

相关推荐
ALe要立志成为web糕手4 小时前
SESSION_UPLOAD_PROGRESS 的利用
python·web安全·网络安全·ctf
jingshaoyou10 小时前
Strongswan linked_list_t链表 注释可独立运行测试
数据结构·链表·网络安全·list
鹅肝手握高V五色12 小时前
Wireshark入门教程:如何抓取和过滤网络数据包
websocket·网络协议·tcp/ip·http·网络安全·https·udp
christine-rr13 小时前
密码学基础——古典密码学
密码学
nixiaoge14 小时前
RCE漏洞
网络安全
禾木KG15 小时前
网络安全-等级保护(等保) 1-0 等级保护制度公安部前期发文总结
网络安全
网络抓包与爬虫15 小时前
Wireshark——抓包分析
websocket·网络协议·tcp/ip·http·网络安全·https·udp
仙女很美哦16 小时前
Flutter视频播放、Flutter VideoPlayer 视频播放组件精要
websocket·网络协议·tcp/ip·http·网络安全·https·udp
CYRUS STUDIO17 小时前
Unidbg Trace 反 OLLVM 控制流平坦化(fla)
android·汇编·算法·网络安全·逆向·ollvm
写代码的小王吧18 小时前
【Java可执行命令】(十)JAR文件签名工具 jarsigner:通过数字签名及验证保证代码信任与安全,深入解析 Java的 jarsigner命令~
java·开发语言·网络·安全·web安全·网络安全·jar