Agent Skills by ALSEL
Anthropic Claudeデータ・分析⭐ リポ 0品質スコア 50/100

burpsuite-project-parser

Burp Suiteのプロジェクトファイル(.burp)をコマンドラインから検索・探索するスキルです。正規表現によるレスポンスヘッダーやボディの検索、セキュリティ監査結果の抽出、プロキシ履歴やサイトマップデータのダンプ、BurpプロジェクトにキャプチャされたHTTPトラフィックの分析を行う際に使用します。

description の原文を見る

Searches and explores Burp Suite project files (.burp) from the command line. Use when searching response headers or bodies with regex patterns, extracting security audit findings, dumping proxy history or site map data, or analyzing HTTP traffic captured in a Burp project.

SKILL.md 本文

Burp Project Parser

Burp Suite プロジェクトファイルから burpsuite-project-file-parser 拡張機能を使用してデータを検索・抽出します。

使用場面

  • 正規表現パターンを使用してレスポンスヘッダーまたはボディを検索する
  • Burp プロジェクトからセキュリティ監査結果を抽出する
  • プロキシ履歴またはサイトマップデータをダンプする
  • Burp プロジェクトファイルでキャプチャされた HTTP トラフィックを分析する

前提条件

このスキルは Burp Suite Professional に解析を委譲します - .burp ファイルを直接解析しません。

必須:

  1. Burp Suite Professional - インストール済みであること (portswigger.net)
  2. burpsuite-project-file-parser 拡張機能 - CLI 機能を提供します

拡張機能のインストール:

  1. github.com/BuffaloWill/burpsuite-project-file-parser からダウンロード
  2. Burp Suite で: Extender → Extensions → Add
  3. ダウンロードした JAR ファイルを選択

クイックリファレンス

ラッパースクリプトを使用してください:

{baseDir}/scripts/burp-search.sh /path/to/project.burp [FLAGS]

スクリプトはプラットフォーム互換性のために環境変数を使用します:

  • BURP_JAVA: Java 実行ファイルへのパス
  • BURP_JAR: burpsuite_pro.jar へのパス

セットアップ手順については プラットフォーム設定 を参照してください。

サブコンポーネントフィルター (これを使用してください)

常に完全なダンプの代わりにサブコンポーネントフィルターを使用してください。 完全な proxyHistory または siteMap はギガバイト単位のデータを返すことができます。サブコンポーネントフィルターは必要なものだけを返します。

利用可能なフィルター

フィルター返すデータ典型的なサイズ
proxyHistory.request.headersリクエスト行 + ヘッダーのみ小 (< 1KB/レコード)
proxyHistory.request.bodyリクエストボディのみ可変
proxyHistory.response.headersステータス + ヘッダーのみ小 (< 1KB/レコード)
proxyHistory.response.bodyレスポンスボディのみ大 - 回避すること
siteMap.request.headersサイトマップの上記と同じ
siteMap.request.body可変
siteMap.response.headers
siteMap.response.body大 - 回避すること

デフォルトアプローチ

ボディではなくヘッダーから始める:

# 良い例 - ヘッダーのみ、安全に取得できる
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.request.headers | head -c 50000
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.response.headers | head -c 50000

# 悪い例 - 完全なレコードにはボディが含まれる可能性があり、ギガバイトになることも
{baseDir}/scripts/burp-search.sh project.burp proxyHistory  # 絶対にこれをしないこと

ヘッダーを確認した後、特定の URL のボディのみを取得し、常に切り詰める:

# 1. まずヘッダーから興味深い URL を見つける
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.response.headers | \
  jq -r 'select(.headers | test("text/html")) | .url' | head -n 20

# 2. その後、対象を絞った正規表現でボディを検索 - ボディを 1000 文字に切り詰める必須
{baseDir}/scripts/burp-search.sh project.burp "responseBody='.*specific-pattern.*'" | \
  head -n 10 | jq -c '.body = (.body[:1000] + "...[TRUNCATED]")'

