1、简介
Arjun是一款可以找到URL端点查询参数的工具。Web应用程序使用参数(或查询)来接受用户输入,此工具可以帮助渗透测试人员方便查找隐藏的参数。
2、内容
此工具支持以下功能:
支持GET/POST/POST-JSON/POST-XML请求
自动处理速率限制和超时
将结果导出到:BurpSuite、文本或JSON文件
从BurpSuite、文本文件或原始请求文件导入目标
可以从JS或3个外部源被动提取参数
安装
pip3 install arjun
或者下载github项目,使用python安装
python3 setup.py install
使用
扫描单个URL
arjun -u https://api.example.com/endpoint
指定HTTP方法
默认情况下,Arjun 会查找方法参数。所有可用的方法是:GETGET/POST/JSON/XML
arjun -u https://api.example.com/endpoint -m POST
导入目标
Arjun支持从BurpSuite、简单文本文件和原始请求文件导入目标。Arjun可以自动识别输入文件的类型,因此只需要指定路径。
arjun -i targets.txt
注意:在Burp Suite中导出项目时取消选中“base64”选项。
导出结果
选择:-oJ/-oB/-oT
使用相应的选项将结果导出到 BurpSuite 或 txt/JSON 文件。
arjun -u https://api.example.com/endpoint -oJ result.json
-oJ result.json
-oT result.txt
-oB 127.0.0.1:8080
指定参数位置
默认情况下,当使用JSON或XML方法参数时,Arjun可以检测指定位置的参数。所有可用的方法都是:GET/POST/JSON/XML
arjun -u https://api.example.com/endpoint -m JSON --include='{"root":{"a":"b",$arjun$}}'
或者
arjun -u https://api.example.com/endpoint -m XML --include='<?xml><root>$arjun$</root>'
多线程
Arjun 默认使用 2 个线程,可以根据网络连接和目标限制调整。
arjun -u https://api.example.com/endpoint -t 10
延迟请求
使用-d选项来延迟请求
arjun -u https://api.example.com/endpoint -d 2
请求超时
指定请求超时时间 默认值为15
arjun -u https://api.example.com/endpoint -T 10
速率限制
--stable将线程数设置为1,并在请求之间引入6到12秒的随机延迟。
arjun -u https://api.example.com/endpoint --stable
指定数据
假设有一个API密钥,需要随每个请求一起发送,可以使用--include选项
arjun -u https://api.example.com/endpoint --include 'api_key=xxxxx'
或者
arjun -u https://api.example.com/endpoint --include '{"api_key":"xxxxx"}'
要包含多个参数,请使用&将它们分开或作为有效的JSON对象传递
控制查询参数大小
默认情况下,Arjun在请求中包含500个参数,这些参数有时会超过某些服务器的最大URL长度限制。可以通过使用-c选项指定一次发送的参数数量。
arjun -u https://api.example.com/endpoint -c 250
禁用重定向
arjun -u https://api.example.com/redirects_to_api2 --disable-redirects
从外部源收集参数
可以从CommonCrawl、Open Threat Exchange和WaybackMachine收集域(而不是子域)的参数名称,检查它们是否存在于目标上。
arjun https://api.example.com/endpoint --passive example.com
如果要使用目标URL中的域,请使用--passive -。它只适用于单个目标
使用自定义HTTP头
可以简单地从命令行添加自定义标头,分隔符\n如下:
arjun -u https://api.example.com/endpoint --headers "Accept-Language: en-US\nCookie: null"
使用不带任何参数的--headers选项将打开文本编辑器(默认为“nano”),您只需将HTTP标头粘贴到那里,然后按Ctrl+S即可保存。
注意:Arjun使用nano作为默认编辑器,可以通过调整/core/prompt.py来更改它。
3、项目地址
标签:endpoint,HTTP,arjun,Arjun,api,参数,https,com,example From: https://www.cnblogs.com/websec80/p/17864514.htmlGithub项目地址
https://github.com/s0md3v/Arjun