mirror of
https://github.com/0xInfection/Awesome-WAF.git
synced 2024-10-01 04:35:35 -04:00
Added a method type.
This commit is contained in:
parent
63cf5c1814
commit
e7b9fd4f40
19
README.md
19
README.md
@ -48,7 +48,7 @@ Feel free to [contribute](CONTRIBUTING.md).
|
|||||||
|
|
||||||
## Testing Methodology:
|
## Testing Methodology:
|
||||||
### Where To Look:
|
### Where To Look:
|
||||||
- Always look out for common ports that expose that a WAF `80`, `443`, `8000`, `8008`, `8080`, `8088`.
|
- Always look out for common ports that expose that a WAF, namely `80`, `443`, `8000`, `8008`, `8080`, `8088` ports.
|
||||||
> __Tip:__ You can use automate this easily by commandline using a screenshot taker like [WebScreenShot](https://github.com/maaaaz/webscreenshot).
|
> __Tip:__ You can use automate this easily by commandline using a screenshot taker like [WebScreenShot](https://github.com/maaaaz/webscreenshot).
|
||||||
- Some WAFs set their own cookies in requests (eg. Citrix Netscaler, Yunsuo WAF).
|
- Some WAFs set their own cookies in requests (eg. Citrix Netscaler, Yunsuo WAF).
|
||||||
- Some associate themselves with separate headers (eg. Anquanbao WAF, Amazon AWS WAF).
|
- Some associate themselves with separate headers (eg. Anquanbao WAF, Amazon AWS WAF).
|
||||||
@ -61,15 +61,16 @@ Feel free to [contribute](CONTRIBUTING.md).
|
|||||||
To identify WAFs, we need to (dummy) provoke it.
|
To identify WAFs, we need to (dummy) provoke it.
|
||||||
1. Make a normal GET request from a browser, intercept and test response headers (specifically cookies).
|
1. Make a normal GET request from a browser, intercept and test response headers (specifically cookies).
|
||||||
2. Make a request from command line (eg. cURL), and test response content and headers (no user-agent included).
|
2. Make a request from command line (eg. cURL), and test response content and headers (no user-agent included).
|
||||||
3. If there is a login page somewhere, try some common (easily detectable) payloads like `" or 1 = 1 --`.
|
3. Make GET requests to random open ports and grab banners which might expose the WAFs identity.
|
||||||
4. If there is some input field somewhere, try with noisy payloads like `<script>alert()</script>`.
|
4. If there is a login page somewhere, try some common (easily detectable) payloads like `" or 1 = 1 --`.
|
||||||
5. Attach a dummy `../../../etc/passwd` to a random parameter at end of URL.
|
5. If there is some input field somewhere, try with noisy payloads like `<script>alert()</script>`.
|
||||||
6. Append some catchy keywords like `' OR SLEEP(5) OR '` at end of URLs to any random parameter.
|
6. Attach a dummy `../../../etc/passwd` to a random parameter at end of URL.
|
||||||
6. Make GET requests with outdated protocols like `HTTP/0.9` (`HTTP/0.9` does not support POST type queries).
|
7. Append some catchy keywords like `' OR SLEEP(5) OR '` at end of URLs to any random parameter.
|
||||||
7. Many a times, the WAF varies the `Server` header upon different types of interactions.
|
8. Make GET requests with outdated protocols like `HTTP/0.9` (`HTTP/0.9` does not support POST type queries).
|
||||||
8. Drop Action Technique - Send a raw crafted FIN/RST packet to server and identify response.
|
9. Many a times, the WAF varies the `Server` header upon different types of interactions.
|
||||||
|
10. Drop Action Technique - Send a raw crafted FIN/RST packet to server and identify response.
|
||||||
> __Tip:__ This method could be easily achieved with tools like [HPing3](http://www.hping.org) or [Scapy](https://scapy.net).
|
> __Tip:__ This method could be easily achieved with tools like [HPing3](http://www.hping.org) or [Scapy](https://scapy.net).
|
||||||
9. Side Channel Attacks - Examine the timing behaviour of the request and response content.
|
11. Side Channel Attacks - Examine the timing behaviour of the request and response content.
|
||||||
|
|
||||||
## WAF Fingerprints
|
## WAF Fingerprints
|
||||||
Wanna detect WAFs? Lets see how.
|
Wanna detect WAFs? Lets see how.
|
||||||
|
Loading…
Reference in New Issue
Block a user