https://github.com/cdgriffith/pyctf
https://github.com/cdgriffith/pyctf
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/cdgriffith/pyctf
- Owner: cdgriffith
- Created: 2014-06-27T02:09:56.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2016-03-16T15:57:48.000Z (almost 10 years ago)
- Last Synced: 2025-01-23T01:45:35.698Z (12 months ago)
- Language: Python
- Size: 568 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
PyCTF
=====
PyCTF is a Capture-the-Flag framework.
> IN DEVELOPMENT - Please report any issues or requests through github
Overview
--------
The goal of PyCTF is to provide an easy to setup and use challenge-response game.
The PyCTF Server allows for clients to connect to it to grab questions and media that relate to the questions,
and then submit a response. It allows for unique question/answer combos for each user, which can be generated by nearly any language.
Requirements
------------
* Python 2.7 or 3.2+ \*
- bottle
\* Currently in development on 3.4, planning to target 2.7+
Optional requirements:
* cherrypy (if using SSL)
* requests (if using python client)
Basic Usage
-----------
To start up a match, simply start off the `pyctf_server.py` python file under the 'src' directory.
`python pyctf_server.py`
With default settings this will start a server and website running locally on port 47275.
Access it by opening a web browser (currently tested with firefox) and pointing it to `http://localhost:47275/`.
> DO NOT use the provided SSL pem when running your own server,
it is provided for demonstration / testing purposes only.
LEGAL
-----
MIT Licence
Developed by Chris Griffith - pyctf.com - christophergriffith.net
FAQ and Common Issues
---------------------
### Why isn't the ssl.key and ssl.crt put in the match directory by default?
Feel free to put it in there, but as the server could potentially run many matches while on the
same domain it would be silly to create a new one per match.
### sslv3 alert bad certificate
```
ssl.SSLError: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:645)
```
Firefox hates self signed certs. Will have to open `about:config` in the url bar, accept the warning, then set
`security.tls.insecure_fallback_hosts` to `localhost` and visit localhost again.
### tlsv1 alert unknown ca
```
ssl.SSLError: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca
```
The browser has not yet accepted the self signed certificate.