TomatoTools 一款CTF杂项利器

TomatoTools是一款用于CTF比赛的工具,专注于杂项问题的编码和密码算法解密,具备自动密文分析和flag提取功能。它支持多种编码和密码算法,包括Base系列、ROT、AAencode等,并允许用户自定义插件以增强其功能。通过自动分析和解密,TomatoTools能帮助用户快速识别和解密复杂密文,提高解题效率。
摘要由CSDN通过智能技术生成

TomatoTools 一款CTF杂项利器

0x00 背景

    以往在解MISC题时会遇到了编码或者是加密后的字符串,只能凭借个人对各种编码和密码学的熟悉程度去判断密文的类型

    以base16/32/64编码为例,区分这三种base系列的编码常常是与其密码(字母)表的范围去判断识别,base16是0-9a-f,base32是2-7A-Z,base64是A-Za-z0-9+/

    若假设密文是 *MZWGCZ33GEZDGNBVGZ6Q====* ,根据前面说的内容可以很轻松的得知这段密文是base32编码后的结果,解码可以得到明文为 flag{123456}

    如果是在自身知识储备不足的情况下,没有系统地学习过各种编码解码和密码学的理论和知识,在遇到那些多重嵌套加密的密文就容易傻眼,到了关键部分不会分析密文,判断不了密文类型,也没办法解密得到flag。

    那能不能根据前面说的,用判断字母表的方式去做个自动分析密文类型的工具呢?

于是,TomatoTools来了!

0x01 能做什么

TomatoTools 拥有CTF杂项中常见的编码密码算法的加密和解密方式,还具有自动提取flag的能力,以及异常灵活的插件模块。
请添加图片描述

目前支持36种编码和密码算法的加密和解密,包括

  • Base16/32/36/58/62/64/85/91/92
  • ROT5/13/18/47
  • AAencode / XXencode / UUencode / JJencode
  • Brainfuck / JSFuck / Jother
  • Emoji
  • 核心价值观编码 / 与佛论禅
  • 莫斯密码 / 培根密码 / 云影密码 / 埃特巴什码 / 波利比奥斯方阵密码 / 凯撒密码 / 栅栏密码
  • Shellcode / Handycode / URL
  • 敲击码 / A1z26密码 / Quoted-printable编码
  • 二进制010编码

其中支持31种密文的分析

  • Base16/32/36/58/62/64/85/91/92
  • XXencode/UUencode/JJencode
  • Brainfuck/JSFuck/Jother
  • Emoji
  • 核心价值观编码/与佛论禅(佛曰)/与佛论禅(如是我闻)
  • 莫斯密码(空格)/莫斯密码(斜杠)/培根密码/云影密码/波利比奥斯方阵密码
  • Shellcode/Handycode/URL
  • 敲击码/A1z26密码/Quoted-printable编码
  • 二进制010编码

0x02 密文分析

密文分析过程可看下面的流程图
请添加图片描述

    在密文分析时先从配置文件中加载各种密文类型的配置信息,包括函数名、密码表的正则范围,密码表的字符总个数等,然后进入密文类型筛选流程,判断该种密文类型的密码表的字符总个数和密文去重后的总个数之间谁更大些,若前者小于后者 的话,则将前者除去,其余的密文类型则进入下一轮的正则匹配阶段,

    密文分析的核心是对经过某种加密/编码方式后密文的密码表进行正则匹配分析,对那些只针对密文中特定字符进行编码/加密的密文类型并没有很好的识别能力,以ROT5为例,ROT5的原理是明文中的数字向后移动5位,明文为 flag{a123bcd45ef} ,则ROT5编码过后的密文为 flag{a678bcd90ef} ,此时变化的只有数字,那么在密文分析中,ROT5的密码表正则范围该如何确定?

    [0-9] 肯定是不合适的,在正则匹配的第一个阶段,遇到 f 后就将ROT5拉入黑名单了,那么只剩下一个办法了,使用 [\w] 去匹配所有的字符,乍一看可行,也确实是能匹配到了,因为只要密文中存在数字,ROT5也就能被成功解密输出到密文分析的结果里,但ROT5也因此成了常客,而在后面的自动化提取flag中,由于密码表正则范围 [\w] 过大,反复调用ROT5将会使其陷入一个永远也跳不出去的死循环。

0x03 自动提取flag

    在解题时用TomatoTools去做密文分析,然后再加以手工解密的话,虽然和以往的人脑分析相比是快了一些,但是感觉还是不够快, 没有那种一秒出flag的惊喜与快感&

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值