8 different techniques to Bypass Rate Limits in Web Applications and API's.

[A Thread šŸ§µ]

#bugbounty #bugbountytips #cybersecurity #AppSec
- What is Rate Limit

Rate limiting is a process to limiting the number of request an user can make to a web server in an span of time. This can be achieved by implementing IP based, Session Based rate limits on web server.

Bypasses šŸ‘‡
- Where to Look for Rate Limit Bugs

Place like :
- Login/Signup pages
- Register Pages
- 2FA codes
- Confirmation Codes

and any other request which if bruteforce will allow attacker to achieve anything malicious should be check for "No Rate Limit" issue.

Bypasses šŸ‘‡
[Bypass 1] - Using Null Chars

%00, %0d%0a, %09, %0C, %20, %0

Example:
- Bruteforce with snapsec@gmail.com
- After some time you will be blocked
- Now Bruteforce with snapsec@gmail.com%00 and check if you are able continue bruteforce it
[Bypass 2] - Adding Spaces

A webserver may strip off extra spaces added to email/username at the backend, Which may allow you to bruteforce the same email by appending an extra space every time you are blocked.
[Bypass 3] - Host Header Injection

Try Modifying Host header of the request after being blocked by the server

Change Host:www,newsite,com
Change Host:localhost
Change Host:127.0.0.1
[Bypass 4] - Changing Cookies

Try changing Session cookie after being blocked by the server. This can be achieved by figuring out which request is responsible to set session cookies to the user and then use that request to update session cookie everytime you are blocked.
[Bypass 5] - X-forwarded-For

- dig target[.]com
- Change The X-Forwarded-For:[Website-ip]

This may confuse WAF/server/loadbalancer, as if requests are being forwarded to another host but will be forwarded to same target host hence will allow you to bypass the rate limit.
[Bypass 6] - Confuse server with correct attempts

If the server is blocking you after 20 attempts, Try bruteforcing with 19 attempts and use your credentials to login to your account on 20th attempt and then repeat the process.
[Bypass 7] - Updating target Paths

appending random param=value may sometimes bypass rate limit on the endpoint

Eg:
- Bruteforce /api/v1/users/<id>
- Got blocked after 200 attempts
- Now Bruteforce /api/v1/users/<id>?xyz=123
- and change the param=value after each 200 attempts
[Bypass 8] - Ip based Rate limits

Ip based rate limits can be easily bypassed by changing the Ip address of your machine. The alternative would be using IP Rotate Burp Extension.

ā€¢ ā€¢ ā€¢

Missing some Tweet in this thread? You can try to force a refresh
怀

Keep Current with Snap Sec

Snap Sec Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @snap_sec

5 Dec 21
How to Look for "Insecure CORS Configuration" vulnerabilities.

[A thread šŸ§µ]

#appsec #bugbounty #bugbountytips #cybersecurity
[2/n]
What is Insecure CORS issue?

An insecure CORS configuration allows any website to trigger requests with user credentials to the target application and read the responses thus enabling attackers to perform privileged actions or to retrieve potential sensitive information
[3/n]

Basic Origin Reflection Test:

Req: Origin: evil[.]com
Res: Access-Control-Allow-Origin: evil[.]com

> In this test case check if your Origin Header is being reflected within the Access-Control-Allow-Origin Header. If yes, this may be a vulnerability.
Read 8 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(