CTF 工具收集

为什么没有人做 CTF 工具大全这种好东西？感觉入门要想成为脚本小子得知道能用哪些脚本吧... 不管怎么说，飞飞想整理一下这类东西，结构大概是分类 - 名称 - 介绍 & 用法示例

只是咱喜欢的工具哦，咱更喜欢用 Linux 呢，所以部分转译跑不了或者性能很低的咱就不列了，广为人知的工具像 BurpSuite 这种咱也不列了

写了一点发现原来随波逐流软件站给了一些工具，那咱就帮他整合一下

编解码

随波逐流

一键解码，下载地址: 官网

不过这个居然要联网检查更新，赛博洁癖犯了，哪天给他破解了
用 Bottles 使用 exe 体验也很糟糕，差评

XXencode

在线一键解码工具，有些线下赛禁止联网，还是只能用随波逐流了 (呕)
点击访问

Crypto

这个主要是数学问题吧，用到的都是一些 python 的库

gmpy2

高精度高效率大数运算库

Copy
pip install gmpy2

PWN

pwntools

Copy
pip install pwntools

Web

wabt

用于将 Webassmbly 文件转换为 C 语言代码，然后放到 IDA 里分析

Copy
wasm2c webassembly.wasm -o web.c -o-h web.h

通过 wasm2c 导出的 C 语言代码本身并不包含可执行入口，同时会缺少运行时，wasm_rt_* 由 wabt 项目里的 wasm-rt-impl.c 提供；而 w2c_wasi__snapshot__preview1_fd_write、w2c_env_0x5Femscripten_memcpy_js 等名字是 wasm2c 为 WASI/Emscripten 导入生成的包装函数，需要自己实现或链接到现成的 “迷你 WASI” 实现。官方示例把这些实现放在一个 imports.c 里，只要返回 0 或调用真正的系统调用即可；否则仍会报 “unknown import”

Copy
// imports.c
#include <stddef.h>
#include <stdint.h>
#include "wasm-rt.h"

uint32_t w2c_wasi__snapshot__preview1_fd_write(void* unused, uint32_t fd,
uint32_t iovs, uint32_t iovs_len,
uint32_t nwritten) {
return 0;
}

void w2c_env_0x5Femscripten_memcpy_js(void* unused) {}
void w2c_env_emscripten_resize_heap(void* unused) {}

手写 main.c 可以通过编译

Copy
#include "web.h"
#include <stdio.h>

int main(void) {
/* 1) 初始化 wasm‑rt 全局运行时 */
wasm_rt_init();

/* 2) 实例化模块（不需要完整导入表就传 NULL） */
struct w2c_webassembly inst;
wasm2c_webassembly_instantiate(&inst, NULL, NULL);

/* 3) 运行所有全局构造函数（static ctors） */
w2c_webassembly_0x5F_wasm_call_ctors(&inst);

/* 4) 初始化 Emscripten 栈 */
w2c_webassembly_emscripten_stack_init(&inst);

/* 5) 调用导出 main（传 argc=0, argv_ptr=0） */
u32 rc = w2c_webassembly_main(&inst, 0, 0);
printf("wasm main returned %u\n", rc);

/* 6) 清理实例和运行时 */
wasm2c_webassembly_free(&inst);
wasm_rt_free();
return 0;
}

编译命令

Copy
gcc -O2 -I. -I/usr/include/wabt/wasm2c -DWASM_RT_MALLOC \
web.c imports.c main.c /usr/share/wabt/wasm2c/wasm-rt-impl.c \
-lm -o webdemo

数字取证

Volatility

内存取证工具

Copy
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
pip install -r requirements.txt

使用例

envars 是 Volatility 的一个插件，用于提取和列出内存转储中的环境变量。环境变量包含了系统和用户配置的一些信息，比如路径、系统设置等。

Copy
.\volatility -f .\1.raw --profile=Win7SP1x64 envars | grep 'n0wayback'

pslist 是 Volatility 中的一个插件，用于列出内存中的所有进程。它通过分析内存中的进程链表，列出所有活动的进程信息，包括进程的 PID、进程名、父进程等。

Copy
.\volatility -f .\1.raw --profile=Win7SP1x64 pslist

0xfffffa8001a022a0 mspaint.exe 2052 1028 6 120 1 0 2024-03-04 05:50:22 UTC+0000

0xfffffa8003c68a80 cmd.exe 4188 1028 3 111 1 0 2024-03-04 05:50:26 UTC+0000

0xfffffa800418c060 Code.exe 888 1028 31 696 1 0 2024-03-04 05:52:52 UTC+0000

发现存在 mspaint.exe 进程，进行一个内存 dump

memdump 是 Volatility 中的一个插件，用于提取内存中的特定进程的内存映像。这个插件会根据指定的 PID 将进程的内存内容提取出来。

Copy
.\volatility -f .\1.raw --profile=Win7SP1x64 memdump -p 2052 -D ./

consoles 是 Volatility 中的一个插件，用于提取并列出与控制台相关的会话信息。控制台会话指的是命令行工具（如 cmd.exe 或 powershell.exe）的活动会话，Volatility 将列出它们的详细信息。
具体来说，consoles 插件会显示所有在内存中存在的控制台会话的相关数据，包括会话 ID、命令历史、运行的命令等信息。

Copy
.\volatility -f .\1.raw --profile=Win7SP1x64 consoles

杂项

jwt.io

可以在线编码解码 JWT Token 呢

SQL 注入

ffifdyop

md5(ffifdyop) = 'or'66�]��!r,��b

在 md5 后可以用此恒真万能口令注入