A Critical 403 Bypass Vulnerability Lead to a Staging Environment with User Enumeration

Ay0ub N0uri
4 min readAug 14, 2024

--

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ

Don’t forget to pray for all Muslims in Gaza and Sudan ️❤️🤲

Hello There! it’s ay0ub here.

Today, I’m excited to share a bug I discovered in a public bug bounty program. This vulnerability involved a 403 bypass that led to access to a staging environment where I could enumerate users.

Without further ado, let’s dive right into it!

Let’s Dig Into It

The Recon That Almost Failed

Every great bug hunter starts with reconnaissance, and mine was no different. My target? Let’s call it target.com. I began by using my go-to tools, Subfinder and Amass, to gather as many subdomains as possible.

I scoured through them, expecting to find some low-hanging fruit, but… nothing. Not even a hint of a vulnerability. It felt like I’d hit a brick wall.

When you’re faced with a dead end, sometimes the best move is to retrace your steps. Instead of giving up, I decided to dig deeper and try something different — subdomain fuzzing.

The Discovery: A Hidden Subdomain

Using Wfuzz, I launched the following command, hoping to unearth something the usual methods missed:

wfuzz -c -f subs_wfuzz.txt -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -u "https://www.target.com" -H "Host: FUZZ.target.com"

And there it was, like a treasure chest waiting to be opened — go.target.com. I eagerly tried to access it, only to be greeted with a 403 Forbidden error. Not the warmest welcome, but a challenge I was ready to take on.

I decided to give the popular 4-ZERO-3 tool by Dheerajmadhukar a try. It’s known for bypassing 403 errors using multiple techniques. Here’s the command I used:

./403-bypass.sh -u https://go.target.com/ --exploit

Despite its arsenal of tricks, the tool couldn’t crack this nut. The 403 restriction held firm, and I was left staring at a dead end. But I wasn’t ready to walk away just yet.

As I examined the 4-ZERO-3 tool, I realized that its payloads were somewhat limited. That’s when inspiration struck. What if I could enhance these techniques by integrating an auto-payload generator? I decided to build a custom tool FOUR-ZERO-THREE that utilized Radamsa to generate a broader range of payloads.

With my new tool in hand, I ran the following command:

python3 f0ur-zer0-three.py -u https://go.target.com/ --encode --use-radamsa

It was a waiting game, but eventually, a payload succeeded. The tool returned a 200 OK status.

FOUR-ZERO-THREE Tool

Excitedly, I executed the generated curl command:

curl -k -s 'https://go.target.com///.///........////......../ʷ./../' -H 'User-Agent: Mozilla/5.0' -v

As I examined the response, I noticed something unusual in the HTML title tag — it read: “{web site title} | STAGING ENV”.

Response of the curl request

This was the first clear indication that I had bypassed into a staging environment rather than a production site. A crucial discovery that hinted at deeper vulnerabilities.

Digging Deeper: A Surprising Discovery

At this point, I could have reported the bug and called it a day, but my curiosity got the better of me. I decided to keep exploring, using Wfuzz again to probe deeper into the staging environment:

wfuzz -w /usr/share/seclists/Discovery/Web-Content/common.txt -v -u "https://go.target.com///.///........////......../ʷ./../FUZZ" -c --hc 404

It didn’t take long before I hit a jackpot — an endpoint at:

https://go.target.com///.///........////......../ʷ./../users

This endpoint provided a list of users from the main website, a treasure trove of sensitive information.

Reporting the Bug

With the details in hand, I documented everything and reported the bug. What started as a routine 403 bypass evolved into a major security discovery, giving access to a staging environment and user data that should never have been exposed.

Final Thoughts: The Power of Persistence

This experience was a powerful reminder of the importance of persistence and innovation in bug bounty hunting. When one path is blocked, it’s crucial to try another, think outside the box, and sometimes, create your own tools to get the job done.

The next time you hit a dead end, remember — there’s always another way.

Keep in Mind :

There’s no make it secure.

Contact

--

--

Ay0ub N0uri
Ay0ub N0uri

Responses (2)