Convert Figma logo to code with AI

s0md3v logoArjun

HTTP parameter discovery suite.

5,110
781
5,110
15

Top Related Projects

56,766

SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.

A list of useful payloads and bypass for Web Application Security and Pentest/CTF

A collection of Burpsuite Intruder payloads, BurpBounty payloads, fuzz lists, malicious file uploads and web pentesting methodologies and checklists.

8,141

Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.

The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.

🎯 Command Injection Payload List

Quick Overview

Arjun is an HTTP parameter discovery suite designed to find hidden or undocumented parameters in web applications. It uses various techniques, including wordlists and intelligent guessing, to identify potential parameters that could be used for further testing or exploitation.

Pros

  • Efficient and fast parameter discovery
  • Supports multiple HTTP methods (GET, POST, JSON, etc.)
  • Customizable with various options and configurations
  • Actively maintained and regularly updated

Cons

  • Can potentially generate high traffic, which may trigger security alerts
  • Effectiveness depends on the quality of wordlists used
  • May produce false positives in some cases
  • Requires careful use to avoid unintended impact on target systems

Code Examples

# Basic usage to scan a URL
arjun -u https://example.com/api

# Scan with a specific HTTP method
arjun -u https://example.com/api -m POST

# Use a custom wordlist
arjun -u https://example.com/api -w /path/to/wordlist.txt

# Scan with custom headers
arjun -u https://example.com/api -H "User-Agent: Mozilla/5.0" -H "Cookie: session=abc123"

Getting Started

To get started with Arjun, follow these steps:

  1. Install Arjun:

    pip install arjun
    
  2. Basic usage:

    arjun -u https://example.com/api
    
  3. For more options and advanced usage, refer to the help menu:

    arjun -h
    

Remember to use Arjun responsibly and only on systems you have permission to test.

Competitor Comparisons

56,766

SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.

Pros of SecLists

  • Comprehensive collection of multiple types of lists for security testing
  • Regularly updated with community contributions
  • Useful for various security tasks beyond parameter discovery

Cons of SecLists

  • Not specifically designed for parameter discovery like Arjun
  • Requires manual filtering to find relevant lists for specific tasks
  • Large repository size may be overwhelming for some users

Code Comparison

While a direct code comparison isn't relevant due to the different nature of these projects, we can compare how they might be used:

SecLists (using a wordlist for parameter discovery):

wfuzz -c -z file,/path/to/SecLists/Discovery/Web-Content/burp-parameter-names.txt --hw 0 http://example.com/page?FUZZ=test

Arjun:

python3 arjun.py -u http://example.com/page -m GET

SecLists provides raw data for various tools, while Arjun is a specialized tool for parameter discovery. SecLists offers broader applicability but requires integration with other tools, whereas Arjun provides a more focused, out-of-the-box solution for parameter discovery.

A list of useful payloads and bypass for Web Application Security and Pentest/CTF

Pros of PayloadsAllTheThings

  • Comprehensive collection of payloads for various security testing scenarios
  • Well-organized structure with categories for different attack vectors
  • Regularly updated with contributions from the security community

Cons of PayloadsAllTheThings

  • Lacks specific functionality for parameter discovery
  • May require more manual effort to implement payloads in testing
  • Not focused on automation or tool-based approach

Code Comparison

Arjun (Python):

def generate_payloads(param):
    payloads = []
    for technique in techniques:
        payloads.append(technique.generate(param))
    return payloads

PayloadsAllTheThings (Example payload):

"><script>alert(1)</script>

Summary

Arjun is a specialized tool for parameter discovery in web applications, while PayloadsAllTheThings is a comprehensive repository of payloads for various security testing scenarios. Arjun offers automated parameter discovery, whereas PayloadsAllTheThings provides a wide range of payloads that can be manually implemented. The choice between the two depends on the specific testing requirements and the level of automation needed.

A collection of Burpsuite Intruder payloads, BurpBounty payloads, fuzz lists, malicious file uploads and web pentesting methodologies and checklists.

Pros of IntruderPayloads

  • Extensive collection of payloads for various attack vectors
  • Organized into categories for easy navigation
  • Regularly updated with new payloads

Cons of IntruderPayloads

  • Lacks automated parameter discovery functionality
  • No built-in fuzzing capabilities
  • Requires manual integration with other tools for full exploitation

Code Comparison

IntruderPayloads (example payload):

<script>alert(1)</script>

Arjun (example usage):

import arjun

arjun.scan(url, method='GET', headers=headers, data=data)

While IntruderPayloads provides a vast array of pre-crafted payloads, Arjun focuses on automated parameter discovery and fuzzing. IntruderPayloads is better suited for manual testing and as a resource for payload ideas, whereas Arjun excels in identifying hidden parameters and potential injection points automatically.

