0x01webpack是啥

随着WEB前端打包工具的流行,您在日常渗透测试、安全服务中是否遇到越来越多以Webpack打包器为代表的网站?这类打包器会将整站的API和API参数打包在一起供Web集中调用,这也便于我们快速发现网站的功能和API清单,但往往这些打包器所生成的JS文件数量异常之多并且总JS代码量异常庞大(多达上万行),这给我们的手工测试带来了极大的不便。
如下图以知识星球为例,查看源码看到很多很长的js
image.png

F12也可以看到image.png
这些js源码中一般含有很多接口路径
image.png

0x02 渗透思路

使用Packer Fuzzer将js里信息提取,同时检测安全问题

https://github.com/rtcatc/Packer-Fuzzer

1、安装

直接下载安装就好了,可能会报错,如下图ModuleNotFoundError: No module named 'execjs'
image.png
pip安装'execjs'也报错
image.png
解决方法如下
pip install PyExecJS

2、使用

参数如下

  1. Options:
  2. -h, --help show this help message and exit
  3. -u URL, --url=URL Please Enter the Target Site
  4. -c COOKIE, --cookie=COOKIE
  5. Please Enter the Site Cookies
  6. -d HEAD, --head=HEAD Please Enter the extra HTTP head
  7. -l LANGUAGE, --lang=LANGUAGE
  8. Please Select Language
  9. -t TYPE, --type=TYPE Please Select Scan Mode
  10. -p PROXY, --proxy=PROXY
  11. Please Enter your own Proxy Address
  12. -j JS, --js=JS Extra JS Files
  13. -b BASEURL, --base=BASEURL
  14. Please Enter the baseurl
  15. -r REPORT, --report=REPORT
  16. Choose your report's type
  17. -e EXT, --ext=EXT Enable Extensions
  18. -f SSL_FLAG, --flag=SSL_FLAG
  19. SSL SEC FLAG
  20. -s SILENT, --silent=SILENT
  21. Silent Mode (Custom Report Name)

主要是-b-t参数

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

知识星球没跑出来,可能wepact规则没匹配到,尝试其他网站,试试腾讯云
https://cloud.tencent.com/developer/article/1730835
image.png
查看生成的报告,可以提取出部分api接口
image.png