每日分享好工具
一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具
Webpack打包器
为代表的网站?这类打包器会将整站的API和API参数打包在一起供Web集中调用,这也便于我们快速发现网站的功能和API清单,但往往这些打包器所生成的JS文件数量异常之多并且总JS代码量异常庞大(多达上万行),这给我们的手工测试带来了极大的不便,Packer Fuzzer软件应运而生。安装:
Python3.X
软件及pip3
软件。若您未安装相关环境,可通过如下指引安装:https://www.runoob.com/python3/python3-install.htmlbrew install python3 #会自动安装pip3
sudo apt-get install -y python3 && sudo apt install -y python3-pip
sudo yum -y install epel-release && sudo yum install python3 && yum install -y python3-setuptools && easy_install pip
node_vm2
运行原生NodeJS
代码,故我们推荐您安装NodeJS
环境(不推荐其他JS运行环境,可能会导致解析失败)。若您未安装相关环境,可通过如下指引安装:https://www.runoob.com/nodejs/nodejs-install-setup.html。brew install node
sudo apt-get install nodejs && sudo apt-get install npm
sudo yum -y install nodejs
pip3 install -r requirements.txt
python3 PackerFuzzer.py [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。
-
当您遇到假卡死或者扫描器因为意外的错误而被中断时,您无需过于担心。您可以直接在tmp目录下找到对应缓存文件夹内的以
.db
结尾的Sqlite数据库文件,当您打开之后您可以看见对应项目的所有实时结果均保存在此数据库内,您可以直接通过缓存数据库分析当前的扫描结果; -
我们推荐您通过自定义
baseurl
的方式来提高API拼接成功率,减少发包次数。找寻baseurl
并不难,您只需要在对应目标站点中触发任何一个API并稍加观察缺失部分即可快速寻找到; -
我们不推荐您在较大、较复杂的站点中使用本工具的高级模式,因为在一些情况下高级模式会耗费异常大量的时间去不停地在后台做正则匹配,从而使本工具陷入假卡死的状态;
-
当您遇到A站点的API均在B站点时:您可以直接使用本工具扫描B站点,然后使用JS附件命令附加A站点的全部JS文件,这样本工具便可华丽的开始对B站点的测试;
-
当您遇到在Windows环境下无法创建、读取数据库时,您可以右键点击
使用管理员身份运行
。当您在Linux/Mac下时请也注意权限问题,推荐使用sudo
命令。
有需要的师傅可公众号后台发送“packer”即可获取资料包。希望对各位大佬有用,一起学习哈。
每日坚持分享好工具好资源,麻烦各位师傅文章底部给点个“再看”,感激不尽
欢迎关注 系统安全运维
本文始发于微信公众号(系统安全运维):Packer Fuzzer --一种快速高效的扫描器
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论