随机配图

0x00 伏羲八卦(Base8)

题目分析

附件是一个 Python 脚本,功能是将输入的字符串转换为八卦符号:

 1def strTo8bArr(str):
 2    arr = []
 3    nByte = bytes(str, encoding='utf-8')
 4    for n2 in nByte:
 5        arr.append(oct(n2))
 6    return arr
 7
 8def toBaGua(strArr):
 9    code = {'0': '☰', '1': '☱', '2': '☲', '3': '☳',
10            '4': '☴', '5': '☵', '6': '☶', '7': '☷'}
11    returnStr = ''
12    for b in strArr:
13        bStr = b.replace('0o', '')
14        if len(bStr) < 3:
15            bStr = '0' + bStr
16        for s in bStr:
17            returnStr += code[s]
18    return returnStr

核心原理

  1. 将字符串转换为 UTF-8 字节序列
  2. 将每个字节转换为 3 位八进制数
  3. 将八进制数字映射到八卦符号:
    • 0 → ☰ (乾)
    • 1 → ☱ (兑)
    • 2 → ☲ (离)
    • 3 → ☳ (震)
    • 4 → ☴ (巽)
    • 5 → ☵ (坎)
    • 6 → ☶ (艮)
    • 7 → ☷ (坤)

解题方法

方法 1:逆向解密脚本

 1def baGuaToStr(baGuaStr):
 2    code = {'☰': '0', '☱': '1', '☲': '2', '☳': '3',
 3            '☴': '4', '☵': '5', '☶': '6', '☷': '7'}
 4    octArr = []
 5    tempStr = ''
 6    for s in baGuaStr:
 7        tempStr += code[s]
 8        if len(tempStr) == 3:
 9            octArr.append(int(tempStr, 8))
10            tempStr = ''
11    return bytes(octArr).decode('utf-8')

方法 2:手工转换

  1. 建立八卦符号与八进制数字映射表
  2. 将八卦符号分组(每 3 个一组)
  3. 每组转换为 3 位八进制数
  4. 将八进制数转换为字节
  5. UTF-8 解码获取原始字符串

方法 3:二进制转换

  1. 八卦符号 → 八进制数字
  2. 八进制 → 二进制(每组 3 位)
  3. 二进制分组(每 8 位一组)
  4. 二进制 → ASCII 字符

0x01 高举社会主义旗帜

解题步骤

  1. 图片底部发现 Base64 字符串:
