Wishload is a powerful tool that allows you to craft and manipulate polyglot payloads. With a variety of encoding and escape options, this tool is designed to help security researchers, penetration testers, and developers create complex payloads for web applications and beyond. Whether you're looking to encode your payload in multiple formats, apply padding, or convert characters to escape sequences, Wishload makes it simple and efficient.
- Customizable Padding: Add padding characters to the left, right, or center of your payload.
- Multiple Encodings: Choose from a wide variety of encoding types (UTF-8, Base64, URL Encoding, etc.).
- Escape Sequences: Convert your payload to Unicode escape sequences or JavaScript escape sequences.
- Symbol Encoding: Encode specific symbols within your payload using a chosen encoding type.
- File and Pipe Input: Accept input directly from files or pipes for flexibility.
- Strong Payload Strength: Choose the level of payload strength based on your needs.
To get started with Wishload, simply clone this repository or download the latest release.
git clone https://github.com/findthehead/Wishload.git
cd wishloadWishload is written in Python, so you'll need Python 3.x installed on your system.
pip install -r requirements.txtWishload provides a wide range of command-line options to tailor your payload creation.
usage: wishload.py [-h] [-strong STRONG] [-p PAYLOAD] [-s SYMBOL] [-pad PADDING]
[--padding-length PADDING_LENGTH] [--left] [--right]
[--center] [-e ENCODING] [-f FILE] [--unicode] [--js_escape] [--fire]
Make polyglot payloads as per your Wish-p,--payload: Payload to be encoded (e.g.,"<script>alert('Hello!');</script>").- '-c', '--camel', type=str, help='Payload to be camelcased' : Camel Casing functionality (e.g.,
<sCrIpt>aLErT(1)</ScrIpt>) - '-st', '--strong', type=int, default=1, help='Strength of the payload': Make Double or triple encoded with -st 1 or -st 2 or st 3
-s,--symbol: Symbols to be encoded (e.g.,"<>;").-pad,--padding: Padding character (e.g.,"#").--padding-length: Total length of the padded payload (e.g.,20).--left: Apply padding to the left of the payload.--right: Apply padding to the right of the payload.--center: Apply padding to the center of the payload.-e,--encoding: Encoding to be used (e.g.,utf-8,base64,ascii, etc.).-f,--file: Path to a file to read the payload from.--unicode: Convert the payload to Unicode escape sequences (e.g.,\uXXXX).--js_escape: Convert the payload to JavaScript escape sequences (e.g.,\xXX).-st,--strong: Strength of the payload (default is1).--fire: All Encoding Applied
python wishload.py -p "hello <world" --padding "#" --padding-length 20 --centerThis will:
- Add padding characters (
#) to the center of the payload"hello <world"so that the total length becomes20.
python3 wishload.py -p "<script>alert(1)</script>" -c .
cat payload.txt | python3 wishload.py -c .This will:
- Create a camel case for payload provided in the argument (e.g.,
<sCrIpt>aLErT(1)</ScrIpt>).
python wishload.py -p "hello <world" --unicodeThis will:
- Convert the payload
"hello <world"to Unicode escape sequences (e.g.,hello \u003cworld).
python wishload.py -p "hello <world" --js_escapeThis will:
- Convert the payload
"hello <world"to JavaScript escape sequences (e.g.,hello \x3cworld).
python wishload.py -f "input.txt" --padding "#" --padding-length 50 --centerThis will:
- Read the payload from the
input.txtfile and apply padding to the center.
For the following command:
python wishload.py -p "hello <world" --padding "#" --padding-length 20 --center --js_escapeOutput:
Final Payload: ####hello \x3cworld####
- The padding operation will adjust the total length of the payload as per your specified length.
- You can chain different transformations together (e.g., padding + encoding + escape sequences).
- By default, Wishload will apply left padding if no padding direction is specified.
We welcome contributions from the community! To contribute, please fork the repository, create a feature branch, and submit a pull request. Be sure to include tests for any new features or bug fixes.
- Fork the repository
- Create a new branch:
git checkout -b feature-name - Make your changes and commit them:
git commit -am 'Add new feature' - Push to your forked repository:
git push origin feature-name - Open a pull request with a detailed description of your changes
To run the Wishload project inside a Docker container, follow these steps:
-
Build the Docker Image
In your project directory (where the
Dockerfileis located), build the Docker image using the following command:docker build -t wishload .This will create a Docker image named
wishload. -
Run the Docker Container
After building the image, run the container with the following command:
docker run --rm wishload -p "hello <world" --padding "#" --padding-length 20 --center
This project is licensed under the GNU License - see the LICENSE file for details.
