HTTP/2 Single Packet Attack low level library based on Scapy
Project description
H2SpaceX
HTTP/2 low level library based on Scapy which can be used for Single Packet Attack (Race Condition on H2)
TODO
- Single Packet Attack - POST &...
- implement
- test functionality on different H2 frameworks
- Single Packet Attack - GET
- implement
- Content-Length: 1 Method
- POST Request with x-override-method: GET header
- test functionality on different H2 frameworks
- Response Parsing
- implement
- implement threaded response parser
- Body Decompression
- gzip
- br
- deflate
- Proxy
- Socks5 Proxy
More Research
Some following statements are just ideas and not tested or implemented.
- More Request in a Single Packet
- Increase MSS (Idea by James Kettle)
- Out of Order TCP Packets (Idea by James Kettle)
- IP Fragmentation
- Proxy the Single Packet Request through SOCKS
- Single Packet Attack on GET Requests
- Content-Length: 1 Method (Idea by James Kettle)
- x-override-method: GET Method (Idea by James Kettle)
- Index HPACK Headers to Make GET Requests Smaller
- HEADERS Frame without END_HEADER Flag
- HEADERS Frame Without Some Pseudo Headers
Installation
H2SpaceX works with Python 3 (preferred: >=3.10)
pip install h2spacex
Quick Start
You can import the HTTP/2 TLS Connection and set up the connection. After setting up the connection, you can do other things:
from h2spacex import H2OnTlsConnection
h2_conn = H2OnTlsConnection(
hostname='http2.github.io',
port_number=443
)
h2_conn.setup_connection()
...
see more examples in Wiki Page
References & Resources
I also got some ideas from a previous developed library h2tinker.
Finally, thanks again to James Kettle for directly helping and pointing some other techniques.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file h2spacex-0.1.16.tar.gz
.
File metadata
- Download URL: h2spacex-0.1.16.tar.gz
- Upload date:
- Size: 23.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 216e2488b6ebf8cc3294ce115dbb674c5383b3691f2b917d0570d0435e1a6bcb |
|
MD5 | 197361ed8b28fe821e86336c993198fa |
|
BLAKE2b-256 | 82a00d107120e48ab3e665cf511259c56b7cbe124ac789e0ccd34679f0762a94 |
File details
Details for the file h2spacex-0.1.16-py3-none-any.whl
.
File metadata
- Download URL: h2spacex-0.1.16-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f28de13291d88785867d9de702ffc1038e591577e7735a04425d88afcfe91e83 |
|
MD5 | 59a3da5c3e45b3351c878363f1a99e33 |
|
BLAKE2b-256 | 4e213a351a1d70ecd28e3904cb0a52ffd4cca7c6bc6edfbe2f2895bc299b0cb8 |