15L2b5puw77ya5Lqm5ZOG56We6JKZ5L6E5aS36Kuz6YGu5ryr6ZuG6L+m5LuW55Gf6Kuz6ZmA5ryr5aWi6Kum5oCv5ryr6Kuz6ICF6IiN5oCv6LeL57y96YKj6YGg6Yav56We5a+G55+l572w56mG5L6d5qK16I+p5oCv5pGp5Lul5Zyw5qeD5pWF6Zmk6ZeN5YiH5qK156m257y96YKj5q6/6Kuz6YO95qWe5b+D5pyL5aWi5Zyw5LiN576v572w5piv5raF5bC85LiN5ZOG56mG5ZOG6Jap6Kuz5ruF5Yud6ZmA576F5aWi5qWe5a+m5aWi5o+Q6L+m5aSn5L6d5L2b5Yal6YKj5YOn5ZGQ55uh6JeQ5q6/6bq85Ly95oCW55qk5oCb5ZGQ6LeL5a6k572w56m25Yal6IC25ZGQ56We55qk56uf6Kuz5LiA6ZuG5oCb5L+x5LiA5qWe5L6E6JiH5pW45YOn5LiN55qk5oCb5oCv5a+r6JiH56SZ5L+x5LuW5amG5ZOG5pyJ5qK156m2572w6YKj5qK15a2V6Ium5aSi5qK16Jap55Gf55qk6IiN5LyK5Yal5Yip5ZOG5piv5L6E6Zi/5oCv6Kum572w5pyJ6YCd5raF55qk5bC85Lul572w5ZKS5ZGQ6ICF6JeQ5Yal5Yud5L+x6LeL6Ium5Yip5aWi6ICF5Yal6ICF6Zi/5L6E5ryr6ICB6JKZ5oCv5ruF6Ly45ZOG576v5ZOG5ryr5L+x5Lqm5oCv6YGT6Ku456uf57y95LyK6JiH6Kuz5ZKS6Kuz6Iez5bid5L6d5LiW5L6E5Y2z57y96Ku45Yal5Lul572w55uh6IiN57y95aS35pm65L6E5amG5aSi6Kuz5amG5oCb5aWi5raF5L2b5ZOG576v5L6E5bC85oCv6ICB5Lqm5a2V6Iis5Y2X5aiR5ZGQ55uh5L6E6ICB44CC6Zi/6Zq45aWi55uh6Ki25ZGQ5YiH6Kuz6aGb55uh5qK16Iis5ZG86JeQ5Yal56mG5L6E5YCS572w6IC25rOi5aSn6YCd55yf5L+x5ruF572w5a+m5Ly957y956m26JKZ5qK154Sh6Zui6JiH5q275aWi56m2572w5YiH5a+m5q275oCv6Ium5ZKS5pyJ5o+Q572w55uh5Yal56We5puz5pGp5LiJ57y95aiR5L6E5qWe5qK156uf5ZOG6Ium5qK154iN6Iez5ZGQ6YGu55qk6ICB5LyK5oCv6Ki26Zq454m55rKZ56We6JeQ576v6Kuz5ruF56m25aWi5Lul6aGb5oCv6YO9572w5Zyw54Sh55qk6LeL5a+r5ZOG5o+Q55qk5pm65puz5LiN55qk6ZeN56We5pyL5a6k5qK16Jap57y96YKj5aeq5YOn5b6X6YGu5L6E6LGG57y956mG5o+Q5oCv5q6/57y95oOz5aS35ZG86Kuz5a2V5L+x6Kum54iN5L6E5o+Q5L6d5L6E5a+m5L6E6IC25aWi5raF6IC25YiH572w5Y+D6Ky55aWi5aS36LeL5qK16Ku46JiH5aWi5Y2z5Yal6ZeN5Y2z5a+m5q275ryr5pm65L6E5b6X5ZOG5aiR5pGp5Yal6ZeN5ZOG6IC2572w6ZeN5piO5ZGQ5aSi5aiR6Kum5aiR5LiK5LiJ57y95oKJ5piv6Zi/56SZ6ICF
  1. Base64 解码得到佛经密文:
1佛曰:亦哆神蒙侄夷諳遮漫集迦他瑟諳陀漫奢諦怯漫諳者舍怯跋缽那遠醯神密知罰穆依梵菩怯摩以地槃故除闍切梵究缽那殿諳都楞心朋奢地不羯罰是涅尼不哆穆哆薩諳滅勝陀羅奢楞實奢提迦大依佛冥那僧呐盡藐殿麼伽怖皤怛呐跋室罰究冥耶呐神皤竟諳一集怛俱一楞侄蘇數僧不皤怛怯寫蘇礙俱他婆哆有梵究罰那梵孕苦夢梵薩瑟皤舍伊冥利哆是侄阿怯諦罰有逝涅皤尼以罰咒呐者藐冥勝俱跋苦利奢者冥者阿侄漫老蒙怯滅輸哆羯哆漫俱亦怯道諸竟缽伊蘇諳咒諳至帝依世侄即缽諸冥以罰盡舍缽夷智侄婆夢諳婆怛奢涅佛哆羯侄尼怯老亦孕般南娑呐盡侄老。阿隸奢盡訶呐切諳顛盡梵般呼藐冥穆侄倒罰耶波大逝真俱滅罰實伽缽究蒙梵無離蘇死奢究罰切實死怯苦咒有提罰盡冥神曳摩三缽娑侄楞梵竟哆苦梵爍至呐遮皤老伊怯訶隸特沙神藐羯諳滅究奢以顛怯都罰地無皤跋寫哆提皤智曳不皤闍神朋室梵薩缽那姪僧得遮侄豆缽穆提怯殿缽想夷呼諳孕俱諦爍侄提依侄實侄耶奢涅耶切罰參謹奢夷跋梵諸蘇奢即冥闍即實死漫智侄得哆娑摩冥闍哆耶罰闍明呐夢娑諦娑上三缽悉是阿礙者
  1. 使用佛曰解码工具解密:
