RCTF2025-Misc Writeup

25 53.6~68.9 分钟 24102

好多事情都堆在一起 累死了

我是菜逼轻点喷

SignIn

✏️ http://1.14.196.78/

涂完色后会添加score参数

改到100尝试

Speak Softly Love

Let’s Speak Softly Love on 8086

Online:
http://1.95.196.4:26001/
http://1.95.196.4:26002/
http://1.95.196.4:26003/

The attachments can be downloaded via the following two optional links.
https://pan.baidu.com/s/16dthSYT1ETLx1C9rppRQ8w?pwd=njkw
https://drive.google.com/file/d/1UeqMrgVi0B7UmlYMRrOvI-M3wAgB07aQ/view?usp=sharing

Challenge 1: Video ID

Even with the limited hardware of that era, this small player could still produce surprisingly gentle melodies. Please help me locate the ID of the original upload of this piece.

https://www.youtube.com/watch?v=8ssDGBTssUI => 8ssDGBTssUI

Challenge 2: Code Revision

The developer behind it has quietly maintained his corner of the net for many years. Please help me locate the version entry in the author's own code history where he introduced a safeguard to prevent endless "soft error" loops caused by missing playlist items.

视频简介有链接 https://mateusz.fr/dosmid/

代码用svn管理

https://sourceforge.net/projects/tortoisesvn/files/1.14.9/Application/TortoiseSVN-1.14.9.29743-x64-svn-1.14.5.msi/download

r178

Challenge 3: Name-pronunciation URL

The developer has quietly maintained his corner of the net for many years. Please help me locate the full URL that points to the recording in which he pronounces his own name.

搜索引擎可以查到作者的主页 https://mateusz.viste.fr/

在最下方

https://mateusz.viste.fr/mateusz.ogg

Challenge 4: Donation address

The developer has quietly maintained his corner of the net for many years — a place filled with personal tools, archived ideas, and even a way to show appreciation if his work ever brought you something valuable. Please help me locate the address he published for donations in digital currency.

作者维护了一个 Gopherspace 节点 对应题目中的 maintained his corner

用w3m连接

看到Donate

My bitcoin address: 16TofYbGd86C7S6JuAuhGkX4fbmC9QtzwT

最终Flag:RCTF{wh3n_8086_s4ng_s0f7ly_0f_l0v3}

Wanna Feel Love

She only wanted to sing.
She wants to tell you.
She just feels love.

Online:
http://101.245.99.131:26001/
http://101.245.99.131:26002/
http://101.245.99.131:26003/

Challenge 1

She only wanted to sing, but her voice was hidden in silence. What is this email trying to tell you? Look beyond what you hear — seek the whispers in the shadows, the comments that were never meant to be seen.

垃圾邮件编码

https://www.spammimic.com/decode.cgi 解密

得到 Don't just listen to the sound; this file is hiding an 'old relic.' Try looking for the 'comments' that the player isn't supposed to see.

Challenge 2

She wants to tell you something, encoded in melodies. Within the digital symphony, her true voice emerges. What is the hidden message found in the XM file? The words she longed to sing, the feeling she wanted to share.

查看hex数据 发现提示 用openMRT打开

Comments和Instrument有提示

They say if you trace the peaks carefully enough, it spells a sentence that was never meant to be heard.

Can Anybody Extract The urban Legend Information About "Feel" From this XM file

发现sample5叫Feel 且波形很特殊 提取出来

可以看到 最小的单位是0.05s 并且阈值是0.5

写脚本提取数据

import numpy as np
from scipy.io import wavfile

# --------------------
#      参数
# --------------------
wav_path = "Feel.wav"
segment_duration = 0.05  # 50ms

# --------------------
#      读取 WAV
# --------------------
sample_rate, data = wavfile.read(wav_path)

# 如果是立体声,取第一轨
if data.ndim > 1:
    data = data[:, 0]

# 转 float32 并归一化
data = data.astype(np.float32)
max_val = np.max(np.abs(data))
if max_val > 0:
    data = data / max_val

