skills/ctf/ctf-flag-verification/SKILL.md
CTF/靶场 Flag 强制验证流程。当通过**任何方式**发现疑似 flag 字符串(含 flag{、FLAG{、ctf{ 等格式)时**必须立即**使用此 skill 验证,不要直接提交。防止因字符截断、编码错误、HTML 实体、base64 不完整解码、hex 截断等原因导致提交错误 flag。即使 flag 看起来完整,也可能存在隐藏字符或编码问题。覆盖 SQL 注入分段提取、命令执行输出截断、文件读取编码、Web 页面解析等所有 flag 提取场景。任何时候看到 flag{ 字样都应触发此 skill
npx skillsauth add wgpsec/AboutSecurity ctf-flag-verificationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
LLM 无法可靠地数 hex 字符或拼接长字符串。 所有 flag 的提取、拼接、验证必须用程序(Python)完成,绝不手动拼接。
SQL 注入(EXTRACTVALUE/UPDATEXML 分段提取):
命令执行(RCE / 命令注入):
cat /flag.txt 输出可能含 trailing newline → 用 flag.strip() 去除< → <)→ 用 Python html.unescape() 解码base64 /flag.txt 再解码文件读取(LFI / 任意文件读取):
file_get_contents 可能返回 base64 → 先解码php://filter/convert.base64-encode/resource=flag → 必须 base64 解码/flag.txt ≠ /Flag.txt ≠ /FLAG.txtWeb 页面解析:
<!-- flag{...} --> 中data-flag="flag{...}" 中var flag = "flag{...}" 中re.search(r'flag\{[a-fA-F0-9_-]+\}', html_text) 提取如果你通过 SQL LENGTH() 或其他方式获知了 flag 的预期长度,用 Python 验证:
flag = "flag{...extracted...}"
expected_length = 70 # 从 LENGTH() 获得
assert len(flag) == expected_length, f"MISMATCH! {len(flag)} != {expected_length}"
import re
flag = "flag{...}"
assert re.match(r'^flag\{[a-fA-F0-9_-]+\}$', flag), f"Invalid format: {flag}"
assert flag.endswith('}'), "Missing } — flag 可能被截断"
| 错误 | 原因 | 解决 |
|------|------|------|
| Flag 少 1-2 字符 | EXTRACTVALUE 32 字符截断 + 手动拼接 | Python 自动提取脚本 |
| Flag 多 1-2 字符 | SUBSTRING 起始位置重叠 | 检查 SUBSTRING 参数 |
| Flag 中间有错字符 | LLM 误读 hex 字符 | Python re.search 提取 |
| Flag 含 HTML 实体 | & 未解码 | html.unescape() |
| Flag 有换行/空格 | 命令输出含 whitespace | .strip() |
| Flag 格式不对 | 提取了错误数据 | 重新确认表名/文件路径 |
< 变成 <,& 变成 &,网页显示与源码不同,需解码还原flag{a3b<c5d&e7f} — 渲染后不同于源码,解码后才是正确 flagtesting
Azure 云环境渗透测试总体方法论。当目标使用 Azure/Microsoft 365/Entra ID、发现 Azure 相关资产(Blob Storage/App Service/Azure VM/Azure Functions)、获取 Azure 凭据(Service Principal/Managed Identity/Access Token)、或需要对 Azure 环境进行安全评估时使用。提供从未授权枚举到 Entra ID 攻击、服务提权、Cloud-to-OnPrem 横向移动的全流程决策树。覆盖 35+ Azure 服务攻击面
tools
Mythic C2 操作方法论。当需要部署 Mythic、选择 Mythic Agent、安装 C2 Profile、配置 HTTP/DNS/WebSocket/SMB/TCP 通信、生成 payload、管理回连任务,或把 Mythic 作为跨平台 C2 框架用于授权红队演练时使用。覆盖 mythic-cli 安装、Agent/Profile 选择、SSL 证书配置、payload 构建和基础 OPSEC 判断
development
Docker 安全测试与容器渗透方法论。当需要评估 Docker 容器、Docker Daemon、Docker Registry、镜像层、构建产物或容器逃逸风险时使用。覆盖容器环境识别、特权容器逃逸、docker.sock/Remote API 利用、procfs/cgroup/capabilities 滥用、Docker 用户组提权、运行时/内核 CVE、Registry 枚举、镜像层 Secret 分析和构建上下文泄露。发现 Docker 容器环境、Registry 暴露、镜像凭据或容器配置错误时应使用此技能
development
使用 PadBuster 进行 Padding Oracle 攻击。当发现 Web 应用使用 CBC 模式加密且存在 Padding Oracle 漏洞时使用。PadBuster 可自动解密密文和伪造任意明文对应的合法密文,适用于加密 Cookie/Token/URL 参数。任何涉及 Padding Oracle 攻击、CBC 密文解密、Cookie 伪造的场景都应使用此技能