jpskill.com
🛠️ 開発・MCP コミュニティ

skipfish

指定されたWebアプリケーションに対し、ディレクトリ構造の洗い出しや脆弱性検査、設定ミスなどを調査し、HTML形式で結果を出力することで、手動レビューの効率化を支援するSkill。

📜 元の英語説明(参考)

Run active web application reconnaissance with SkipFish. Use when a user asks to scan a web app they own for directory enumeration, injection vulnerabilities, and misconfigurations, or wants a fast dictionary-driven crawl with HTML output as a starting point for manual review.

🇯🇵 日本人クリエイター向け解説

一言でいうと

指定されたWebアプリケーションに対し、ディレクトリ構造の洗い出しや脆弱性検査、設定ミスなどを調査し、HTML形式で結果を出力することで、手動レビューの効率化を支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o skipfish.zip https://jpskill.com/download/15386.zip && unzip -o skipfish.zip && rm skipfish.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15386.zip -OutFile "$d\skipfish.zip"; Expand-Archive "$d\skipfish.zip" -DestinationPath $d -Force; ri "$d\skipfish.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して skipfish.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → skipfish フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

SkipFish

概要

SkipFish は、元々 Google が開発した高速なアクティブ Web アプリケーション偵察ツールです。ターゲットをクロールし、パスとペイロードの辞書を使ってプローブを行い、重大度別に調査結果をグループ化したインタラクティブな HTML レポートを作成します。SkipFish は設計上、ノイズが多いツールです。これは、サードパーティのステルススキャンではなく、自身のアプリの許可された評価を目的としています。検出された調査結果を手動でフォローアップするために、Burp/ZAP と組み合わせて使用​​してください。

手順

ステップ 1: インストールと辞書の選択

# Kali
sudo apt install -y skipfish

# ソースから
git clone https://github.com/spinkham/skipfish.git
cd skipfish && make

# 辞書は /usr/share/skipfish/dictionaries/ に同梱されています
ls /usr/share/skipfish/dictionaries/
# complete.wl   extensions-only.wl   minimal.wl   medium.wl

# 経験則:
#   minimal.wl   → 非常に高速な最初のパス (~30 分)
#   medium.wl    → バランスが取れている (1–4 時間)
#   complete.wl  → 深い (一晩)

ステップ 2: 基本的なスキャンの実行

# 出力ディレクトリは存在してはなりません — skipfish が作成します
rm -rf ./report
skipfish -W /usr/share/skipfish/dictionaries/minimal.wl \
  -o ./report \
  http://webapp.local/

# レポートを開く
xdg-open ./report/index.html
# 調査結果のグループ化: High / Medium / Low / Warnings / Info

ステップ 3: クロールのスコープ設定

# 単一のホストに制限する (サイト外のリンクを追跡しない)
skipfish -o report -W minimal.wl \
  -I '^http://webapp\.local/' \
  http://webapp.local/

# 状態を破壊するパスを除外する
skipfish -o report -W minimal.wl \
  -X '/logout' -X '/admin/delete' \
  http://webapp.local/

# 深さとリクエスト数を制限する (スキャンに時間制限を設ける)
skipfish -o report -W minimal.wl \
  -d 5 -c 10 -l 1000 \
  http://webapp.local/
# -d 最大クロール深度、-c ノードあたりの最大子数、-l 最大合計リクエスト数

ステップ 4: 認証済みスキャン

