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.6.tar.gz
(5.2 kB
view details)
Built Distribution
File details
Details for the file ctfd_crawler-0.1.6.tar.gz
.
File metadata
- Download URL: ctfd_crawler-0.1.6.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 | d8be6a82e6e3ae60dfae147704483d9b90a5db4be75b3c6be5084d21303e6581 |
|
MD5 | 70ede22b54c1bf6d9489bd2094b64e68 |
|
BLAKE2b-256 | ed45897743000d9417f57932063cbc8b5925edd8f8630929dd8c89811cce6639 |
File details
Details for the file CTFd_Crawler-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: CTFd_Crawler-0.1.6-py3-none-any.whl
- Upload date:
- Size: 5.9 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 | f557de4817b42d2b35f47d20d6b17b8fe3ecfcc20c695361a48b0c92974b81c6 |
|
MD5 | 6f70830a8563d60da8531f53d8da768c |
|
BLAKE2b-256 | 412926655ab265fb6ba6a0c5547b2c2a2635c3195ca963f98b8895e69e53fb05 |