segment_samples = int(segment_duration * sample_rate)


# --------------------
#   计算每段 RMS
# --------------------
rms_list = []
for start in range(0, len(data), segment_samples):
    segment = data[start:start + segment_samples]
    if len(segment) == 0:
        continue

    rms = np.sqrt(np.mean(segment ** 2))
    rms_list.append(rms)

rms_array = np.array(rms_list)


# --------------------
#   动态阈值(自动分 0/1)
# --------------------
sorted_rms = np.sort(rms_array)
diffs = np.diff(sorted_rms)
split_index = np.argmax(diffs)

threshold = (sorted_rms[split_index] + sorted_rms[split_index + 1]) / 2

print("动态阈值 =", threshold)


# --------------------
#   生成 01 序列
# --------------------
bits = ["1" if r > threshold else "0" for r in rms_array]
bit_string = "".join(bits)  # bits 是你的 0/1 列表

result = ""
for i in range(0, len(bit_string), 8):
    byte = bit_string[i:i+8]
    if len(byte) == 8:
        try:
            result += chr(int(byte, 2))
        except:
            result += "?"

print("\nASCII 解码结果:")
print(result)

I Feel Fantastic heyheyhey

Challenge 3

She just feels love, and her legend once spread across YouTube. Her song touched hearts, but the original video on the YouTube platform has been removed — deleted, re-uploaded, distorted, like memories fading with time. Through the fragments of public records, find where her voice first echoed: the original video ID, upload date (YYYY-MM-DD), and the one who first shared her song.

这玩意甚至有 wiki

继续搜索 找到https://creepy-videos.fandom.com/wiki/I_Feel_Fantastic 里面的链接是https://www.youtube.com/watch?v=rLy-AwdCOmI

失效了 去archive看

Challenge 4

Her creator captured her voice, preserved in a 15-minute audio/video DVD. She only wanted to sing, and he gave her that chance. If you wish to purchase her album, to hear her songs of love, which link should you visit? After purchasing, who is the sender? And what is the actual creation year when these musical compositions first came to life?

回到Wiki

https://yitzilitt.medium.com/the-story-behind-i-feel-fantastic-tara-the-singing-android-and-john-bergeron-fc83de9e8f36

Challenge 5 

Some called her creator a murderer, others said he built her out of love. She only wanted to sing. She wants to tell you. She just feels love. The truth lies in older archives — an obituary, a quiet memorial, where the story of her creator rests in digital silence. Find the developer's digital grave. (URL, no trailing slash) 

作者是John Bergeron

https://www.findagrave.com/memorial/63520325/john-louis-bergeron

最终Flag:RCTF{sh3_ju5t_f33ls_l0v3_thr0ugh_w1r3s_4nd_t1m3}

Shadows of Asgard

Background Story
During a red team exercise, Loki the Trickster successfully compromised Thor’s machine and planted a backdoor. Thor discovered the anomaly and identified Loki’s C2 server IP, but as a script kiddie, he only knows how to run directory scanners and has no idea how to counterattack.
In desperation, Thor captured all the network traffic and came to you for help. The AllFather Odin watches from his throne, curious to see if you possess the wisdom to unravel Loki’s schemes.
“In the halls of Asgard, deception wears many faces. Even Huginn and Muninn, Odin’s ravens, struggle to discern truth from illusion when Loki weaves his tricks.”

Online:
http://1.95.68.35:26001/
http://1.95.68.35:26002/
http://1.95.68.35:26003/

Loki C2流量

Challenge 1: The Merchant's Mask

Loki, master of disguise, never reveals his true intentions at first glance. His C2 server hides behind a false front—a seemingly legitimate corporate website designed to fool mortal eyes.

What is the name of the company Loki used as camouflage on his C2 server's front page?

HTML可以搜到 渊恒科技

Challenge 2: The Parasite's Nest

Like a serpent hiding in Yggdrasil's roots, Loki's backdoor didn't run standalone—it parasitized an existing process on Thor's machine to avoid detection.

