<summary><strong>Aprenda hacking em AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
Você também pode usar a [**extensão semgrep para VSCode**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) para obter os resultados dentro do VSCode.
A primeira coisa que você precisa fazer é **preparar o banco de dados** (criar a árvore de código) para que, posteriormente, as consultas sejam executadas sobre ele.
Isso **geralmente acionará um erro** informando que mais de um idioma foi especificado (ou detectado automaticamente). **Verifique as próximas opções** para corrigir isso!
* Você pode fazer isso **manualmente indicando** o **repositório** e o **idioma** ([lista de idiomas](https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create))
* Você também pode permitir que o `codeql`**identifique todos os idiomas** por você e crie um DB por idioma. Você precisa fornecer um **GITHUB\_TOKEN**.
Você pode visualizar os resultados em [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) ou usando a extensão do VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
Você também pode usar a [**extensão do VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) para obter os resultados dentro do VSCode. Ainda será necessário criar um banco de dados manualmente, mas depois você pode selecionar quaisquer arquivos e clicar em `Clique com o botão direito` -> `CodeQL: Executar Consultas nos Arquivos Selecionados`
Você também pode usar a [**extensão snyk VSCode**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) para obter resultados dentro do VSCode.
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Scanner de segurança estático (SAST) para aplicações Node.js alimentado por [libsast](https://github.com/ajinabraham/libsast) e [semgrep](https://github.com/returntocorp/semgrep).
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** O objetivo do Retire.js é ajudar você a detectar o uso de versões de bibliotecas JS com vulnerabilidades conhecidas.
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** É uma ferramenta para identificar má configurações e anti-padrões de segurança em aplicações baseadas em Electron.
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit é uma ferramenta projetada para encontrar problemas comuns de segurança no código Python. Para isso, o Bandit processa cada arquivo, constrói uma AST a partir dele e executa plugins apropriados contra os nós da AST. Uma vez que o Bandit termina de escanear todos os arquivos, ele gera um relatório.
* [**safety**](https://github.com/pyupio/safety): Safety verifica as dependências Python para vulnerabilidades de segurança conhecidas e sugere as devidas correções para as vulnerabilidades detectadas. Safety pode ser executado em máquinas de desenvolvedores, em pipelines CI/CD e em sistemas de produção.
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) e [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
* Se estiver usando jsnice.org, clique no botão de opções ao lado do botão "Nicify JavaScript" e desmarque "Infer types" para reduzir a poluição do código com comentários.
* Garanta que você não deixe linhas vazias antes do script, pois isso pode afetar o processo de desofuscação e gerar resultados imprecisos.
* Encontre o valor de retorno no final e mude para `console.log(<variávelDeRetornoDoPacker>);` para que o js desofuscado seja impresso em vez de ser executado.
* Depois, cole o js modificado (e ainda ofuscado) em https://jsconsole.com/ para ver o js desofuscado registrado no console.
* Finalmente, cole a saída desofuscada em https://prettier.io/playground/ para embelezá-la para análise.
* **Nota**: Se você ainda estiver vendo js empacotado (mas diferente), pode ser que esteja empacotado recursivamente. Repita o processo.
* InnerHTML() - Se você encontrou isso, significa que há uma chance potencial de XSS se não houver sanitização adequada. Mesmo que seu payload seja sanitizado, não se preocupe. Rastreie o código para descobrir onde a sanitização ocorre. Estude-a e tente contornar a sanitização.
* Postmessage() - Se você leu meu post anterior (https://medium.com/techiepedia/what-are-sop-cors-and-ways-to-exploit-it-62a5e02100dc), notará que Postmessage() pode levar a um problema potencial de CORS. Se o segundo parâmetro da função for definido como \*, você é o sortudo. Confira meu post anterior para entender mais sobre o mecanismo por trás.
* String.prototype.search() - Esta função parece normal. Por que seria uma função perigosa? Bem, é porque alguns desenvolvedores a usaram para encontrar a ocorrência de uma string dentro de outra string. No entanto, “.” é tratado como coringa nesta função. Então, se esta função for usada como verificação de sanitização, você pode simplesmente contorná-la inserindo “.”. Confira o relatório de hackerone de Filedescryptor: https://hackerone.com/reports/129873
* Endpoints & parâmetros
* Use [LinkFinder](https://github.com/GerbenJavado/LinkFinder) & [JS Miner](https://github.com/PortSwigger/js-miner).
* Bibliotecas & dependências vulneráveis
* Use [Retire.js](https://retirejs.github.io/retire.js/) e [NPM](https://snyk.io/advisor/) (role para baixo até a seção de segurança > link todas as versões).
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga** me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas dicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).