首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >BUUCTF [MRCTF2020]Hello_ misc 1

BUUCTF [MRCTF2020]Hello_ misc 1

作者头像
YueXuan
发布2025-08-18 20:33:39
发布2025-08-18 20:33:39
10900
代码可运行
举报
运行总次数:0
代码可运行

题目描述:

得到的 flag 请包上 flag{} 提交。 感谢Galaxy师傅供题。

密文:

下载附件解压,得到hello文件夹,两个文件


解题思路:

1、解压flag.rar需要密码,先处理try to restore it.png图片。

盲猜LSB隐写,用StegSolve打开,在Red 0通道发现PNG图片数据。

保存为png文件,得到:

得到zip-passwd密码,但不是flag.rar的密码。

2、用010 Editor打开try to restore it.png图片,在文件尾找到PK文件头,提取出来保存为zip文件。

使用刚得到的密码解压,得到out.txt,文件内容如下:

代码语言:javascript
代码运行次数:0
运行
复制
127
255
63
191
127
191
63
127
127
255
63
191
63
191
255
127
127
255
63
63
127
191
63
127
127
255
63
255
127
255
63
255
127
255
127
255
127
191
127
63
63
255
191
191
63
255
63
63
127
191
63
127
127
191
63
255
63
255
63
127
127
191
127
191
127
191
127
127
63
255
127
191
127
191
63
191
63
255
127
255
63
255
127
255
127
191
63
191
127
191
127
127
63
255
127
127
127
191
127
63
127
191
63
191
127
191
127
127

一眼TTL隐写,解密脚本如下:

代码语言:javascript
代码运行次数:0
运行
复制
# @Author:YueXuan
# @Date  :2024/10/10 16:56

def read_numbers_from_file(filename):
    """从文件中读取数字列表"""
    with open(filename, 'r') as file:
        numbers = [int(line.strip()) for line in file]
    return numbers

def decode_ttl(numbers):
    """解码数字列表为二进制字符串"""
    binary_str = ''
    mapping = {63: '00', 127: '01', 191: '10', 255: '11'}
    for number in numbers:
        binary_str += mapping[number]
    return binary_str

def binary_to_string(binary_str):
    """将二进制字符串转换为ASCII字符串"""
    text = ''
    for i in range(0, len(binary_str), 8):
        byte = binary_str[i:i+8]
        text += chr(int(byte, 2))
    return text

def main():
    filename = 'out.txt'  # 输入文件名
    output_filename = 'output.txt'  # 输出文件名

    # 从文件读取数字
    numbers = read_numbers_from_file(filename)

    # 解码数字为二进制字符串
    binary_str = decode_ttl(numbers)

    # 将二进制字符串转换为ASCII字符串
    hidden_text = binary_to_string(binary_str)

    # 输出结果
    print("隐藏的文本:", hidden_text)

    # 可选地保存到文件
    with open(output_filename, 'w') as output_file:
        output_file.write(hidden_text)

if __name__ == '__main__':
    main()

解密得到rar-passwd:0ac1fe6b77be5dbe,rar压缩包的密码。

3、用得到的密码解压flag.rar压缩包,得到flag文件夹下的fffflag.zip文件。

然而它是一个doc文件,更改后缀打开。打开之后,全选内容更改字体颜色,得到一堆密文。(Where is the flag ?)

代码语言:javascript
代码运行次数:0
运行
复制
MTEwMTEwMTExMTExMTEwMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTEwMDAwMDAxMTExMTExMTExMDAxMTAx
MTEwMTEwMTEwMDAxMTAxMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTEwMTEwMDEx
MTEwMDAwMTAxMTEwMTExMDExMTEwMTExMTExMTAwMDExMTExMTExMTExMDAxMDAxMTAxMTEwMDAwMDExMTExMDAwMDExMTExMTEx
MTEwMTEwMTAwMDAxMTExMDExMTEwMTExMTExMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTExMTExMTAwMTEwMTExMTExMTExMTEx
MTEwMTEwMTAxMTExMTExMDExMTEwMTExMTAxMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTAxMTExMTAwMTEwMTExMTExMTExMTEx
MTEwMTEwMTAwMDAxMTAwMDAwMTEwMDAwMDAxMTAwMDExMTAwMDAwMTEwMTEwMTEwMTAxMTEwMDAwMDAxMTExMDAwMDExMTExMTEx

密文使用Base64隐写加密,使用下面的解密脚本进行解密

Base64隐写加解密工具

代码语言:javascript
代码运行次数:0
运行
复制
python b64steg.py -f flag.txt -s output.txt

得到

代码语言:javascript
代码运行次数:0
运行
复制
110110111111110011110111111111111111111111111111101110000001111111111001101
110110110001101011110111111111111111111111111111111101111111111111110110011
110000101110111011110111111100011111111111001001101110000011111000011111111
110110100001111011110111111011101111111110110110101111111100110111111111111
110110101111111011110111101011101111111110110110101101111100110111111111111
110110100001100000110000001100011100000110110110101110000001111000011111111

4、全选数据,回到fffflag.doc文件中,粘贴进去。然后搜索“0”,见证奇迹的时刻,你得到了flag。

flag:

代码语言:javascript
代码运行次数:0
运行
复制
flag{He1Lo_mi5c~}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述:
  • 密文:
  • 解题思路:
  • flag:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档