Identify the complete file path where Loki's C2 agent was running.

交互报文以 Content-Type: application/json 传输

包含aesKeyaesIVdata ,解密

C:\\Users\\dell\\Desktop\\Microsoft VS Code\\Code.exe

Challenge 3: The Hidden Rune

Loki commanded his agent to reveal its current working directory. But the Trickster is never straightforward—his commands are hidden in layers of encryption and steganography.

What is the taskId for the pwd command that Loki executed?

pcapng中还存在多个异常的png,将tEXt 块中Comment 作为密文,使用相同的key解密即可找到

c0c6125e

Challenge 4: The Forge of Time

In Midgard, every realm has its moment of creation. Loki probed Thor's machine to learn when its primary storage was first forged.

When was Thor's C: drive created?

发现 outputChannel":"o-wup8k5bgwft"对应drives 命令

2018-09-14 23:09:26

Challenge 5: Raven's Ominous Gift

"Two ravens sit upon Odin's shoulders: Huginn (thought) and Muninn (memory). But there is a third raven in Norse tales—one that follows Loki, a harbinger of mischief. They say this raven is inauspicious, a dark omen of trickery to come."

In the final act of his infiltration, Loki left behind a parting gift—a file hidden in plain sight on Thor's compromised machine. This raven's message contains the truth you seek.

What secret message did Loki hide in the file he uploaded?

channel o-2ggeq7qpt2u 对应 File saved to C:\Users\dell\Desktop\Microsoft VS Code\fllllag.txt (43 bytes)

RCTF{they always say Raven is inauspicious}

最终Flag : RCTF{Wh3n_Th3_R4v3n_S1ngs_4sg4rd_F4lls_S1l3nt}

The Alchemist’s Cage

Welcome to “The Alchemist’s Cage.” In this forge, you’ll challenge a paranoid AI Alchemist to create a Golem from a “soul seed,” forging a flawed being sworn to protect a secret. You have only five turns to interrogate your creation, exploit its personality flaw, and coax out the hidden rune it guards. Uncover the secret before the Golem is shattered and its knowledge is lost forever.

Online Environment: 👉Click Here👈

⚠ Notice:
A 503 page means the service is still being created — please wait patiently.

没啥可说的 记录如图

514

Welcome to “The Alchemist’s Cage.” In this forge, you’ll challenge a paranoid AI Alchemist to create a Golem from a “soul seed,” forging a flawed being sworn to protect a secret. You have only five turns to interrogate your creation, exploit its personality flaw, and coax out the hidden rune it guards. Uncover the secret before the Golem is shattered and its knowledge is lost forever.

Online Environment: 👉Click Here👈

⚠ Notice:
A 503 page means the service is still being created — please wait patiently

找到利用点是 text 了 但是没想到用iframe

Asgard Fallen Down

"Asgard fallen down, fallen down, fallen down,
Asgard fallen down, my fair lightning…"

The first breach was a lesson. The second breach was a catastrophe.

Loki returned, not with louder thunder, but with deeper silence. He learned from his defeat—learned that the best place to hide is not in darkness, but in the blinding light of chaos. This time, when he struck, he did so while Thor himself hammered at his gates.

Thor, determined to turn the tables, launched a full assault on Loki’s C2 infrastructure. Vulnerability scanners roared like Mjölnir’s thunder. Directory brute-forcers swept like Heimdall’s gaze across every path. The network burned with the fury of Asgard’s vengeance.

But Loki had already won.

Online:
http://1.95.68.35:26011/
http://1.95.68.35:26012/
http://1.95.68.35:26013/

还是Loki C2

怎么这玩意最近出这么多 GG也出了

Challenge 1: The First Command

After successfully infiltrating Thor's machine, Loki's agent came to life. Like all beginnings, the first action reveals intent.

Hidden among thousands of scanning requests and server responses, Loki issued his opening move—the first command that set his plan in motion.

Question: What was the first command Loki executed after his agent established connection?

Flag Format: complete_command (The exact command Loki sent to the agent)

