本文最后更新于:2023年5月11日 下午
Arjun为何
Arjun是一款基于python开发的http参数扫描器,采用二分法的思想。爆破url参数,自带25980个参数,Arjun会将参数分为25个块,根据response的长度判断是否有有效参数。
安装
arjun无法在Python<3.4的环境下下运行。
注:kali自带python2与python3环境但缺少pip,所以需先安装pip
1
| sudo apt-get install python3-pip
|
![安装arjun](/img/arjun/arjun1.jpg)
参数详情
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代理设置](/img/arjun/arjun2.jpg)
代理arjun:
1
| proxychains4 arjun -u http://127.1:80/test -oT result.txt
|
查看arjun数据包:
![arjun 1](/img/arjun/arjun3.jpg)
![arjun 2](/img/arjun/arjun4.jpg)
![arjun 3](/img/arjun/arjun5.jpg)
Arjun会将参数分为25个块,一个块400个参数,根据response的长度判断是否有有效参数,若有有效参数,进一步二分,判断有效参数,只需要向目标发送30-5个请求即可完成任务。