厳格なルール: 1000 文字を超えるボディコンテンツはコンテキストに入ってはいけません。 ユーザーが完全なボディコンテンツが必要な場合、Burp Suite の UI で表示する必要があります。

正規表現検索操作

レスポンスヘッダーを検索

responseHeader='.*regex.*'

すべてのレスポンスヘッダーを検索します。出力: {"url":"...", "header":"..."}

例 - サーバー署名を検索:

responseHeader='.*(nginx|Apache|Servlet).*' | head -c 50000

レスポンスボディを検索

responseBody='.*regex.*'

必須: ボディコンテンツを常に最大 1000 文字に切り詰めてください。 レスポンスボディはそれぞれメガバイト単位になることがあります。

# 必須形式 - 常に .body フィールドを切り詰める
{baseDir}/scripts/burp-search.sh project.burp "responseBody='.*<form.*action.*'" | \
  head -n 10 | jq -c '.body = (.body[:1000] + "...[TRUNCATED]")'

完全なボディコンテンツを取得しないでください。 特定のレスポンスをもっと見る必要がある場合、ユーザーに Burp Suite の UI で開くよう依頼してください。

その他の操作

監査項目を抽出

auditItems

すべてのセキュリティ結果を返します。出力には以下が含まれます: name、severity、confidence、host、port、protocol、url。

注: 監査項目は小さい (ボディなし) - head -n 100 で安全に取得できます。

プロキシ履歴をダンプ (回避)

proxyHistory

これを直接使用しないでください。 代わりにサブコンポーネントフィルターを使用してください:

  • proxyHistory.request.headers
  • proxyHistory.response.headers

サイトマップをダンプ (回避)

siteMap

これを直接使用しないでください。 代わりにサブコンポーネントフィルターを使用してください。

出力制限 (必須)

重要: データを取得する前に結果のサイズを常に確認してください。 広い範囲の検索は数千のレコードを返す可能性があり、それぞれメガバイト単位になることがあります。これはコンテキストウィンドウをオーバーフローさせます。

ステップ 1: 常にサイズを先に確認

検索の前に、レコード数とバイト数の両方を確認してください:

# レコード数と総バイト数を確認 - このステップをスキップしないこと
{baseDir}/scripts/burp-search.sh project.burp proxyHistory | wc -cl
{baseDir}/scripts/burp-search.sh project.burp "responseHeader='.*Server.*'" | wc -cl
{baseDir}/scripts/burp-search.sh project.burp auditItems | wc -cl

wc -cl の出力は: <バイト数> <行数> を表示します (例: 524288 42 は 42 レコードで 512KB を意味します)。

結果を解釈 - どちらも合格する必要があります:

メトリック安全狭い検索広すぎる停止
行数< 5050-200200+1000+
バイト数< 50KB50-200KB200KB+1MB+

1 行に 10MB の単一レスポンスは高いバイト数を示しますが行数は 1 のみ - バイト数チェックがこれをキャッチします。

ステップ 2: 広すぎる検索を絞り込む

カウント/サイズが高い場合:

  1. サブコンポーネントフィルターを使用 (上記の表を参照):

    # 代わりに: proxyHistory (ギガバイト)
    # 使用: proxyHistory.request.headers (キロバイト)
    
  2. 正規表現パターンを絞り込む:

    # 広すぎる (すべてにマッチ):
    responseHeader='.*'
    
    # 良い例 - 特定のヘッダーをターゲット:
    responseHeader='.*X-Frame-Options.*'
    responseHeader='.*Content-Security-Policy.*'
    
  3. 取得前に jq でフィルター:

    # 特定のコンテンツタイプのみを取得
    {baseDir}/scripts/burp-search.sh project.burp proxyHistory.response.headers | \
      jq -c 'select(.url | test("/api/"))' | head -n 50
    

ステップ 3: 常に出力を切り詰める