# フォームベース認証 — 事前認証を行い、Cookie を渡す
COOKIE=$(curl -s -c - -d 'user=admin&pass=hunter2' \
  http://webapp.local/login | awk '/session/ {print $7}')

skipfish -C "session=$COOKIE" \
  -X /logout \
  -o report-authed \
  -W /usr/share/skipfish/dictionaries/minimal.wl \
  http://webapp.local/dashboard

# 複数の Cookie
skipfish -C "session=abc123" -C "csrftoken=def456" -o report http://webapp.local/

# HTTP Basic 認証
skipfish -A admin:hunter2 -o report http://webapp.local/

ステップ 5: パフォーマンスと礼儀正しさの調整

# 共有/ステージング環境向けの丁寧なスキャン
skipfish -W minimal.wl -o report \
  -m 5 -t 10 \
  http://staging.webapp.local/
# -m 最大同時接続数 (デフォルト 10)
# -t リクエストタイムアウト秒数

# 自身の開発ボックスでのアグレッシブなスキャン
skipfish -W medium.wl -o report \
  -m 25 -t 5 \
  http://127.0.0.1:8000/

例 1: 新しい Web アプリの高速トリアージ

# 手動テストの前の 30 分間の最初のパス
rm -rf ./first-pass
skipfish \
  -W /usr/share/skipfish/dictionaries/minimal.wl \
  -I '^http://app\.example\.internal/' \
  -X /logout -X /shutdown \
  -d 4 -c 8 -l 2000 \
  -o ./first-pass \
  http://app.example.internal/

# index.html を確認し、以下を探します:
#   - XSS ベクター (High)
#   - レスポンス内の SQL エラー (High)
#   - ディレクトリリスト (Medium)
#   - バックアップファイル (.bak, .swp, ~) (Medium)
#   - 公開された VCS ディレクトリ (.git, .svn) (High)

# すべての調査結果 → レポートする前に Burp で手動で検証する

例 2: 内部ダッシュボードの認証済みスキャン

# 有効なセッション Cookie を取得する
CJ=$(mktemp)
curl -s -c "$CJ" -d 'username=tester&password=Acme2026!' \
  -X POST http://internal.acme.local/auth/login >/dev/null
SESSION=$(awk '/session/ {print $7}' "$CJ")
rm -f "$CJ"

rm -rf ./auth-scan
skipfish \
  -C "session=$SESSION" \
  -X /auth/logout \
  -X /users/delete \
  -I '^http://internal\.acme\.local/' \
  -W /usr/share/skipfish/dictionaries/medium.wl \
  -o ./auth-scan \
  http://internal.acme.local/

xdg-open ./auth-scan/index.html

ガイドライン

  • 書面による承認が必須です。 SkipFish は破壊的な外観のペイロードを送信します — 自身のアプリ、ステージング、またはスコープ内のターゲットに対してのみ実行してください。
  • -X を使用して、状態を変更するエンドポイント (/logout/delete/admin/reset) を除外します。そうしないと、SkipFish は喜んでそれらをクロールします。
  • 辞書の選択はランタイムを支配します: クイックパスには minimal.wl、実際の評価には medium.wl、一晩の作業には complete.wl を使用します。
  • クロール範囲を絞るには、-I から開始します — そうしないと、SkipFish はサブドメインやパートナーをさまよいます。
  • 誤検知を想定してください。SkipFish はファンネルです。レポートに含める前に、すべての調査結果を手動で検証してください。
  • HTML レポートが主要な出力です — 生のログではなく、index.html で参照してください。
  • SkipFish はレガシーですが、高速なアクティブ偵察には依然として役立ちます。SPA および GraphQL を使用した最新の Web アプリケーションの場合は、Burp、ZAP、および ffuf と組み合わせて使用​​してください。
  • 顧客の明示的な承認と変更ウィンドウなしに、本番環境をスキャンしないでください。辞書攻撃はアラートと負荷を生成します。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

SkipFish

Overview

SkipFish is a fast, active web application reconnaissance tool originally from Google. It crawls a target, probes with a dictionary of paths and payloads, and produces an interactive HTML report grouping findings by severity. SkipFish is noisy by design — it is meant for authorized assessments of your own apps, not stealthy scans of third parties. Pair with Burp/ZAP for manual follow-up on the findings it surfaces.

Instructions

Step 1: Install and Pick a Dictionary

# Kali
sudo apt install -y skipfish

# From source
git clone https://github.com/spinkham/skipfish.git
cd skipfish && make

# Dictionaries ship in /usr/share/skipfish/dictionaries/
ls /usr/share/skipfish/dictionaries/
# complete.wl   extensions-only.wl   minimal.wl   medium.wl

# Rules of thumb:
#   minimal.wl   → very fast first pass (~30 min)
#   medium.wl    → balanced (1–4 hours)
#   complete.wl  → deep (overnight)

Step 2: Run a Basic Scan

# Output directory must not exist — skipfish creates it
rm -rf ./report
skipfish -W /usr/share/skipfish/dictionaries/minimal.wl \
  -o ./report \
  http://webapp.local/

# Open the report
xdg-open ./report/index.html
# Findings grouped: High / Medium / Low / Warnings / Info

Step 3: Scope the Crawl

# Limit to a single host (don't chase off-site links)
skipfish -o report -W minimal.wl \
  -I '^http://webapp\.local/' \
  http://webapp.local/

# Exclude paths that destroy state
skipfish -o report -W minimal.wl \
  -X '/logout' -X '/admin/delete' \
  http://webapp.local/

# Limit depth and request count (time-box the scan)
skipfish -o report -W minimal.wl \
  -d 5 -c 10 -l 1000 \
  http://webapp.local/
# -d max crawl depth, -c max children per node, -l max total requests

Step 4: Authenticated Scans

# Form-based auth — pre-authenticate and pass the cookie
COOKIE=$(curl -s -c - -d 'user=admin&pass=hunter2' \
  http://webapp.local/login | awk '/session/ {print $7}')

skipfish -C "session=$COOKIE" \
  -X /logout \
  -o report-authed \
  -W /usr/share/skipfish/dictionaries/minimal.wl \
  http://webapp.local/dashboard

# Multiple cookies
skipfish -C "session=abc123" -C "csrftoken=def456" -o report http://webapp.local/

# HTTP Basic auth
skipfish -A admin:hunter2 -o report http://webapp.local/

Step 5: Tune Performance and Politeness

# Polite scan for shared/staging environments
skipfish -W minimal.wl -o report \
  -m 5 -t 10 \
  http://staging.webapp.local/
# -m max concurrent connections (default 10)
# -t request timeout seconds

# Aggressive scan on your own dev box
skipfish -W medium.wl -o report \
  -m 25 -t 5 \
  http://127.0.0.1:8000/

Examples

Example 1: Fast Triage of a New Web App

# 30-minute first pass before manual testing
rm -rf ./first-pass
skipfish \
  -W /usr/share/skipfish/dictionaries/minimal.wl \
  -I '^http://app\.example\.internal/' \
  -X /logout -X /shutdown \
  -d 4 -c 8 -l 2000 \
  -o ./first-pass \
  http://app.example.internal/

# Review index.html, look for:
#   - XSS vectors (High)
#   - SQL errors in responses (High)
#   - Directory listings (Medium)
#   - Backup files (.bak, .swp, ~) (Medium)
#   - Exposed VCS dirs (.git, .svn) (High)

# Every finding → manually verify in Burp before reporting

Example 2: Authenticated Scan of an Internal Dashboard

# Acquire a valid session cookie
CJ=$(mktemp)
curl -s -c "$CJ" -d 'username=tester&password=Acme2026!' \
  -X POST http://internal.acme.local/auth/login >/dev/null
SESSION=$(awk '/session/ {print $7}' "$CJ")
rm -f "$CJ"

rm -rf ./auth-scan
skipfish \
  -C "session=$SESSION" \
  -X /auth/logout \
  -X /users/delete \
  -I '^http://internal\.acme\.local/' \
  -W /usr/share/skipfish/dictionaries/medium.wl \
  -o ./auth-scan \
  http://internal.acme.local/

xdg-open ./auth-scan/index.html

Guidelines

  • Written authorization is mandatory. SkipFish sends destructive-looking payloads — run it against your own apps, staging, or in-scope targets only.
  • Exclude state-changing endpoints (/logout, /delete, /admin/reset) with -X. SkipFish will happily crawl them otherwise.
  • Dictionary choice dominates runtime: minimal.wl for a quick pass, medium.wl for a real assessment, complete.wl for overnight work.
  • Start with -I to clamp the crawl scope — otherwise SkipFish wanders across subdomains and partners.
  • Expect false positives. SkipFish is a funnel; manually verify every finding before it goes in the report.
  • The HTML report is the primary output — browse it with index.html, not the raw logs.
  • SkipFish is legacy but still useful for fast active recon. For modern web apps with SPAs and GraphQL, combine with Burp, ZAP, and ffuf.
  • Never scan production without the customer's explicit sign-off and a change window; dictionary attacks generate alerts and load.