Packer-Fuzzer的使用

目录

一、前言

二、工具下载

三、安装环境

 四、工具利用


一、前言

在平常渗透测试时经常会遇见使用Webpack打包的网站,打包器会将整站的API和API参数打包在一起供Web集中调用,这也便于我们快速发现网站的功能和API清单,但往往这些打包器所生成的JS文件数量异常之多并且总JS代码量异常庞大(多达上万行),这给我们的手工测试带来了极大的不便,Packer Fuzzer软件应运而生。

二、工具下载

下载链接:https://github.com/rtcatc/Packer-Fuzzer

三、安装环境

1、本工具使用Python3语言开发,在运行本工具之前请确保您装有`Python3.X`软件及`pip3`软件。若您未安装相关环境,可通过如下指引安装:

https://www.runoob.com/python3/python3-install.html

2、本工具将会通过`node_vm2`运行原生`NodeJS`代码,故我们推荐您安装`NodeJS`环境(不推荐其他JS运行环境,可能会导致解析失败)。若您未安装相关环境,可通过如下指引安装:

https://www.runoob.com/nodejs/nodejs-install-setup.html

nodejs是终端运行js文件需要用到的命令和环境

没有安装nodejs环境或者没有配置环境变量时利用"node"命令会报错,如下图所示:

安装nodejs步骤

① node官网下载安装包

官网地址:Node.js

② 下载完成后一直下一步直接安装

③ 安装完成后会自动配置好环境变量

直接打开cmd终端,输入"node -v",即可查看nodejs的版本信息。

④ nodejs终端的使用

直接CMD终端中输入 node + ‘ JS文件名 ’ 即可。

3、请使用如下命令一键安装本工具所需要的Python运行库:

pip3 install -r requirements.txt

 四、工具利用

## 参数介绍

您可以使用`python3 PackerFuzzer.py [options]`命令来运行本工具,`options`内容表述如下:

- -h(--help)

  帮助命令,无需附加参数,查看本工具支持的全部参数及其对应简介;

- -u(--url)

  要扫描的网站网址路径,为必填选项,例如:`-u https://demo.poc-sir.com`;

- -c(--cookie)

  附加cookies内容,可为空,若填写则将全局传入,例如:`-c "POC=666;SIR=233"`;

- -d(--head)

  附加HTTP头部内容,可为空,若填写则将全局传入,默认为`Cache-Control:no-cache`,例如:`-d "Token:3VHJ32HF0"`;

- -l(--lang)

  语言选项,当为空时自动选择系统对应语言选项,若无对应语言包则自动切换至英文界面。可供选择的语言包有:简体中文(zh)、法语(fr)、西班牙语(es)、英语(en)、日语(ja),例如:`-l zh`;

- -t(--type)

  分为基础版和高级版,当为空时默认使用基础版。高级版将会对所有API进行重新扫描并模糊提取API对应的参数,并进行:SQL注入漏洞、水平越权漏洞、弱口令漏洞、任意文件上传漏洞的检测。可使用`adv`选项进入高级版,例如:`-t adv`;

- -p(--proxy)

  全局代理,可为空,若填写则全局使用代理IP,例如:`-p https://hack.cool:8080`;

- -j(--js)

  附加JS文件,可为空,当您认为还有其他JS文件需要本工具分析时,可使用此选项,例如:`-j https://demo.poc-sir.com/js/index.js,https://demo.poc-sir.com/js/vue.js`;

