Skip to main content

CTFd Downloader

CTFd インスタンスから課題情報と添付ファイルを自動取得・整理する Python ツールです。

機能

  • Token 認証またはユーザ名/パスワード認証による CTFd API へのアクセス
  • 課題一覧・詳細情報の取得
  • 添付ファイルの自動ダウンロード
  • challenges/<Category>/<Challenge Name>/ の構造で整理保存
  • メタデータ(JSON)と README(Markdown)の自動生成
  • 並列ダウンロードとリトライ機能
  • ロギングとエラーハンドリング

インストール

pip install ctfd-dl

設定

  1. config.example.yamlconfig.yaml にコピー
  2. config.yaml を編集して CTFd インスタンスの情報を設定
base_url: "https://ctf.example.com"
api_token: "your_api_token_here"  # 推奨
# または
username: "your_username"
password: "your_password"
output_dir: "./challenges"
concurrency: 4

または環境変数を使用:

export CTFD_BASE_URL="https://ctf.example.com"
export CTFD_API_TOKEN="your_api_token_here"

使用方法

パッケージをインストールすると、ctfd-dl コマンドが利用可能になります。

# 基本的な使用
ctfd-dl --config config.yaml

# コマンドライン引数で設定を上書き
ctfd-dl --base-url https://ctf.example.com --token YOUR_TOKEN --output ./my_challenges

# メタデータのみ取得(ファイルダウンロードをスキップ)
ctfd-dl --skip-download

# 詳細ログを出力
ctfd-dl --verbose

出力構造

challenges/
└─ <Category>/
   └─ <Challenge Name>/
      ├─ files/
      │  ├─ attached1.zip
      │  └─ script.py
      ├─ metadata.json
      └─ README.md

注意事項

  • 法的注意: 他者運営の CTFd インスタンスにアクセスする場合は、必ず運営者の許可を得てください。
  • セキュリティ: ダウンロードした実行ファイルは直接実行せず、適切な環境で解析してください。
  • サーバ負荷: 並列ダウンロード数(concurrency)を適切に設定し、サーバに負荷をかけないようにしてください。

ライセンス

MIT License

作者

tikisan (GitHub: @tikipiya)

Release files for ctfd-dl 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ctfd-dl 1.0.2
File Size Uploaded
ctfd_dl-1.0.2.tar.gz 12.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ctfd-dl 1.0.2
File Interpreter ABI Platform
ctfd_dl-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 28.9 kB

Release files / ctfd_dl-1.0.2.tar.gz

Download URL ctfd_dl-1.0.2.tar.gz
Size 12.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6a2d1f185e8d597db0966a837be36d00d707e2a2e5b54b815fb9686b8c0d30d2
BLAKE2b-256 checksum
How to use checksums
9386825ff58834137b3f602f581560184061d61c9c8a798cd53fea7410acf9c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / ctfd_dl-1.0.2-py3-none-any.whl

Download URL ctfd_dl-1.0.2-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
346507b00aa8a7825f921c716424d66c6907182c01ca42dd2589ed6d01ac87a4
BLAKE2b-256 checksum
How to use checksums
92b44d3ec11b0953de7db3be5ed6e4e647799c1478efa6971f9f129f5c6191d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page