Arjun is a high-performance parameter discovery tool that uncovers hidden, undocumented, or forgotten parameters in web applications. For security researchers and bug hunters, finding these hidden parameters is often the gateway to critical vulnerabilities like XSS, SQLi, SSRF, and IDOR attacks. This guide covers everything from installation to advanced exploitation workflows.
What is Arjun and Why Hidden Parameters Matter
Arjun is a lightweight, fast parameter fuzzer written in Python that discovers hidden parameters by comparing HTTP responses when parameters are injected into requests. Unlike traditional parameter discovery tools, Arjun is intelligent — it doesn't just look for status code changes; it analyzes response content, headers, and timing to identify when a parameter is actually being processed.
Why Hidden Parameters Are a Goldmine
Hidden parameters exist for several reasons:
Legacy code — Old API endpoints that are no longer documented but still functional
Debug parameters — Developers left behind for testing (e.g.,
?debug=1 ,? admin=true)Internal parameters — Meant for internal tools but accessible from the public API
Undocumented features — Features removed from documentation but still active
Rate limiting bypasses — Parameters that reset rate limit counters
Authentication bypasses — Parameters that can override or bypass auth checks
Real-world examples:
A parameter like
?user_id=999might expose IDOR vulnerabilities
?callback=in JSON endpoints can lead to JSONP injection
?redirect=can enable open redirect attacks
?format=xmlmight bypass WAF rules designed for JSON
Installation Methods
Method 1: Using pip (Recommended)
pipinstall arjunMethod 2: From Source
git clone https://github.com/s0md3v/Arjun.gitcd Arjunpipinstall -r requirements.txtpython arjun.pyMethod 3: Using pipx (Isolated Environment)
pipxinstall arjunVerify Installation
arjun — version
4 Real-World Workflows:
Workflow 1: XSS Discovery via Hidden Parameters
Objective: Find hidden parameters that might be reflected in responses, leading to XSS vulnerabilities.
# Basic scan for hidden parametersarjun -u https://target.com/search -t10 # Once parameters are found, test for XSS# Example: if 'q' parameter is foundcurl"https://target.com/search?q=<img src=x onerror=alert(1)>"Follow-up testing:
Test for reflected XSS in found parameters
Check if parameters are reflected in HTML, JavaScript, or JSON
Test encoding bypasses (URL encoding, HTML encoding, etc.)
Workflow 2: API Fuzzing with Hidden Parameters
Objective: Discover undocumented API parameters that might expose sensitive data.
# Scan an API endpointarjun -u https://api.target.com/v1/users/123\ — json\ -t15\ — timeout20 # Test common API parameters for data exposure# If 'fields' parameter found:curl"https://api.target.com/v1/users/123?fields=password,ssn,email"Common API parameters to look for:
fields= — Field selection (data exposure)
include=
- Related object inclusion
expand=
- Nested object expansion
admin=true
- Admin mode bypass
debug=1
- Debug outputWorkflow 3: SSRF Hunting
Objective: Find parameters that accept URLs and might be exploitable for SSRF attacks.
# Scan with extended wordlist focused on URL parametersarjun -u https://target.com/api/fetch\ -w ssrf_wordlist.txt\ — post\ -t10 # If 'url' or 'fetch' parameter found, test SSRFcurl -X POST"https://target.com/api/fetch"\ -d"url=http://127.0.0.1:22"\ -H"Content-Type: application/x-www-form-urlencoded" # Test internal endpointscurl -X POST"https://target.com/api/fetch"\ -d"url=http://169.254.169.254/latest/meta-data/"SSRF parameter indicators:
url=
,
uri=
,
endpoint=
,
fetch=
,
load=
,
redirect=
target=
,
host=
,
domain=
,
server=
Workflow 4: Mass Scanning with Automation
Objective: Scan hundreds of URLs for hidden parameters efficiently.
# Create URL list from multiple sourcescat subdomains.txt|whileread sub;doecho"https://$sub/api">> urls.txtdone
# Batch scan with Arjunarjun -U urls.txt\ -t5\ --delay0.2\ -o results.json\ --quiet
# Parse results for interesting parameterscat results.json| jq'.[] | select(.params[].name == "admin")'This is not the End we have more to explore their
Click on this LINK.
Thankyou For Reading…