This is a command-line tool designed to solve a specific type of Proof-of-Work (PoW) challenge, often used as a captcha mechanism, encountered on sites like Kiwifarms. It automates the process of fetching the challenge, solving it, and obtaining the necessary clearance cookies.
- Fetches initial page to extract PoW challenge parameters (salt, difficulty).
- Solves the SHA-256 based PoW using multiple CPU cores for efficiency (via Rayon).
- Submits the PoW solution to the
/answerendpoint. - Optionally submits the temporary token to the
/checkendpoint for a final clearance token. - Outputs the final clearance token.
- Optionally outputs the final HTML of the target page after obtaining clearance.
- Configurable logging using the
logcrate andenv_logger. - Timing information for network requests and PoW solving.
- Rust programming language and Cargo (Rust's package manager). Installation instructions can be found at rust-lang.org.
To get a local copy of this project, clone it from GitHub:
git clone https://github.com/pixelmelt/kiwifarms-captchabuster
cd kiwifarms-captchabusterBuild the project using Cargo:
cargo buildFor a release build (optimized):
cargo build --releaseThe executable will be located at target/debug/kiwifarms-captchabuster or target/release/kiwifarms-captchabuster.
Run the compiled executable with the target URL:
./target/debug/kiwifarms-captchabuster --url <TARGET_URL>Or, using cargo run (which compiles and runs):
cargo run -- --url <TARGET_URL>--url <URL>: (Required) The target URL that presents the SSSG challenge.--html: If present, the tool will fetch and print the HTML content of the target URL after successfully obtaining the clearance cookie.--check: If present, the tool will perform an additional call to the/.sssg/api/checkendpoint with the token obtained from/.sssg/api/answer. By default, this is skipped, and the cookie from the/answerresponse is assumed to be sufficient.
The application uses env_logger. You can control the log level using the RUST_LOG environment variable.
- Default (no
RUST_LOGset): Usually shows warnings and errors. - Info level (shows general progress, timing):
RUST_LOG=info cargo run -- --url <TARGET_URL>
- Debug level (shows more detailed information, including API request/response details):
Or for the release build:
RUST_LOG=debug cargo run -- --url <TARGET_URL>
RUST_LOG=info ./target/release/kiwifarms-captchabuster --url <TARGET_URL>
RUST_LOG=info cargo run -- --url "https://kiwifarms.st/some-protected-page" --htmlThis command will attempt to solve the challenge for "https://kiwifarms.st/some-protected-page", print info-level logs (including timing for operations), and if successful, print the final HTML of the page.
This project is licensed under the MIT License.