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)
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)
| File | Size | Uploaded | |
|---|---|---|---|
| ctfd_dl-1.0.2.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|