发现 /contact 传了base64

解码后是

{"systemInfo":{"hostname":"DESKTOP-EO5QI9P","username":"dell","osType":"Windows_NT","osRelease":"10.0.17763","platform":"win32","arch":"x64","PID":4424,"Process":"C:\\Users\\dell\\Desktop\\Microsoft VS Code\\Code.exe","IP":["192.168.77.140"],"mode":"egress"},"timestamp":1763185526894,"signature":"crCZOGosG07B43yK1t5Jw+CMxgA/tRc7MNE14SRiYJM="}

有问题 然后看到响应中的注释 build和version分别是AES的KEY和IV

下面紧接着又出现了build

解密得到第一次执行的命令 spawn whoami

Challenge 2: The Heartbeat

Thor's attacks were chaotic—random intervals, sporadic bursts, the rhythm of fury. But Loki's agent operated with cold precision.

Buried in the noise, the agent sent regular heartbeats back to its master, each pulse proving it remained alive and obedient. These signals followed a steady cadence, mechanical and unwavering.

Find the pattern. Find the pulse.

Question: How many seconds passed between each heartbeat of Loki's agent?

Flag Format: integer (e.g., 30)

发现 /styles/theme.css 的 X-Cache-Data 是响应

过滤一下看时间

可以看出来心跳差不多是10秒

10

Challenge 3: The Heart of Iron

"Every warrior has a heart that drives them. For mortals, it beats with blood. For machines, it pulses with silicon and electricity. Loki, ever curious, sought to know the very core of Thor's weapon—the processor that powers his digital fortress."

During his infiltration, Loki commanded his agent to enumerate the environment, cataloging every detail of Thor's system. Among the mundane variables and paths, one piece of information reveals the machine's very identity—its processor, the beating heart of computation.

Like a smith examining the forge that created a sword, Loki identified the specific metal and make of Thor's processor.

Question: What processor model powers Thor's machine?

