.github | ||
assets | ||
plugins | ||
.gitignore | ||
base.py | ||
caterpillar.service | ||
console.html | ||
Dockerfile | ||
download_certs.bat | ||
download_certs.sh | ||
LICENSE | ||
README.md | ||
requirements-dev.txt | ||
requirements.txt | ||
ruff.toml | ||
server.py | ||
smtp.py | ||
web.py |
gnh1201/caterpillar
Caterpillar Proxy - The simple web debugging proxy (formerly, php-httpproxy)
Use cases
- Build a network tunnel using Python and the LAMP(PHP) stack.
- K-Anonymity for Spam Filtering: Case with Mastodon, and Misskey
- [YouTube Video] File Upload Vulnerability Attack Test (Caterpillar Proxy)
How it works
Basic structure
You <-> Proxy client (Python) <-> Parasitized proxy server (Optional, PHP) <-> On the Web
For example, build a simple web debugging proxy on the shared servers.
Stateful mode
This project supports two modes of connection. The default is stateless. You can use the stateful mode to avoid being constrained by transfer capacity limits. See the Stateful mode (github.com/gnh1201/caterpillar wiki).
(Optional) Before to use
If you have a server that will be parasitized and you want to proxy it, you should upload the index.php
file to a shared server. The index.php file is located in the assets/php
directory within this repository.
How to use
- Write a file
.env
(Linux) orsettings.ini
(Windows). Like this:
[settings]
PORT=5555
SERVER_URL=localhost
SERVER_CONNECTION_TYPE=
CA_KEY=ca.key
CA_CERT=ca.crt
CERT_KEY=cert.key
CERT_DIR=certs/
OPENSSL_BINPATH=openssl
CLIENT_ENCODING=utf-8
USE_EXTENSIONS=wayback.Wayback,bio.PyBio
Note: If using Caterpillar Proxy (Python) alone, set SERVER_URL=localhost
. Otherwise, use the endpoint URL of the Worker script (PHP or Java), e.g., SERVER_URL=http://example.org
.
- (Optional) Create a certificate for SSL decryption
chmod +x configure_certs.sh
./configure_certs.sh
sudo apt-get install -y ca-certificates
sudo cp ca.crt /usr/local/share/ca-certificates/caterpillar-ca.crt
sudo update-ca-certificates
-
Run
python3 server.py
and set HTTP(S) proxy in your web browser (e.g. Firefox, Chromium) -
Test 100MB/SSL, 1GB/SSL, 10GB/SSL download and check the speed.
-
Enjoy it
-
(Optional) With Cloudflare, we can expect to accelerate the 4x speed and reduce the network stuck.
Extensions
- Web Console Available
- Fediverse (e.g., Mastodon): See the Fediverse (github.com/gnh1201/caterpillar wiki).
- Wayback (Private browsing with Google or Wayback cache): See the Wayback (github.com/gnh1201/caterpillar wiki).
Thanks to
- Pan Art by @yeohangdang@i.peacht.art: Image File
- GitHub Sponsors