当前位置:首页 > CTF > 正文内容

i 春秋 CTF 大本营 basic 部分 writeup

admin2天前CTF9

一、基础信息

二、题目解析

1. 回旋 13 踢

解题思路

  • 核心识别:题目中 “13” 是关键线索,对应ROT13 编码(凯撒密码的特殊形式,字母移位 13 位,A↔N、B↔O...Z↔M);

  • 解码规则:将字母按顺序移位 13 位,例如:

    • s + 13 → f、y + 13 → l、n + 13 → a、t + 13 → g;

  • 操作:对题目给出的编码字符串逐字母移位,拼接后得到 flag。

辅助截图

2. 小苹果

解题思路

  • 文件分析:题目提供wav音频文件,推测为音频隐写

  • 核心工具:SilentEye(专门用于提取音频中隐藏的信息,支持多种隐写算法);

  • 操作步骤

    1. 打开SilentEye,导入目标wav文件;

    1. 选择 “Decode” 功能,提取隐藏内容,直接获得 flag。

关键提示

该题核心是识别隐写工具,只要知道SilentEye适配音频隐写,即可快速解题。

3. Ropgadge

解题思路

  • 题目特征:给出一串汇编指令,需计算其对应的 16 进制机器码;

  • 核心工具:rasm2(Radare2 框架中的工具,支持多架构汇编 / 反汇编);

  • 工具参数说明

    • -a:指定架构(如 x86、mips,本题默认 x86);

    • -b:指定位数(32 位 / 64 位,本题默认 32 位);

    • -d/-D:反汇编 16 进制字符串(本题需汇编,无需该参数);

  • 操作命令

rasm2 "xchg eax,esp;ret;mov ecx,[eax];mov [edx],ecx;pop ebx;ret"

执行后得到的 16 进制字符串即为关键结果,进一步处理可获 flag。

4. Easyrsa

解题思路

  • 题目信息:已知 RSA 加密参数:C=0xdc2eeeb2782c、N=322831561921859、e=23,需解密求 flag;

  • 核心步骤

    1. 大整数分解(N→p*q):使用yafu工具分解 N,命令:

yafu factor(322831561921859)

得到p=0x16ae0a3、q=0xcf22e1;

    1. 进制转换:将所有参数统一为 16 进制:

      • N=0x1259d14921543、E=0x17、C=0xdc2eeeb2782c;

    1. RSA 解密脚本:用 Python 编写解密脚本,计算私钥d,再通过M = C^d mod N得到明文;

# 示例脚本(需导入rsa库或手动实现扩展欧几里得算法)
import rsa
from rsa import common

# 已知参数(16进制转十进制)
N = int("1259d14921543", 16)
p = int("16ae0a3", 16)
q = int("cf22e1", 16)
e = int("17", 16)
C = int("dc2eeeb2782c", 16)

# 计算私钥d
phi = (p-1) * (q-1)
d = common.inverse(e, phi)

# 解密得到明文(十进制转16进制,再转字符串)
M = pow(C, d, N)
flag = bytes.fromhex(hex(M)[2:]).decode()
print("flag:", flag)  # 输出 PCTF{3a5Y}

辅助截图

  • 大整数分解结果:

(原文本地截图,此处省略,核心为得到 p 和 q)

  • 解密脚本执行结果:

(原文本地截图,此处省略,核心为输出PCTF{3a5Y})

5. 爱吃培根的你

解题思路

  • 题目特征:给出字符串bacoN is one of aMerICa'S sWEethEartS...,提示 “培根”,对应培根密码

  • 培根密码规则:将大写字母视为B,小写字母视为A,组成二进制序列(A=0、B=1),再按 5 位一组解码为字母;

  • 操作步骤

    1. 处理字符串:大写→B、小写→A,得到序列:

AAAABAAAAAAAABAABBABABBAAABAAABAAABABBAAABBABBAABAAABABABBABABBABAAABB;

    1. 分组解码:每 5 位对应一个字母(A=00000、B=00001...),拼接后得到 flag。