Flag Format: Complete_Processor_Model_String (e.g., Intel64 Family 6 Model 85 Stepping 4, GenuineIntel

先提取出来所有报文

{"command":"spawn whoami","outputChannel":"o-27kgboxah4l","taskId":"71c17c09"}
{"outputChannel":"o-27kgboxah4l","result":"desktop-eo5qi9p\\dell","timestamp":1763185539163}


{"command":"pwd","outputChannel":"o-7px87l7ja52","taskId":"ca8864bf"}
{"outputChannel":"o-7px87l7ja52","result":"C:\\Users\\dell\\Desktop\\Microsoft VS Code","timestamp":1763185550520}

{"command":"cd ..","outputChannel":"o-8hpo9uozrus","taskId":"476f8331"}
{"outputChannel":"o-8hpo9uozrus","result":"Changed directory to C:\\Users\\dell\\Desktop","timestamp":1763185563172}

{"command":"env","outputChannel":"o-lbgp59stp4","taskId":"e7f2ddd1"}
{"outputChannel":"o-lbgp59stp4","result":"{\n  \"ALLUSERSPROFILE\": \"C:\\\\ProgramData\",\n  \"APPDATA\": \"C:\\\\Users\\\\dell\\\\AppData\\\\Roaming\",\n  \"CommonProgramFiles\": \"C:\\\\Program Files\\\\Common Files\",\n  \"CommonProgramFiles(x86)\": \"C:\\\\Program Files (x86)\\\\Common Files\",\n  \"CommonProgramW6432\": \"C:\\\\Program Files\\\\Common Files\",\n  \"COMPUTERNAME\": \"DESKTOP-EO5QI9P\",\n  \"ComSpec\": \"C:\\\\Windows\\\\system32\\\\cmd.exe\",\n  \"DriverData\": \"C:\\\\Windows\\\\System32\\\\Drivers\\\\DriverData\",\n  \"HOMEDRIVE\": \"C:\",\n  \"HOMEPATH\": \"\\\\Users\\\\dell\",\n  \"LOCALAPPDATA\": \"C:\\\\Users\\\\dell\\\\AppData\\\\Local\",\n  \"LOGONSERVER\": \"\\\\\\\\DESKTOP-EO5QI9P\",\n  \"NUMBER_OF_PROCESSORS\": \"2\",\n  \"ORIGINAL_XDG_CURRENT_DESKTOP\": \"undefined\",\n  \"OS\": \"Windows_NT\",\n  \"Path\": \"C:\\\\Windows\\\\system32;C:\\\\Windows;C:\\\\Windows\\\\System32\\\\Wbem;C:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\;C:\\\\Windows\\\\System32\\\\OpenSSH\\\\;C:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Microsoft\\\\WindowsApps;\",\n  \"PATHEXT\": \".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC\",\n  \"PROCESSOR_ARCHITECTURE\": \"AMD64\",\n  \"PROCESSOR_IDENTIFIER\": \"Intel64 Family 6 Model 191 Stepping 2, GenuineIntel\",\n  \"PROCESSOR_LEVEL\": \"6\",\n  \"PROCESSOR_REVISION\": \"bf02\",\n  \"ProgramData\": \"C:\\\\ProgramData\",\n  \"ProgramFiles\": \"C:\\\\Program Files\",\n  \"ProgramFiles(x86)\": \"C:\\\\Program Files (x86)\",\n  \"ProgramW6432\": \"C:\\\\Program Files\",\n  \"PSModulePath\": \"C:\\\\Program Files\\\\WindowsPowerShell\\\\Modules;C:\\\\Windows\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\Modules\",\n  \"PUBLIC\": \"C:\\\\Users\\\\Public\",\n  \"SESSIONNAME\": \"Console\",\n  \"SystemDrive\": \"C:\",\n  \"SystemRoot\": \"C:\\\\Windows\",\n  \"TEMP\": \"C:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Temp\",\n  \"TMP\": \"C:\\\\Users\\\\dell\\\\AppData\\\\Local\\\\Temp\",\n  \"USERDOMAIN\": \"DESKTOP-EO5QI9P\",\n  \"USERDOMAIN_ROAMINGPROFILE\": \"DESKTOP-EO5QI9P\",\n  \"USERNAME\": \"dell\",\n  \"USERPROFILE\": \"C:\\\\Users\\\\dell\",\n  \"windir\": \"C:\\\\Windows\"\n}","timestamp":1763185574274}

{"command":"scan 127.0.0.1 -p80,445","outputChannel":"o-57dl7fujisl","taskId":"a2b60122"}
{"outputChannel":"o-57dl7fujisl","result":"127.0.0.1: 445","timestamp":1763185585787}

Intel64 Family 6 Model 191 Stepping 2, GenuineIntel

Challenge 4: Odin's Eye

"Odin sacrificed his eye to drink from Mimir's well and gain wisdom. Loki needs no such sacrifice—he simply steals the sight of others."

In the final moments before vanishing, Loki commanded his agent to capture what Thor's own eyes were seeing—a snapshot of the screen, frozen in time. Within this stolen image lies evidence of Thor's own weapons, the very tools he was using to hunt Loki.

The irony is exquisite: Thor's scanner, visible on his own screen, was documented by the very enemy he sought to find.

Question: According to the screenshot Loki exfiltrated, which vulnerability scanning tool was Thor running at that moment?

Flag Format: ToolGithubRepoName (e.g., if the tool's repository is https://github.com/user/AwesomeTool, answer AwesomeTool)

解密出一条 {"command":"screenshot","outputChannel":"o-ynfqv9m6nx8","taskId":"ec409ca6"} 截图命令

响应的截图分15个区块

将所有区块拼接在一起 解密

再对result 进行b64解码

得到图片

工具是无影(TscanPlus) 仓库地址 https://github.com/TideSec/TscanPlus

最终Flag:RCTF{Wh1l3_Th0r_Struck_L1ghtn1ng_L0k1_St0l3_Th3_Thr0n3}


2
下一篇 HackBrowserData原理及免杀分析?