CTFd challenge downloader and organizer
Project description
CTFd Downloader
CTFd インスタンスから課題情報と添付ファイルを自動取得・整理する Python ツールです。
機能
- Token 認証またはユーザ名/パスワード認証による CTFd API へのアクセス
- 課題一覧・詳細情報の取得
- 添付ファイルの自動ダウンロード
challenges/<Category>/<Challenge Name>/の構造で整理保存- メタデータ(JSON)と README(Markdown)の自動生成
- 並列ダウンロードとリトライ機能
- ロギングとエラーハンドリング
インストール
pip install ctfd-dl
設定
config.example.yamlをconfig.yamlにコピー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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ctfd_dl-1.0.2.tar.gz
(12.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
ctfd_dl-1.0.2-py3-none-any.whl
(16.5 kB
view details)
File details
Details for the file ctfd_dl-1.0.2.tar.gz.
File metadata
- Download URL: ctfd_dl-1.0.2.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a2d1f185e8d597db0966a837be36d00d707e2a2e5b54b815fb9686b8c0d30d2
|
|
| MD5 |
79c81dcc1f62be5a27356e3ea1103862
|
|
| BLAKE2b-256 |
9386825ff58834137b3f602f581560184061d61c9c8a798cd53fea7410acf9c5
|
File details
Details for the file ctfd_dl-1.0.2-py3-none-any.whl.
File metadata
- Download URL: ctfd_dl-1.0.2-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
346507b00aa8a7825f921c716424d66c6907182c01ca42dd2589ed6d01ac87a4
|
|
| MD5 |
2134e3bb30a8ee8eb7b1c32c295edd48
|
|
| BLAKE2b-256 |
92b44d3ec11b0953de7db3be5ed6e4e647799c1478efa6971f9f129f5c6191d4
|