websec80

  博客园  :: 首页  :: 新随笔  :: 联系 ::  :: 管理

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、项目地址

Github项目地址https://github.com/s0md3v/Arjun
posted on 2023-11-29 12:00  websec80  阅读(91)  评论(0编辑  收藏  举报