絞り込み後も、常に切り詰めにパイプスルー:

# 常に head -c を使用して総バイト数を制限 (最大 50KB)
{baseDir}/scripts/burp-search.sh project.burp proxyHistory.request.headers | head -c 50000

# ボディ検索の場合、各 JSON オブジェクトの body フィールドを切り詰める:
{baseDir}/scripts/burp-search.sh project.burp "responseBody='pattern'" | \
  head -n 20 | jq -c '.body = (.body | if length > 1000 then .[:1000] + "...[TRUNCATED]" else . end)'

# レコード数とバイト数の両方を制限:
{baseDir}/scripts/burp-search.sh project.burp auditItems | head -n 50 | head -c 50000

実装する厳格な制限:

  • head -c 50000 (最大 50KB) をすべての出力に使用
  • .body フィールドを 1000 文字に切り詰める - 必須、例外なし
    jq -c '.body = (.body[:1000] + "...[TRUNCATED]")'
    

カウント前と切り詰めなしでこれらを実行しないでください:

  • proxyHistory / siteMap (完全ダンプ - 常にサブコンポーネントフィルターを使用)
  • responseBody='...' 検索 (ボディはそれぞれメガバイト単位になることがあります)
  • .*.+ のような広い正規表現

調査ワークフロー

  1. スコープを特定 - 何を探していますか? (特定の脆弱性タイプ、エンドポイント、ヘッダーパターン)

  2. 先に監査項目を検索 - Burp の結果から始める:

    {baseDir}/scripts/burp-search.sh project.burp auditItems | jq 'select(.severity == "High")'
    
  3. 信頼度スコアを確認 - 実行可能な結果でフィルター:

    ... | jq 'select(.confidence == "Certain" or .confidence == "Firm")'
    
  4. 影響を受ける URL を抽出 - 攻撃対象を把握:

    ... | jq -r '.url' | sort -u
    
  5. コンテキストのために生のトラフィックを検索 - 実際のリクエスト/レスポンスを確認:

    {baseDir}/scripts/burp-search.sh project.burp "responseBody='pattern'"
    
  6. 手動で検証 - Burp の結果はインジケーター、証拠ではありません。それぞれを検証してください。

結果の理解

深刻度と信頼度

Burp は 深刻度 (High/Medium/Low) と 信頼度 (Certain/Firm/Tentative) の両方をレポートします。トリアージ時に両方を使用してください:

組み合わせ意味
High + Certain本物の脆弱性の可能性が高い、調査を優先
High + Tentative誤検知のことが多い、報告前に検証
Medium + Firm調査の価値あり、手動検証が必要かもしれません

「High severity、Tentative confidence」の結果は頻繁に誤検知です。深刻度だけに基づいて結果をレポートしないでください。

プロキシ履歴が不完全な場合

プロキシ履歴には Burp がキャプチャしたものだけが含まれます。以下のため、トラフィックが欠落している可能性があります:

  • スコープフィルター がドメインを除外
  • インターセプト設定 がリクエストをドロップ
  • ブラウザトラフィック が Burp プロキシにルーティングされていない

予想されるトラフィックが見つからない場合、元のプロジェクトで Burp のスコープとプロキシ設定を確認してください。

HTTP ボディエンコーディング

レスポンスボディは gzip で圧縮、チャンク化、または非 UTF8 エンコーディングを使用している可能性があります。プレーンテキストで機能する正規表現パターンはエンコード済みレスポンスで静かに失敗する可能性があります。検索が予想より少ない結果を返す場合:

  • レスポンスが圧縮されているか確認
  • より広いパターンを試すか、ヘッダーを先に検索
  • Burp の UI を使用して生のレスポンスとレンダリングされたレスポンスを検査

拒否する正当化

見落とされた脆弱性または誤った報告につながる一般的なショートカット:

