Skip to main content

Quickscope

Quickscope is a lightweight exploit thrower for attack-defense CTFs. This entails being able to communicate with a game interface (the tracker) and being able to launch exploits (the shooter).

pip install quickscope

How do I write an exploit?

Write an ordinary script that takes its input as the environment variables $HOST and $FLAG_ID. You should hardcode the port used for the service, unless it is a very special variable service, in which case you should use $PORT. chmod +x the script and make sure it has a shebang. You should put the text x-service-name: servicename in your script somewhere so that the shooter knows to shoot it against the service servicename.

How do I launch an exploit?

quickscope --everyone --script my_exploit.py

Your exploit must contain the text x-service-name: <myservice>, where <myservice> is replaced with the name of the service to fire at.

How do I launch all my exploits forever?

quickscope --forever --corpus my_exploits

The difference between --everyone and --forever is that --everyone only shoots at each target for the current tick once.

How do I set up the tracker?

In order for quickscope (the shooter) to fire exploits, it needs to be able to connect to the tracker. The tracker is a python file that you should write for each CTF. Here's an example of it:

from quickscope.tracker import Tracker

class MyTracker(Tracker):
    ...

if __name__ == '__main__':
    MyTracker.main()

You should implement the values marked as not implemented in tracker.py - this means FLAG_REGEX, get_status, submit_flags, and instrument_targets. See fake/stub_tracker.py for an example implementation!

You can then directly run your script and it will start tracking the game.

If you're running the tracker in a non-hardcoded location, you will need to specify the --server argument to the shooter.

Metadata

Release files for quickscope 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quickscope 0.1.7
File Size Uploaded
quickscope-0.1.7.tar.gz 19.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quickscope 0.1.7
File Interpreter ABI Platform
quickscope-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 40.2 kB

Release files / quickscope-0.1.7.tar.gz

Download URL quickscope-0.1.7.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d78a4e3c0748a71c55039b667bab6eec7e8a2619adf25718f2e70cef9b3090f7
BLAKE2b-256 checksum
How to use checksums
3cbc1d27809679b372328bd62d3d2fc901029d95884b59d95c02cd631cc0b01b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / quickscope-0.1.7-py3-none-any.whl

Download URL quickscope-0.1.7-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b02b96e67d3fc01a62126fb04ec22d03dbb8eab06de55ac5a92148ada8d11213
BLAKE2b-256 checksum
How to use checksums
ce7fa2c172ef584451ed4b17044fa969543a95bf645e1c9bbb59b883f84f0fdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page