Arjun初探

本文最后更新于:2023年5月11日 下午

Arjun为何

Arjun是一款基于python开发的http参数扫描器,采用二分法的思想。爆破url参数,自带25980个参数,Arjun会将参数分为25个块,根据response的长度判断是否有有效参数。

安装

arjun无法在Python<3.4的环境下下运行。

1
pip3 install arjun

注:kali自带python2与python3环境但缺少pip,所以需先安装pip

1
sudo apt-get install python3-pip

安装arjun

参数详情

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
usage: arjun [-h] [-u URL] [-o JSON_FILE] [-oT TEXT_FILE] [-oB [BURP_PORT]] [-d DELAY]
[-t THREADS] [-w WORDLIST] [-m METHOD] [-i [IMPORT_FILE]] [-T TIMEOUT] [-c CHUNKS]
[-q] [--headers [HEADERS]] [--passive [PASSIVE]] [--stable] [--include INCLUDE]
[--disable-redirects]

optional arguments:
-h, --help 查看帮助信息并退出
-u URL 指定目标 URL
-o JSON_FILE, -oJ JSON_FILE
指定json输出文件路径.
-oT TEXT_FILE 指定text输出文件路径.
-oB [BURP_PORT] 输出到 Burp Suite 代理的端口。 默认端口为 8080.
-d DELAY 指定请求延迟(以秒为单位). (default: 0)
-t THREADS 指定线程数. (default: 5)
-w WORDLIST 指定字典路径. (default: {arjundir}/db/large.txt)
-m METHOD 指定请求模式: GET/POST/XML/JSON/HEADERS. (default: GET)
-i [IMPORT_FILE] 从指定文件获取URLs.
-T TIMEOUT HTTP 请求超时秒数. (default: 15)
-c CHUNKS 请求块大小,一次发送的参数数量. (default: 25)
-q Quiet mode. 无输出.
--headers [HEADERS] 指定请求头,以行分隔.
--passive [PASSIVE] 被动收集参数模式.
--stable 稳定优先模式.
--include INCLUDE 自定义请求包含数据.
--disable-redirects 禁止重定向

原理详情

使用proxychains4 把arjun流量代理到burp suite:

编辑proxychains4配置文件:

1
vim /etc/proxychains4.conf

在Proxylist填写burp suite代理端口,我这里是8080:
proxychains4代理设置
代理arjun:

1
proxychains4 arjun -u http://127.1:80/test -oT result.txt

查看arjun数据包:

arjun 1
arjun 2
arjun 3
Arjun会将参数分为25个块,一个块400个参数,根据response的长度判断是否有有效参数,若有有效参数,进一步二分,判断有效参数,只需要向目标发送30-5个请求即可完成任务。


Arjun初探
https://shenysec.github.io/2023/03/21/arjun初探/
作者
sheny
发布于
2023年3月21日
更新于
2023年5月11日
许可协议