当前位置: 代码迷 >> 综合 >> 【XCTF 攻防世界】MISC 杂项 新手练习区 base64stego
  详细解决方案

【XCTF 攻防世界】MISC 杂项 新手练习区 base64stego

热度:37   发布时间:2024-02-08 13:51:15.0

题目链接:https://adworld.xctf.org.cn/task/answer?type=misc&number=1&grade=0&id=5107&page=1

下载附件,得到一个压缩包
使用7z或者Windows自带的解压打开,都能得到一个stego的txt文件
(2345解压太不方便了,还要用010editor改下十六进制文件内容,因为这个文件被修改成伪加密了)

很长一大串,用base64解密也得不到结果

后来了解到,bsae64也有隐写术

解密脚本如下:
(python3)
打不开的话stego的位置改成绝对路径

# -*- coding: cp936 -*-
import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:bin_str = ''for line in f.readlines():stegb64 = str(line, "utf-8").strip("\n")rowb64 =  str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")offset = abs(b64chars.index(stegb64.replace('=','')[-1])-b64chars.index(rowb64.replace('=','')[-1]))equalnum = stegb64.count('=') #no equalnum no offsetif equalnum:bin_str += bin(offset)[2:].zfill(equalnum * 2)print(''.join([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)])) #8 位一组

得到flag

  相关解决方案