1自由敬业平等诚信平等公正民主公正诚信和谐平等友善敬业公正民主平等友善敬业公正和谐法治敬业公正文明公正平等法治文明平等友善敬业法治和谐公正平等公正和谐法治平等法治文明公正敬业法治自由法治敬业平等诚信平等公正平等公正友善爱国公正法治公正敬业公正友善爱国公正平等公正平等法治文明
  1. 使用社会主义核心价值观解码获取flag:
1I_am_a_cyber_security_engineer

0x02 我也很疑惑

题目分析

图片显示异常,宽高不正确导致无法完整显示内容

解题步骤

  1. 使用 Hex 编辑器(如 010 Editor)打开图片文件

  2. 定位到 PNG 文件的 IHDR 块(文件头后 8 字节开始)
    IHDR位置

  3. 修改宽度值:

    • 原始值:00 00 00 09
    • 修改为:00 00 00 FF
  4. 保存修改后打开图片即可显示完整 flag

0x03 看不见的文字

题目分析

文件包含大量09(TAB) 和20(空格)字符,需要转换处理

原始数据

 120 09 09 20 20 09 09 20 20 09 09 20 09 09 20 20
 220 09 09 20 20 20 20 09 20 09 09 20 20 09 09 09
 320 09 09 09 09 20 09 09 20 20 09 09 20 09 09 09
 420 09 09 20 20 20 20 09 20 20 09 09 20 09 20 09
 520 20 09 09 20 09 09 09 20 09 09 20 20 20 20 09
 620 20 09 09 20 09 20 09 20 09 09 20 20 20 20 09
 720 20 09 09 20 09 09 09 20 20 09 09 20 09 20 20
 820 20 09 09 20 20 09 09 20 20 09 09 09 20 20 20
 920 20 09 09 09 20 20 09 20 20 09 09 20 09 20 20
1020 09 09 20 20 20 20 09 20 20 09 09 20 20 20 20
1120 09 09 20 20 09 20 09 20 09 09 09 09 09 20 09

解题方法

  1. 二进制转换:

    • 空格 (20) → 0
    • TAB(09) → 1
  2. 转换后二进制数据:

101100110 01101100
201100001 01100111
301111011 01100001
401100100 01101101
501101001 01101110
601111101
  1. 使用 010 Editor 将二进制转换为文本:

    • 选择"Edit" → "Paste From" → "Binary Text"
    • 粘贴二进制数据
  2. 得到 MD5 哈希值:flag{admin}

0x04 流量分析

题目要求

  1. BT 下载的文件是什么?
  2. BT 下载是什么时候开始的?

解题步骤

问题 1:BT 下载的文件

  1. 过滤 BT 协议流量:bittorrent
    BT协议过滤

  2. 识别 BT 种子文件特征:

    • BT 种子文件通常以.torrent扩展名传输
    • 文件签名:64 38 3A 61 6E 6E 6F 75 6E 63 65 (d8:announce)
  3. 在 Wireshark 中搜索.torrent
    种子文件搜索

  4. 找到唯一相关数据包:flag.txt.torrent

问题 2:下载开始时间

  1. Wireshark 默认显示相对时间,需切换为绝对时间:

    • 菜单路径:View → Time Display Format → UTC Date and Time
  2. 定位第一个 BT 协议数据包的时间戳:
    第一个BT数据包

  3. 获取精确时间:2023-03-15 08:30:45 UTC

关键技巧

  1. 协议过滤:使用bittorrent快速定位相关流量
  2. 文件特征识别:掌握常见文件类型的签名特征
  3. 时间格式转换:理解 Wireshark 的时间显示设置
  4. 元数据分析:BT 协议包含丰富的元数据信息

通过系统化的流量分析方法,能快速定位关键信息,提高 CTF 解题效率。掌握协议特征和时间分析技巧是网络取证的核心能力。


标题:校内小测CTF官方解析:强化安全技能实战指南
作者:林息
地址:https://blog.linxcube.cn/articles/2025/08/17/1755421399565.html