Files
Arjun/README.md

78 lines
3.0 KiB
Markdown
Raw Normal View History

2018-11-10 05:17:12 +05:30
<h1 align="center">
<br>
<a href="https://github.com/s0md3v/Arjun"><img src="https://image.ibb.co/c618nq/arjun.png" alt="Arjun"></a>
<br>
Arjun
<br>
</h1>
2019-03-11 19:58:09 +05:30
<h4 align="center">HTTP Parameter Discovery Suite</h4>
2018-11-10 05:17:12 +05:30
<p align="center">
<a href="https://github.com/s0md3v/Arjun/releases">
<img src="https://img.shields.io/github/release/s0md3v/Arjun.svg">
</a>
<a href="https://pypi.python.org/pypi/arjun/">
<img src="https://img.shields.io/pypi/v/arjun.svg">
</a>
2018-11-10 05:17:12 +05:30
<a href="https://github.com/s0md3v/Arjun/issues?q=is%3Aissue+is%3Aclosed">
2021-03-11 07:50:28 +05:30
<img src="https://img.shields.io/github/issues-closed-raw/s0md3v/Arjun?color=dark-green&label=issues%20fixed">
</a>
<a href="https://travis-ci.com/s0md3v/Arjun">
<img src="https://img.shields.io/travis/com/s0md3v/Arjun.svg?color=dark-green&label=tests">
2018-11-10 05:17:12 +05:30
</a>
</p>
2020-12-06 16:26:35 +05:30
![demo](https://i.ibb.co/q5F8qPY/Screenshot-2020-12-06-21-54-52.png)
### What's Arjun?
Arjun can find query parameters for URL enpoints. If you don't get what that means, it's okay, read along.
2019-04-12 19:36:36 +05:30
Web applications use parameters (or queries) to accept user input, take the following example into consideration
`http://api.example.com/v1/userinfo?id=751634589`
2019-04-12 19:38:32 +05:30
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?\
2021-02-08 08:36:52 +05:30
This is what Arjun does, it finds valid HTTP parameters with a huge default dictionary of 10,985 parameter names.
2019-04-12 19:38:32 +05:30
2021-02-08 08:36:52 +05:30
The best part? It takes less than 10 seconds to go through this huge list while making just 20-30 requests to the target. [Here's how](https://github.com/s0md3v/Arjun/wiki/How-Arjun-works%3F).
2019-11-18 21:31:00 +05:30
2020-12-06 16:26:35 +05:30
### Why Arjun?
2019-11-18 21:31:00 +05:30
2021-02-08 08:36:52 +05:30
- Supports `GET/POST/POST-JSON/POST-XML` requests
2020-12-06 16:26:35 +05:30
- Automatically handles rate limits and timeouts
2021-02-08 08:36:52 +05:30
- Export results to: BurpSuite, text or JSON file
- Import targets from: BurpSuite, text file or a raw request file
2020-12-06 16:26:35 +05:30
- Can passively extract parameters from JS or 3 external sources
2019-11-18 21:31:00 +05:30
2021-02-08 14:45:36 +05:30
### Installing Arjun
2021-03-11 06:38:50 +05:30
You can install `arjun` with pip as following:
```
pip3 install arjun
```
or, by downloading this repository and running
2021-02-08 14:45:36 +05:30
```
python3 setup.py install
```
### How to use Arjun?
2018-11-10 05:21:17 +05:30
2020-12-06 16:26:35 +05:30
A detailed usage guide is available on [Usage](https://github.com/s0md3v/Arjun/wiki/Usage) section of the Wiki.
2018-11-10 05:17:12 +05:30
2020-12-06 16:26:35 +05:30
Direct links to some basic options are given below:
2019-10-23 13:30:57 +05:30
2020-12-06 16:26:35 +05:30
- [Scan a single URL](https://github.com/s0md3v/Arjun/wiki/Usage#scan-a-single-url)
2021-02-08 08:36:52 +05:30
- [Import targets](https://github.com/s0md3v/Arjun/wiki/Usage#import-multiple-targets)
- [Export results](https://github.com/s0md3v/Arjun/wiki/Usage#save-output-to-a-file)
2020-12-06 16:26:35 +05:30
- [Use custom HTTP headers](https://github.com/s0md3v/Arjun/wiki/Usage#use-custom-http-headers)
2018-11-10 05:17:12 +05:30
2020-12-06 16:26:35 +05:30
Optionally, you can use the `--help` argument to explore Arjun on your own.
2018-11-10 05:26:26 +05:30
##### Credits
2021-02-08 08:36:52 +05:30
The parameter names wordlist is created by extracting top parameter names from [CommonCrawl](http://commoncrawl.org) dataset and merging best words from [SecLists](https://github.com/danielmiessler/SecLists) and [param-miner](https://github.com/PortSwigger/param-miner) wordlists into that.