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
└── archive
├── pwn
│ ├── challenge1
│ │ ├── description.txt
│ │ ├── file1
│ └── challenge2
│ ├── description.txt
│ ├── file1
└── rev
├── challenge1
│ ├── description.txt
│ ├── file1
└── challenge2
├── description.txt
├── file1
Usage
from CTFd_Crawler import CTFCrawler
crawler = CTFCrawler()
# crawler.self_load("test_ctf", "https://ctfd.based/site", "****************************************************************", "./test_ctf")
crawler.load("./test_ctf.json")
print("load")
print(crawler.important)
res = crawler.get_challenges()
print("get_challenges")
crawler.download_challenges()
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.1.5.tar.gz
(5.2 kB
view details)
Built Distribution
File details
Details for the file ctfd_crawler-0.1.5.tar.gz
.
File metadata
- Download URL: ctfd_crawler-0.1.5.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 | 444d1046e3776eadcbe3f5d9b9c556e0dcea03ee07e47897e08a866ee2fd5545 |
|
MD5 | 2a283821c21244cfa9086b2147a6b1ea |
|
BLAKE2b-256 | 4039564e0e6596572b5ac760827cf34463279e90fe9a9e6cfd3cd58fdd4da2b0 |
File details
Details for the file CTFd_Crawler-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: CTFd_Crawler-0.1.5-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 | b7329ddcbd1f34228f881806a27e53ae83c3cb01d03e15f48588fb19df8df797 |
|
MD5 | 8078e625ddf7c28a26c737a1719c019c |
|
BLAKE2b-256 | a1269b73b0b13ce5921b434244c8a9f2da7bbd88808ba0694197f5d83d1053b2 |