ショートカット何が間違っているか
「このパターンは良さそう」サンプルデータで最初に検証 - エンコーディングとエスケープにより静かに失敗
「High severity = 必ず修正」信頼度スコアも確認。Burp には誤検知があります
「すべての監査項目が関連」実際の脅威モデルでフィルター。すべての結果がすべてのアプリに関連するわけではありません
「プロキシ履歴は完全」Burp のスコープ/インターセプト設定でフィルターされる可能性あり。Burp がキャプチャしたものだけが表示されます
「Burp が見つけたから脆弱性」Burp の結果は手動検証が必要 - 可能性のある問題を示す、証拠ではありません

出力形式

すべての出力は JSON で、行ごとに 1 つのオブジェクトです。jq にパイプスルーしてフォーマット:

{baseDir}/scripts/burp-search.sh project.burp auditItems | jq .

grep でフィルター:

{baseDir}/scripts/burp-search.sh project.burp auditItems | grep -i "sql injection"

CORS ヘッダーを検索 (バイト制限付き):

{baseDir}/scripts/burp-search.sh project.burp "responseHeader='.*Access-Control.*'" | head -c 50000

すべての high severity 結果を取得 (監査項目は小さいが、それでも制限):

{baseDir}/scripts/burp-search.sh project.burp auditItems | jq -c 'select(.severity == "High")' | head -n 100

プロキシ履歴からリクエスト URL のみを抽出:

{baseDir}/scripts/burp-search.sh project.burp proxyHistory.request.headers | jq -r '.request.url' | head -n 200

レスポンスボディを検索 (ボディを 1000 文字に切り詰める必須):

{baseDir}/scripts/burp-search.sh project.burp "responseBody='.*password.*'" | \
  head -n 10 | jq -c '.body = (.body[:1000] + "...[TRUNCATED]")'

プラットフォーム設定

ラッパースクリプトは Burp Suite のバンドル Java と JAR ファイルを見つけるために 2 つの環境変数が必要です。

macOS

export BURP_JAVA="/Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Contents/Home/bin/java"
export BURP_JAR="/Applications/Burp Suite Professional.app/Contents/Resources/app/burpsuite_pro.jar"

Windows

$env:BURP_JAVA = "C:\Program Files\BurpSuiteProfessional\jre\bin\java.exe"
$env:BURP_JAR = "C:\Program Files\BurpSuiteProfessional\burpsuite_pro.jar"

Linux

export BURP_JAVA="/opt/BurpSuiteProfessional/jre/bin/java"
export BURP_JAR="/opt/BurpSuiteProfessional/burpsuite_pro.jar"

永続性のためにこれらのエクスポートをシェルプロファイル (.bashrc.zshrc など) に追加してください。

手動呼び出し

ラッパースクリプトを使用しない場合、直接呼び出してください:

"$BURP_JAVA" -jar -Djava.awt.headless=true "$BURP_JAR" \
  --project-file=/path/to/project.burp [FLAGS]

ライセンス: CC-BY-SA-4.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
trailofbits
リポジトリ
trailofbits/skills
ライセンス
CC-BY-SA-4.0
最終更新
不明

Source: https://github.com/trailofbits/skills / ライセンス: CC-BY-SA-4.0

関連スキル

OpenAIデータ・分析⭐ リポ 1,451

hugging-face-trackio

Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。

by gradio-app
汎用データ・分析⭐ リポ 855

btc-bottom-model

ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。

by star23
Anthropic Claudeデータ・分析⭐ リポ 380

protein_solubility_optimization

タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。

by SpectrAI-Initiative
Anthropic Claudeデータ・分析⭐ リポ 1,743

research-lookup

Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。

by K-Dense-AI
Anthropic Claudeデータ・分析⭐ リポ 299

tree-formatting

ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。

by majiayu000
汎用データ・分析⭐ リポ 145

querying-indonesian-gov-data

インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。

by suryast
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: trailofbits · trailofbits/skills · ライセンス: CC-BY-SA-4.0