辅助截图

(原文本地截图,此处省略,核心为解码过程与结果)

6. 熟悉的声音

解题思路

  • 题目特征:给出字符串XYYY YXXX XYXX XXY XYY X XYY YX YYXX,提示 “声音”,对应摩斯密码

  • 映射规则:X对应摩斯密码的.(点),Y对应-(划);

  • 操作步骤

    1. 转换为摩斯密码:.- --.. .-.. ..- .-- . .-- -. --..;

    1. 摩斯解码:得到JBLUWEWNZ;

    1. 凯撒移位:尝试移位(结合 CTF 常见 flag 格式),最终得到正确 flag。

辅助截图

(原文本地截图,此处省略,核心为摩斯解码与凯撒移位过程)

7. 加密的文档

解题思路

  • 题目特征:带密码的压缩包,推测为ZIP 伪加密(文件头与数据区加密标记不一致);

  • 伪加密原理:ZIP 文件中,加密标记位于文件头的第 3、4 字节,0900为加密,0000为未加密,伪加密是故意修改该标记导致的 “假加密”;

  • 操作步骤

    1. 用WinHex打开压缩包,找到文件头加密标记(偏移 0x04-0x05);

    1. 修改标记:将0900改为0000,保存后解压;

    1. 处理解压后的doc文件:用binwalk分离隐藏内容(binwalk -e 文件名.doc),在word/media目录下找到image2文件,打开得到 flag。

辅助截图

  • WinHex 修改加密标记:

(原文本地截图,此处省略,核心为修改 0900→0000)

  • binwalk 分离结果:

(原文本地截图,此处省略,核心为找到 media 目录下的 image2)

8. Shellcode

解题思路

  • 题目特征:给出一段 Shellcode 字符串,需执行查看输出;

  • 操作步骤

    1. 克隆工具:git clone https://github.com/inquisb/shellcodeexec

    1. 执行 Shellcode:

python shellcodeexec.py -x86 "题目给出的Shellcode字符串"
    1. 工具执行后输出 flag。

辅助截图

(原文本地截图,此处省略,核心为工具执行结果)

9. Base64

解题思路

  • 题目特征:给出字符串GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI===,尝试 Base64 解码失败,推测为Base32 编码

  • 操作步骤

    1. Base32 解码:用在线工具或 Python 解码,得到 16 进制字符串:

504354467b4a7573745f743373745f683476335f66346e7d;

    1. 16 进制转字符串:用WinHex或 Python 转换,得到 flag:

hex_str = "504354467b4a7573745f743373745f683476335f66346e7d"
flag = bytes.fromhex(hex_str).decode()
print(flag)  # 输出 PCTF{Just_t3st_h4v3_f4n}

辅助截图

  • Base32 解码结果:

(原文本地截图,此处省略,核心为得到 16 进制字符串)

  • 16 进制转字符串结果:

(原文本地截图,此处省略,核心为输出 flag)

10. 手贱的 A 君

解题思路

  • 题目特征:给出字符串d78b6f302l25cdc811adfe8d4e7c9fd34,疑似 MD5 哈希,但包含异常字符l(小写 L);

  • 问题定位:MD5 哈希仅包含 0-9、a-f,l为手误输入,删除后得到正确哈希:d78b6f30225cdc811adfe8d4e7c9fd34;

  • 操作:用 MD5 解密工具(如 CMD5)解密,得到 flag:hack。

辅助截图

  • 哈希修正前后对比:

(原文本地截图,此处省略,核心为删除l)

  • MD5 解密结果:

(原文本地截图,此处省略,核心为输出hack)

11. Veryrsa

解题思路

  • 题目特征:直接给出 RSA 参数p、q、e,需计算私钥d并解密得到 flag;

  • 核心步骤

    1. 计算欧拉函数phi = (p-1) * (q-1);

    1. 求私钥d(e的模逆,即d = e^(-1) mod phi);

    1. 解密:若给出密文C,则M = C^d mod N(N = p*q),转换为字符串得到 flag;

  • 示例脚本

