CTFのAI・機械学習問題で、モデルの重みや追加学習の差分を調べ、誤分類を誘う入力やプロンプト注入などの手法から、解法の手掛かりを探すスキル。
- モデルの重みやLoRAを調べたいとき
- 誤分類を誘う入力を作りたいとき
- LLMのプロンプト注入問題の検討
CTFの問題名や固有のコード断片を手がかりに、類似問題の解説記事を検索するスキル。関連ページの本文を抽出し、解法や使われた手法を検討する参考にできます。
Searches for similar CTF challenge writeups using Tavily API for search and content extraction. Use when the user requests finding related challenges, when solve-challenge has failed multiple times and needs reference solutions, or when first identifying a challenge type and seeking examples.
実行スコア 未検証
インストール方法を見るCTF(セキュリティ競技)の類似問題を探し、解法を説明した記事を調べるスキルです。Tavily APIで検索し、タイトルや内容の抜粋を確認したうえで、関連しそうなURLの本文を抽出します。大会名や問題名だけでなく、特徴的な関数名、コード断片、エラーメッセージも検索の手がかりにできます。
問題の攻略が何度か行き詰まったときや、初めて出会う問題形式の解法例を探したいときに向いています。見つかった記事から共通する手法を読み取り、今の問題に応用できるかを検討するための参考資料を集められます。
ファイルを扱えるClaude Codeなどのエージェント環境に、bash、Python 3、requests、tavilyが必要です。TAVILY_API_KEYの設定も必要です。通常の検索語は3語以内とし、固有のコード断片や識別文字列はその制限の対象外とする方針です。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Search for similar CTF challenge writeups using Tavily API.
pip install requests tavily
Set your Tavily API key (from https://tavily.com) before running:
export TAVILY_API_KEY='tvly-...'
This skill provides two interfaces:
| Interface | Purpose | Command |
|---|---|---|
| Tavily Search | Search for writeups and articles | ./search.sh search <keyword> |
| Tavily Extract | Extract content from URLs | ./search.sh extract <url1> [url2] ... |
Choose keywords based on available information:
# Format: [Competition Name] [Challenge Name] — max 3 words
./search.sh search "DASCTF URL Storage"
./search.sh search "HGAME baby web"
./search.sh search "BUUCTF pwn1"
# Use challenge name directly — max 3 words
./search.sh search "URL Storage"
./search.sh search "baby overflow"
./search.sh search "crypto-rsa"
# Use unique, non-trivial strings from the challenge — NO word limit
./search.sh search "def encrypt_flag(key): return base64"
./search.sh search "CUSTOM_MAGIC_BYTES"
./search.sh search "ERROR: invalid padding in AES block"
All keyword searches that are NOT code snippets or unique identifier strings MUST NOT exceed 3 words. This constraint ensures precise, focused queries that return relevant CTF writeup results instead of broad, diluted searches.
| Search Type | Word Limit | Examples |
|---|---|---|
| Competition + Challenge name | ≤ 3 words | "DASCTF URL Storage", "HGAME baby web" |
| Challenge name only | ≤ 3 words | "URL Storage", "baby overflow" |
| Code snippets / strings | No limit | "def encrypt_flag(key): return base64" |
| Error messages / identifiers | No limit | "CUSTOM_MAGIC_BYTES", "ERROR: invalid padding in AES block" |
For competition + challenge name searches, drop filler words (year numbers, "CTF", "competition", "writeup", "solution") and keep only the 3 most distinctive words:
"HGAME 2024 baby web challenge" (5 words)"HGAME baby web" (3 words)"DASCTF 2023 URL Storage writeup" (5 words)"DASCTF URL Storage" (3 words)"PlaidCTF 2025 zero day exploit solution" (6 words)"PlaidCTF zero day" (3 words)For code/string searches, use the entire unique snippet — these are exempt from the word limit:
"def xor_encrypt(data, key):" (code — exempt)"ERROR: invalid padding in AES block" (error string — exempt)"CUSTOM_MAGIC_BYTES" (identifier — exempt)| ✅ Good Keywords | ❌ Bad Keywords |
|---|---|
| Competition + Challenge name (≤3 words) | Single vulnerability type (SSRF, XSS) |
| Challenge name (≤3 words) | Generic terms (web, pwn, crypto) |
| Unique code snippets (no word limit) | Full sentences |
| Specific error messages (no word limit) | Articles (a, the, in) |
| Library/framework names | Generic strings (flag{}, etc.) |
| Custom function names | Tool names alone |
Why avoid these?
Why the 3-word limit?
Key principle: Use keywords that uniquely identify THIS challenge, not the general technique or common patterns. Keep non-code queries to 3 words or fewer.
The search returns:
If a search result looks promising, extract its full content:
# Single URL
./search.sh extract "https://example.com/writeup"
# Multiple URLs
./search.sh extract "https://url1.com" "https://url2.com"
Based on extracted content:
ctf-* skillctf-osintctf-writeup# Scenario 1: Competition + Challenge name (≤3 words)
./search.sh search "DASCTF URL Storage"
# Scenario 2: Challenge name only (≤3 words)
./search.sh search "URL Storage"
# Scenario 3: Unique identifier from challenge (no word limit)
./search.sh search "def xor_encrypt(data, key):"
./search.sh search "ERROR: invalid padding"
# Extract content from promising results
./search.sh extract "https://ctftime.org/writeup/12345"
$ARGUMENTS
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
CTFのAI・機械学習問題で、モデルの重みや追加学習の差分を調べ、誤分類を誘う入力やプロンプト注入などの手法から、解法の手掛かりを探すスキル。
CTFの暗号問題で、暗号文や実装の特徴から解法を探すスキル。RSAやAES、電子署名、疑似乱数などの弱点を調べ、コード例を参照して復号や鍵の回復を進めます。
CTFのディスクやメモリ、ログ、通信記録を分析し、削除ファイルの復元や画像・音声に隠された情報の抽出から、フラグにつながる証拠を探すスキル。
CTFのマルウェア解析で、難読化スクリプトや実行ファイル、暗号化通信、メモリを調べ、隠された設定や通信先、感染の手掛かりを抽出する手法を案内します。
一般的な分類に収まりにくいCTF問題で、文字コードやQR・音声の謎解き、実行制限のある環境、論理パズルなどを調べ、解法の手掛かりを探すスキル。
CTFで公開情報を調べ、写真の撮影場所やアカウント、ドメインの手がかりを追うスキル。画像検索、SNS、DNS記録、過去のWebページを使った調査を支援します。