- -b(--base)

  指定API中间部分(例如某API为:https://demo.poc-sir.com/v1_api/login 时,则其basedir为:v1_api),可为空,当您认为本工具自动提取的basedir不准确时,可使用此选项,例如:`-b v1_api`;

- -r(--report)

  指定生成的报告格式,当为空时默认生成HTML和DOC格式的报告。可供选择的报告格式有:html、doc、pdf、txt,例如:`-r html,pdf`;

- -e(--ext)

  是否开启扩展插件选项,本工具支持用户自我编写插件并存入`ext`目录(如何编写请参考对应目录下`demo.py`文件)。默认为关闭状态,当用户使用`on`命令开启时,本工具将会自动执行对应目录下的插件,例如:`-e on`;

- -f(--flag)

  SSL连接安全选项,当为空时默认关闭状态,在此状态下将会阻止一切不安全的连接。若您希望忽略SSL安全状态,您可使用`1`命令开启,将会忽略一切证书错误,例如:`-f 1`;

- -s(--silent)

  静默选项,一旦开启则一切询问YES或NO的操作都将自动设置为YES,并且参数后的内容便是本次扫描报告的名称(自定义报告名),可用于无人值守、批量操作、插件调用等模式,例如:`-s Scan_Task_777`。

- --st(--sendtype)

  请求方式选项,目前本选项支持POST和GET参数,一旦开启则将会使用对应的请求方式扫描所有的API,若不开启将会通过HTTP状态码来进行智能请求。

- --ct(--contenttype)

  Content-Type选项,可通过此选项自定义扫描时的HTTP请求头中的Content-Type参数内容,若不开启将会通过HTTP状态码来进行智能请求。

- --pd(--postdata)

  POST内容选项,可通过此选项自定义扫描时的POST请求内容(所有的扫描都将会使用此内容,仅对POST场景有效),若不开启将会通过HTTP状态码来进行智能请求。

- --ah(--apihost)

  Api域名选项,可通过此选项自定义扫描时所有的API请求域名,例如:api部分(从JS中提取到的API路径)为`/v1/info`,扫描的url(-u --url参数传入内容,扫描的网页)为`http://exp.com/`,当apihost参数传入`https://pocsir.com:777/`则此时的API为`https://pocsir.com:777/v1/info`而不是`http://exp.com/v1/info`,用于api与前端不同域名或服务器等场景。

- --fe(--fileext)

  Api扩展名选项,可通过此选项对所有API都添加特定的扩展名,以便应对在提取API时出现扩展名提取缺失的情况,例如:当提取到的API为`https://pocsir.com:777/v1/info`时,传入`--fe .json`则工具将会自动将API转化成`https://pocsir.com:777/v1/info.json`进行扫描及检测。

示例:

python3 PackerFuzzer.py -u https://xxx.xxx.xxx.xxx/

如图所示运行报错提示缺少模块execjs,运行下列命令安装execjs。

 pip3 install pyExecjs

重新执行运行命令,成功运行。 

扫描完成的结果会保存到/tmp目录下。 

 

  • 24
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
你可以使用Packer来创建一个基于Ubuntu的机器映像。通过定义一个Packer模板,你可以指定要使用的操作系统、软件包和配置。以下是一个示例的Packer模板,用于创建一个Ubuntu 20.04的机器映像: ```json { "builders": [ { "type": "qemu", "accelerator": "kvm", "iso_url": "https://releases.ubuntu.com/20.04/ubuntu-20.04.3-live-server-amd64.iso", "iso_checksum": "sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "iso_checksum_type": "sha256", "boot_wait": "5s", "ssh_username": "ubuntu", "ssh_password": "ubuntu", "ssh_port": 22, "ssh_wait_timeout": "10m", "format": "qcow2", "output_directory": "output-qemu", "disk_size": 10000 } ], "provisioners": [ { "type": "shell", "inline": [ "echo 'provisioning script'" ] } ] } ``` 在这个示例中,我们使用qemu builder来创建一个基于QEMU虚拟化的机器映像。我们指定了Ubuntu 20.04的ISO镜像地址和校验和,以及SSH连接所需的用户名和密码。在`provisioners`部分,你可以添加一些自定义的脚本或命令来进行进一步的配置。 请注意替换`iso_url`中的URL和`iso_checksum`中的校验和为你所需的Ubuntu版本的实际值。 完成配置后,你可以运行以下命令来生成机器映像: ``` $ packer build ubuntu.json ``` 这将启动Packer创建一个基于Ubuntu的机器映像。生成的机器映像将保存在`output-qemu`目录下。 这只是一个简单的示例,你可以根据自己的需求进行更复杂的配置和定制。更多关于Packer的信息可以在Packer官方文档中找到。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值