当前位置: 首页 > news >正文

201912_BUUCTF_Base64隐写

tags:Base64隐写

0x00. 题目

附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件

附件名称:201912_BUUCTF_Base64隐写.zip

0x01. WP

打开文件发现为多行Base64文本,猜测为Base64隐写

exp1.py

# 使用现成第三方库进行解码
import b64steg
with open('flag.txt' ,'r') as f:s=f.read()print(b64steg.decry(s))
# b'GXY{fazhazhenhaoting}\x00'

exp2.py

从Base64编码算法入手逆向解码分析隐写二进制内容,并将二进制内容转为字符串

import base64def int2Bin(digit):return bin(digit)[2:]  #将索引转成二进制,去掉'0b';def binAsc(string):       #二进制转成ASCII码temp = ''for i in range(int(len(string) / 8)):temp += chr(int(string[i * 8 : i* 8 + 8] , 2))return tempdef readBase64FromFile(filename):Base64Char = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"     #Base64字符集 已按照规范排列result = ''with open(filename ,'r') as f:for data in f.readlines():if data.find('==') > 0:result += int2Bin(Base64Char.index(data[-4]))[-4:]    #根据隐写原理,‘==’情况取等号前最后一个字符转换后取后4位elif data.find('=') > 0:result += int2Bin(Base64Char.index(data[-3]))[-2:]    #根据隐写原理,‘=’情况取等号前最后一个字符转换后取后2位print(binAsc(result))readBase64FromFile('flag.txt')
# GXY{fazhazhenhaoting}
http://www.hskmm.com/?act=detail&tid=386

相关文章:

  • 软考达人-案例分析
  • kettle插件-sqlserver cdc插件,从sqlserver获取实时数据so easy,早早下班
  • golang netpoll 底层原理
  • manim如何按绝对时间管理动画
  • MATLAB R2025a安装教程和资源(中文版)
  • Xmanager Power Suite使用教程 - Invinc
  • try hack me.md
  • Snapshot-based State Replication 基于快照的状态复制网络框架,快照同步
  • Transformer通俗讲解
  • Ubuntu 安装微信
  • Ubuntu 安装截图软件 flameshot
  • Kali连接postgreSQL失败(已解决)
  • 主存储器和cpu的链接
  • 7. LangChain4j + 记忆缓存详细说明 - Rainbow
  • 英语_阅读_water protection team_待读
  • 滑动窗口(不与单调队列结合的总结)
  • Codeforces Round 1048 (Div 2)
  • 9.9未完成
  • 9.9日总结
  • 202205_宁波市赛_Cr4ck2
  • GitHub Copilot代码审查大升级!路径级指令+组织级规范,开发者效率再提升!
  • 20250909 GOJ 模拟赛
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名语音识别框架需求洞察
  • SOS dp(高维前缀dp)
  • 英语_阅读_raise awareness about water conservation_待读
  • 自我介绍
  • MQ
  • 微信消息模版推送
  • [豪の学习笔记] 软考中级备考 基础复习#5
  • 自我介绍+软工五问