Misc(buuoj)

本文解析了GWCTF2019中的一道数学题,通过自动化计算解决150个级别获得flag,并介绍了如何修复BSidesSF2020 mpfrag挑战中的损坏超级块。

一、[GWCTF2019]math

二、[BSidesSF2020]mpfrag

[GWCTF2019]math

开启靶机连接环境。题目给出了一个算式,但是算不了几秒就退出了。

同时还给了我们源程序:"gwctf_2019_math"。

放到IDA64里看一下,找到它的主函数。

int __cdecl main(int argc, const char **argv, const char **envp)
{
  unsigned int seed; // ST14_4
  unsigned int v4; // ST18_4
  unsigned int v5; // ST1C_4
  unsigned int v6; // ST20_4
  unsigned int v7; // ST24_4
  signed int v9; // [rsp+10h] [rbp-130h]
  char buf; // [rsp+30h] [rbp-110h]
  unsigned __int64 v11; // [rsp+138h] [rbp-8h]

  v11 = __readfsqword(0x28u);
  setvbuf(stdin, 0LL, 2, 0LL);
  setvbuf(stdout, 0LL, 2, 0LL);
  setvbuf(stderr, 0LL, 2, 0LL);
  v9 = 0;
  seed = time(0LL);
  srand(seed);
  do

<think>嗯,用户问的是BUUCTF misc中关于snake的解题思路和资源。首先,我需要回忆一下之前处理过的类似题目。根据引用[1]和[2],snake题可能涉及隐藏文件或加密算法。比如在引用[2]中提到,使用binwalk和foremost分离出zip文件,里面可能有base64编码的密文,然后解密得到anaconda,进而联想到serpent加密算法。 用户可能遇到了类似的题目,比如图片文件中隐藏了数据。需要检查文件头,用binwalk或foremost分离出隐藏的压缩包。解压后可能有乱码文件,这时候要考虑base64解码或者其他编码方式。引用[2]中的例子是base64解码得到anaconda,然后使用Serpent算法解密。这可能意味着题目中的snake指的是Serpent加密,一种对称块加密算法。 另外,引用[3]提到处理十六进制数据,直接转换得到flag。所以也有可能题目中的snake只是误导,实际需要处理十六进制或ASCII转换。用户可能需要检查文件属性、十六进制数据,或者尝试不同的编码方式。 需要提醒用户注意分离隐藏文件,检查常见的加密算法,尤其是与蛇相关的如Serpent。同时,注意在线解密工具的使用,以及可能存在的伪加密或密码在图片中的情况。可能还需要结合其他工具如Stegsolve分析图片隐写。 用户可能需要具体的步骤,比如先用binwalk分析,然后foremost分离,解压后处理cipher和key文件,进行base64解码,再使用Serpent解密。同时,注意key文件可能是密码或者密钥。此外,引用[1]中提到害怕图片中的蛇,可能暗示图片本身没有直接线索,重点在文件分析而非图片内容。 总结解题步骤:检查文件头,分离隐藏文件,处理加密数据,使用对应算法解密。需要确认用户是否遇到类似情况,或者题目是否有变化。同时,提醒注意常见的misc解题技巧,如十六进制转换、base64解码、文件分离工具的使用。</think>根据BUUCTF中与"snake"相关的MISC题目解题经验,以下是整理后的解题思路和资源: ### 解题思路分析 1. **文件结构分析** 使用`binwalk`和`foremost`检测附件文件,通常会分离出隐藏的ZIP压缩包[^2]。例如: ```bash binwalk -e snake.jpg foremost -i snake.jpg -o output ``` 解压后可能出现两个文件:`cipher`(密文)和`key`(密钥或编码后的提示)。 2. **密钥解析** `key`文件可能是Base64编码,解码后得到提示如"anaconda",需结合"蛇"的线索联想到Serpent加密算法[^2]: ```python import base64 key = open("key").read() decoded = base64.b64decode(key).decode() # 输出示例:anaconda ``` 3. **密文解密** 使用Serpent算法(蛇算法)在线解密工具,输入`cipher`文件内容和解码后的密钥: - 推荐工具:https://serpent.online-domain-tools.com/ - 输出结果即为flag(格式如`flag{...}`)。 ### 注意事项 1. **文件伪装** 图片可能经过特殊处理(如LSB隐写或十六进制隐藏数据),可用`hexeditor`查看十六进制数据,或`strings`命令提取ASCII字符串[^3]。 2. **算法关联** "snake"可能暗示以下加密方式: - Serpent算法(CTR/CBC模式) - 仿射密码(与Python蛇无关) - 基于蛇形排列的编码(如矩阵转置) ### 相关资源推荐 1. **工具集合** - [CyberChef](https://gchq.github.io/CyberChef/) 支持Serpent解密和多种编码转换 - [Stegsolve](http://www.caesum.com/handbook/Stegsolve.jar) 分析图片隐写 2. **参考题目** - [BUUCTF snake](https://buuoj.cn/challenges#snake) 原始题目环境 - [WUSTCTF2020 爬](https://buuoj.cn/challenges#[WUSTCTF2020]爬) 类似十六进制转换题[^3]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI仿生道士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值