# 假设题目给出p、q、e、C(此处用占位符表示)
p = 123456789  # 题目实际p值
q = 987654321  # 题目实际q值
e = 65537       # 题目实际e值
C = 1234567890 # 题目实际C值

N = p * q
phi = (p-1) * (q-1)
d = pow(e, -1, phi)  # Python 3.8+支持pow求模逆
M = pow(C, d, N)
flag = bytes.fromhex(hex(M)[2:]).decode()
print(flag)

辅助截图

  • 脚本执行结果:

(原文本地截图,此处省略,核心为输出 flag)

12. 实验室 logo

解题思路

  • 题目特征:给出一张图片,推测为图片隐写,需提取隐藏图层;

  • 核心工具:StegSolve(用于分析图片的不同通道、帧,提取隐藏信息);

  • 操作步骤

    1. 用StegSolve打开图片,选择Analyse → Frame Browser;

    2. 切换不同帧(Frame),在第二帧中直接看到 flag。

    扫描二维码推送至手机访问。

    版权声明:本文由克拉玛依三十年社团发布,如需转载请注明出处。

    本文链接:https://www.klmyssn.com/?id=54

    分享给朋友:

    “i 春秋 CTF 大本营 basic 部分 writeup” 的相关文章

    南京邮电大学 CTF 两道隐写 Writeup【CTF 比赛】【CTF 题解】

    南京邮电大学 CTF 两道隐写 Writeup【CTF 比赛】【CTF 题解】

    作者:Szrzvdny | 墨是人性1:图种首先获取题目图片,如下所示:将图片文件复制到本地环境,准备后续分析:使用Binwalk工具对图片进行分析,可发现图片中隐藏了一个zip文件;直接使用foremost工具分离隐藏文件即可:分离完成后,在output目录中会生成对应的zip文件,解压该文件并点...

    (原创)i 春秋 CTF 大本营 basic 部分 writeup【i 春秋】【ctf writeup】【入门 ctf 题】

    (原创)i 春秋 CTF 大本营 basic 部分 writeup【i 春秋】【ctf writeup】【入门 ctf 题】

    题目链接: https://www.ichunqiu.com/battalion1. 回旋 13 踢解题思路题目中 “13” 为关键提示,对应ROT13 编码(凯撒密码的特殊形式,字母循环移位 13 位,A↔N、B↔O...Z↔M),直接对密文进行 ROT13 解码即可得到 flag。编码规则ROT...

    (原创)2019 年 “北邮网安杯” 第二届全国中学生网络安全技术大赛解题报告

    (原创)2019 年 “北邮网安杯” 第二届全国中学生网络安全技术大赛解题报告

    一、RE(逆向工程)模块1. Re1:simple check-in!解题思路本题为基础逆向题,核心是通过工具识别文件类型,再用 IDA 反编译提取硬编码的 flag。操作步骤文件类型识别:将目标文件拖入PeiD工具,查看文件架构(32 位 / 64 位),确定后续 IDA 的版本选择:IDA 反编...

    CTF 成长之路之青少年 CTF

    CTF 成长之路之青少年 CTF

    0x01 前言今天故事的起源是在一个偏远西北的小城市克拉玛依,由我为大家娓娓道来。0x02 故事开端(是故事的开端,不是你们看的开端)社团的建立下面引用来自「克拉玛依高级中学十三年社团」网站内容:“大概要追溯到我初中的时候吧。虽说很小的时候就十分喜欢计算机技术。但是都没有系统的学习,更没有志同道合的...

    2023 新疆高校大学生信息安全大赛 writeup

    2023 新疆高校大学生信息安全大赛 writeup

    本次比赛由社团成员:己奉,彳亍无名灬 参加。MISCsignin下载附件是一张图片,用 16 进制编辑器打开发现最后面有 base64 编码后的内容解码即可得到 flagCRYPTOmorse**打开以后是一个莫斯密码,直接解密就可以得到 “QKDFEWD”,输入进去提交即可得到 flagkeybo...