IntruderPayloads offers a broader range of attack vectors, but Arjun provides a more streamlined approach to parameter discovery. The choice between the two depends on the specific testing requirements and the tester's preference for manual vs. automated approaches.

8,141

Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.

Pros of fuzzdb

  • Comprehensive collection of attack patterns and payloads for various security testing scenarios
  • Regularly updated with new patterns and community contributions
  • Versatile and can be used with multiple security testing tools

Cons of fuzzdb

  • Requires integration with other tools for effective use
  • May include outdated or irrelevant patterns for specific testing scenarios
  • Large dataset can be overwhelming for beginners

Code comparison

fuzzdb (example of a SQL injection pattern):

' OR '1'='1
' OR 1=1--
' OR 'a'='a

Arjun (example of parameter discovery):

params = arjun.fetch_params(url)
for param in params:
    print(param)

While fuzzdb provides attack patterns, Arjun focuses on parameter discovery. fuzzdb is a comprehensive database of attack payloads, whereas Arjun is a tool specifically designed for finding hidden HTTP parameters. fuzzdb can be used in conjunction with various security testing tools, while Arjun is a standalone tool with a specific purpose.

The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.

Pros of Big List of Naughty Strings

  • Comprehensive collection of edge-case strings for testing
  • Language-agnostic, can be used in various programming environments
  • Regularly updated with community contributions

Cons of Big List of Naughty Strings

  • Passive tool, requires manual implementation in testing scenarios
  • Limited to string-based testing, not focused on parameter discovery
  • May require additional processing to fit specific testing frameworks

Code Comparison

Big List of Naughty Strings:

# Example usage in Python
with open('blns.txt', 'r') as file:
    naughty_strings = file.readlines()
for string in naughty_strings:
    test_function(string.strip())

Arjun:

# Example usage of Arjun
from arjun import arjun

arjun(url='https://example.com/api',
      method='GET',
      headers={'User-Agent': 'Arjun'})

The Big List of Naughty Strings provides a static list of problematic strings for testing, while Arjun is an active tool for discovering hidden HTTP parameters. Big List of Naughty Strings is more versatile across languages but requires manual integration, whereas Arjun is specifically designed for web application testing and automates the process of parameter discovery.

🎯 Command Injection Payload List

Pros of command-injection-payload-list

  • Extensive collection of command injection payloads for various scenarios
  • Well-organized and categorized payloads for easy reference
  • Regularly updated with new payloads and techniques

Cons of command-injection-payload-list

  • Lacks automated scanning functionality
  • No built-in payload generation or customization features
  • Requires manual implementation in penetration testing workflows

Code Comparison

Arjun (Python):

def generate_payloads(param):
    payloads = []
    for technique in techniques:
        payloads.extend(technique(param))
    return payloads

command-injection-payload-list (Text-based):

;netstat -a;
|netstat -a|
`netstat -a`
$(netstat -a)

Arjun is a tool for discovering hidden HTTP parameters, while command-injection-payload-list is a curated collection of command injection payloads. Arjun offers automated scanning and parameter discovery, making it more suitable for active reconnaissance. On the other hand, command-injection-payload-list provides a comprehensive reference for various command injection techniques, which can be valuable for manual testing and payload crafting. The choice between the two depends on the specific needs of the security assessment or penetration testing scenario.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README


Arjun
Arjun

HTTP Parameter Discovery Suite

demo

What's Arjun?

Arjun can find query parameters for URL endpoints. If you don't get what that means, it's okay, read along.

Web applications use parameters (or queries) to accept user input, take the following example into consideration

http://api.example.com/v1/userinfo?id=751634589

This URL seems to load user information for a specific user id, but what if there exists a parameter named admin which when set to True makes the endpoint provide more information about the user?
This is what Arjun does, it finds valid HTTP parameters with a huge default dictionary of 25,890 parameter names.

The best part? It takes less than 10 seconds to go through this huge list while making just 50-60 requests to the target. Here's how.

Why Arjun?

  • Supports GET/POST/POST-JSON/POST-XML requests
  • Automatically handles rate limits and timeouts
  • Export results to: BurpSuite, text or JSON file
  • Import targets from: BurpSuite, text file or a raw request file
  • Can passively extract parameters from JS or 3 external sources

Installing Arjun

You can install arjun with pip as following:

pip3 install arjun

or, by downloading this repository and running

python3 setup.py install

How to use Arjun?

A detailed usage guide is available on Usage section of the Wiki.

Direct links to some basic options are given below:

Optionally, you can use the --help argument to explore Arjun on your own.

Credits

The parameter names wordlist is created by extracting top parameter names from CommonCrawl dataset and merging best words from SecLists and param-miner wordlists into that.
db/special.json wordlist is taken from data-payloads.