CTFd-Crawler is a tool designed to efficiently manage and download CTF challenge files.
Project description
CTFd-Crawler
Overview
CTFd-Crawler is a tool designed to efficiently manage and download CTF challenge files. It organizes downloads into categories, supports multi-threaded downloads for speed enhancement, logs all activities, and stores metadata in JSON format.
Features
- Downloads
- Organize downloaded files into subdirectories based on challenge categories.
- Implement multi-threading to download multiple files simultaneously, improving overall download speed.
- Create a detailed log of the download process, including any errors and warnings.
- Show detailed progress of downloading.
- It save description into description.txt in each challenge directory.
- Directory rules.
- If contents are in a directory, it create another directory (add numbering).
- If contents are not in a directory, the files just saved in it.
- All file / folder name including space is replaced with underscore.
- There are two options in loading information about CTF.
- Load from file (have to set directory when use crawler. if not, It basically set to current directory)
- Load from user input (not recommended, automatically saved into file)
- All information about ctf (name, token, url, download location) saved into file with json format for convenient access.
- Crawling all challenges and dump them into file too.
File Structure
Load
Before
.
└── ctf.json # contains basic information about CTF (refer to the sample folder)
After
.
├── ctf.json # add challenges information
└── challenges
├── pwn
│ ├── challenge1
│ │ ├── description.txt
│ │ ├── file1
│ │ └── file2
│ └── challenge2
│ ├── description.txt
│ ├── file1
│ └── file2
└── rev
├── challenge1
│ ├── description.txt
│ ├── file1
│ └── file2
└── challenge2
├── description.txt
├── file1
└── file2
Self Load
Before
.
After
.
├── ctf.json
└── challenges
├── pwn
│ ├── challenge1
│ │ ├── description.txt
│ │ ├── file1
│ └── challenge2
│ ├── description.txt
│ ├── file1
└── rev
├── challenge1
│ ├── description.txt
│ ├── file1
└── challenge2
├── description.txt
├── file1
Usage
from ctfd_crawling import CTFCrawler
crawler = CTFCrawler()
crawler.load("./h4ckinggame.json") # load from h4ckinggame.json
# crawler.self_load("h4ckinggame", "https://h4ckingga.me", "****************************************************************", "./h4ckinggame")
print("load")
res = (crawler.get_challenges())
print("get_challenges")
crawler.download_challenges(res)
you can choose one option between load
and self_load
. load
is loading from file and self_load
is loading from user input.
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_crawler-0.0.9.tar.gz
(5.2 kB
view details)
Built Distribution
File details
Details for the file ctfd_crawler-0.0.9.tar.gz
.
File metadata
- Download URL: ctfd_crawler-0.0.9.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d1ae99fbcad8a49705847c7c548c5698e4dc518369640b501f9d448e0496e93 |
|
MD5 | 90c40cc5c597ec945d66cbadc91aa602 |
|
BLAKE2b-256 | cd7d47f3664f0bf3d31e7e213655dbe05cb8ae12011d66dbbd2f46cc0734b90c |
File details
Details for the file CTFd_Crawler-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: CTFd_Crawler-0.0.9-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38692e056df00457e65c1cd73c26cd48b5eff44a632531153a90e128b5b59ab2 |
|
MD5 | e27fc5733a5d0938fd05c7f754b1f40f |
|
BLAKE2b-256 | f63b13d2c605984af4d6ac353bb71f27114b2f74fbab98f9539202d15c88ea1b |