HTTP
TCP 80: HTTP unencryptedTCP 443: HTTPS encryptedPORT(Web is oftentimes on other ports, especially internal proxies or admin pages on8080or8433)
- OWASP Top 10:
- HTTP Codes:
- Web Page Scanner:
/.well-known/URIs:- User-Agent: https://useragents.io/explore
- Default Web Roots:
Directory Brute-Forcing
TODO: cull down AI slop below
URL Encoding
URL Encoding (Percent-Encoding) is not an obfuscation technique; it is a mechanical requirement of the HTTP protocol. You must encode characters to stop the Web Server from confusing your Payload Data with HTTP Syntax.
| Character | HTTP Syntax Meaning | Why it breaks exploits if unencoded |
|---|---|---|
& | Parameter Separator | Server splits your payload. ?cmd=id & whoami becomes Param 1: cmd=id, Param 2: whoami. |
# | URL Fragment | Browser stops sending data after #. The backend never sees it. |
+ / | Space | Raw spaces break the HTTP header structure (GET /page HTTP/1.1). |
? | Query String Start | Truncates or confuses path traversal payloads. |
The CGI / Command Injection Rule:
When exploiting CGI scripts (.sh, .bat, .cgi), the web server unwraps the URL and hands the raw string directly to the OS shell (/bin/bash or cmd.exe). If you do not URL-encode your shell operators (&, |, ;), the web server strips them out during the HTTP parsing phase, and the OS shell never executes them.
- Double Encoding (WAF Bypass): If a WAF blocks
%5C(\), encode the%symbol itself (%=%25). The payload becomes%255C. The WAF sees%255C(Allowed), passes it to the backend, which decodes it once to%5C, and the application decodes it again to\. - Space Variants:
- In the URL Path (
GET /path%20here), use%20. - In the Query String / Body (
?cmd=id+whoami),+is historically interpreted as a space (application/x-www-form-urlencoded), but%20is universally safer to avoid parsing desyncs. Default to%20.
- In the URL Path (