
Packer Fuzzer é um scanner rápido e eficiente para detecção de segurança de sites construídos por empacotadores de módulos JavaScript como Webpack.
Devido à disseminação ou utilização das capacidades de detecção fornecidas pela ferramenta Packer Fuzzer (doravante referida como "esta ferramenta"), quaisquer consequências ou perdas diretas ou indiretas são de responsabilidade exclusiva do usuário. A equipe de desenvolvimento do Packer Fuzzer (doravante referida como "esta equipe") não assume qualquer responsabilidade por isso.
Esta ferramenta gerará automaticamente um relatório de resultados de varredura com base nos resultados do usuário. O conteúdo deste relatório e outros derivados não representam a posição ou opinião desta equipe.
Ao usar esta ferramenta, siga as leis e regulamentos relevantes do país onde o usuário e o sistema alvo estão localizados. Testes não autorizados não são permitidos. Se ocorrerem violações legais, reservamo-nos o direito de buscar responsabilidade legal e cooperar plenamente com as autoridades competentes nas investigações.
Com a popularidade dos empacotadores front-end WEB, você já encontrou cada vez mais sites baseados em Webpack bundler durante seus testes de penetração ou serviços de segurança? Esse tipo de empacotador agrupa todas as APIs e parâmetros de API do site para chamadas centralizadas pela web, o que facilita a rápida descoberta das funcionalidades e da lista de APIs do site. No entanto, esses empacotadores geralmente geram uma quantidade enorme de arquivos JS e uma quantidade extremamente grande de código JS total (dezenas de milhares de linhas), o que torna o teste manual muito inconveniente. Foi assim que o software Packer Fuzzer surgiu.
Esta ferramenta suporta a extração automática e difusa das APIs correspondentes do site alvo e dos parâmetros das APIs, além de realizar uma detecção rápida e eficiente para sete tipos de vulnerabilidades: Acesso não autorizado, Exposição de informações sensíveis, CORS, Injeção SQL, Escalada horizontal de privilégios, Senhas fracas e Upload arbitrário de arquivos. Após a varredura, a ferramenta também gera automaticamente um relatório de varredura. Você pode escolher a versão HTML para análise, bem como as versões mais formais em doc, pdf e txt.
E você não precisa se preocupar com problemas de idioma devido à internacionalização. A ferramenta vem com pacotes de idiomas para cinco idiomas principais (incluindo modelos de relatório): Chinês Simplificado, Francês, Espanhol, Inglês e Japonês (ordenados por precisão de tradução), traduzidos por nossa equipe muito não profissional.
Nota: A primeira versão da ferramenta foi otimizada apenas para regras do empacotador Webpack. Regras para outros empacotadores estão por vir.
Esta ferramenta é desenvolvida em Python3. Antes de executá-la, certifique-se de ter o software Python3.X e pip3 instalados. Se não tiver o ambiente, você pode instalá-lo seguindo este guia: https://www.runoob.com/python3/python3-install.html
Usuários MacOS podem instalar rapidamente com o comando:
brew install python3 # instalará pip3 automaticamente
Usuários Ubuntu podem instalar rapidamente com:
sudo apt-get install -y python3 && sudo apt install -y python3-pip
Usuários CentOS podem instalar rapidamente com:
sudo yum -y install epel-release && sudo yum install python3 && yum install -y python3-setuptools && easy_install pip
Esta ferramenta executará código NodeJS nativo através do node_vm2. Portanto, recomendamos a instalação do ambiente NodeJS (não recomendamos outros ambientes de execução JS, pois podem causar falhas de análise). Se não tiver o ambiente, instale seguindo este guia: https://www.runoob.com/nodejs/nodejs-install-setup.html
Usuários MacOS podem instalar rapidamente com:
brew install node
Usuários Ubuntu podem instalar rapidamente com:
sudo apt-get install nodejs && sudo apt-get install npm
Usuários CentOS podem instalar rapidamente com:
sudo yum -y install nodejs
Use o seguinte comando para instalar todas as bibliotecas Python necessárias de uma vez:
pip3 install -r requirements.txt
Você pode executar a ferramenta com o comando python3 PackerFuzzer.py [options]. Os options são descritos abaixo:
-h (--help)
Comando de ajuda, não requer argumentos adicionais. Exibe todos os parâmetros suportados e suas descrições;
-u (--url)
Caminho da URL do site a ser varrido, obrigatório. Exemplo: -u https://demo.poc-sir.com;
-c (--cookie)
Conteúdo de cookies adicionais, opcional. Se preenchido, será transmitido globalmente. Exemplo: -c "POC=666;SIR=233";
-d (--head)
Cabeçalho HTTP adicional, opcional. Se preenchido, será transmitido globalmente. O padrão é Cache-Control:no-cache. Exemplo: -d "Token:3VHJ32HF0";
-l (--lang)
Opção de idioma. Quando vazio, seleciona automaticamente o idioma do sistema. Se não houver pacote de idiomas correspondente, muda para inglês. Pacotes disponíveis: Chinês Simplificado (zh), Francês (fr), Espanhol (es), Inglês (en), Japonês (ja). Exemplo: -l zh;
-t (--type)
Divide-se em versão básica e avançada. Quando vazio, usa a versão básica por padrão. A versão avançada reescaneia todas as APIs e extrai difusamente os parâmetros correspondentes, detectando: Injeção SQL, Escalada horizontal de privilégios, Senhas fracas, Upload arbitrário de arquivos. Use a opção adv para entrar na versão avançada. Exemplo: -t adv;
-p (--proxy)
Proxy global, opcional. Se preenchido, usa IP proxy globalmente. Exemplo: -p https://hack.cool:8080;
-j (--js)
Arquivos JS adicionais, opcional. Quando você acha que há outros arquivos JS que a ferramenta deve analisar, use esta opção. Exemplo: -j https://demo.poc-sir.com/js/index.js,https://demo.poc-sir.com/js/vue.js;
-b (--base)
Especifica a parte intermediária da API (por exemplo, para uma API como https://demo.poc-sir.com/v1_api/login, o basedir é v1_api), opcional. Quando você acha que o basedir extraído automaticamente está incorreto, use esta opção. Exemplo: -b v1_api;
-r (--report)
Especifica o formato do relatório gerado. Quando vazio, gera relatórios nos formatos HTML e DOC por padrão. Formatos disponíveis: html, doc, pdf, txt. Exemplo: -r html,pdf;
-e (--ext)