mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 05:33:33 +00:00
Translated ['network-services-pentesting/pentesting-web/code-review-tool
This commit is contained in:
parent
3cbe6e3a08
commit
a2ee2592ef
1 changed files with 33 additions and 29 deletions
|
@ -1,8 +1,8 @@
|
||||||
# Revisão de Código Fonte / Ferramentas SAST
|
# Revisão de Código Fonte / Ferramentas SAST
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Aprenda e pratique Hacking AWS:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Aprenda e pratique Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data
|
||||||
|
|
||||||
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
|
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
@ -20,7 +20,7 @@ Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data
|
||||||
* [**https://owasp.org/www-community/Source\_Code\_Analysis\_Tools**](https://owasp.org/www-community/Source\_Code\_Analysis\_Tools)
|
* [**https://owasp.org/www-community/Source\_Code\_Analysis\_Tools**](https://owasp.org/www-community/Source\_Code\_Analysis\_Tools)
|
||||||
* [**https://github.com/analysis-tools-dev/static-analysis**](https://github.com/analysis-tools-dev/static-analysis)
|
* [**https://github.com/analysis-tools-dev/static-analysis**](https://github.com/analysis-tools-dev/static-analysis)
|
||||||
|
|
||||||
## Ferramentas Multi-Linguagem
|
## Ferramentas Multilíngue
|
||||||
|
|
||||||
### [Naxus - AI-Gents](https://www.naxusai.com/)
|
### [Naxus - AI-Gents](https://www.naxusai.com/)
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Há um **pacote gratuito para revisar PRs**.
|
||||||
|
|
||||||
### [**Semgrep**](https://github.com/returntocorp/semgrep)
|
### [**Semgrep**](https://github.com/returntocorp/semgrep)
|
||||||
|
|
||||||
É uma **ferramenta de Código Aberto**.
|
É uma **ferramenta de código aberto**.
|
||||||
|
|
||||||
#### Linguagens Suportadas
|
#### Linguagens Suportadas
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ semgrep scan --config auto
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
Você também pode usar a [**extensão semgrep para VSCode**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) para obter as descobertas dentro do VSCode.
|
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.
|
||||||
|
|
||||||
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
|
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ sonar-scanner \
|
||||||
|
|
||||||
### CodeQL
|
### CodeQL
|
||||||
|
|
||||||
Há uma **versão gratuita instalável**, mas de acordo com a licença, você pode **usar apenas a versão gratuita do codeQL em projetos de código aberto**.
|
Há uma **versão gratuita instalável**, mas de acordo com a licença, você pode **usar a versão gratuita do CodeQL apenas em projetos de código aberto**.
|
||||||
|
|
||||||
#### Instalar
|
#### Instalar
|
||||||
|
|
||||||
|
@ -128,10 +128,10 @@ codeql database create /path/repo/codeql_db --source-root /path/repo
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
Isso **geralmente acionará um erro** dizendo que mais de um idioma foi especificado (ou detectado automaticamente). **Verifique as próximas opções** para corrigir isso!
|
Isso **geralmente acionará um erro** dizendo que mais de uma linguagem foi especificada (ou detectada automaticamente). **Verifique as próximas opções** para corrigir isso!
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
* Você pode fazer isso **manualmente indicando** o **repo** 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ê pode fazer isso **manualmente indicando** o **repo** e a **linguagem** ([lista de linguagens](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))
|
||||||
|
|
||||||
{% code overflow="wrap" %}
|
{% code overflow="wrap" %}
|
||||||
```bash
|
```bash
|
||||||
|
@ -143,7 +143,7 @@ codeql database create /path/repo/codeql_db --language javascript --source-root
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
* Se o seu repositório estiver usando **mais de 1 linguagem**, você também pode criar **1 DB por linguagem** indicando cada linguagem.
|
* Se o seu repositório estiver usando **mais de 1 idioma**, você também pode criar **1 DB por idioma** indicando cada idioma.
|
||||||
|
|
||||||
{% code overflow="wrap" %}
|
{% code overflow="wrap" %}
|
||||||
```bash
|
```bash
|
||||||
|
@ -269,7 +269,7 @@ $ tar -xf insider_2.1.0_linux_x86_64.tar.gz
|
||||||
$ chmod +x insider
|
$ chmod +x insider
|
||||||
$ ./insider --tech javascript --target <projectfolder>
|
$ ./insider --tech javascript --target <projectfolder>
|
||||||
```
|
```
|
||||||
### [**DeepSource**](https://deepsource.com/pricing) 
|
### [**DeepSource**](https://deepsource.com/pricing)
|
||||||
|
|
||||||
Gratuito para **repositórios públicos**.
|
Gratuito para **repositórios públicos**.
|
||||||
|
|
||||||
|
@ -281,7 +281,10 @@ Gratuito para **repositórios públicos**.
|
||||||
brew install yarn
|
brew install yarn
|
||||||
# Run
|
# Run
|
||||||
cd /path/to/repo
|
cd /path/to/repo
|
||||||
yarn audit
|
yarn install
|
||||||
|
yarn audit # In lower versions
|
||||||
|
yarn npm audit # In 2+ versions
|
||||||
|
|
||||||
npm audit
|
npm audit
|
||||||
```
|
```
|
||||||
* **`pnpm`**
|
* **`pnpm`**
|
||||||
|
@ -290,6 +293,7 @@ npm audit
|
||||||
npm install -g pnpm
|
npm install -g pnpm
|
||||||
# Run
|
# Run
|
||||||
cd /path/to/repo
|
cd /path/to/repo
|
||||||
|
pnpm install
|
||||||
pnpm audit
|
pnpm audit
|
||||||
```
|
```
|
||||||
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Scanner de código 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).
|
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Scanner de código 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).
|
||||||
|
@ -321,7 +325,7 @@ pip3 install bandit
|
||||||
# Run
|
# Run
|
||||||
bandit -r <path to folder>
|
bandit -r <path to folder>
|
||||||
```
|
```
|
||||||
* [**safety**](https://github.com/pyupio/safety): O Safety verifica as dependências do Python em busca de vulnerabilidades de segurança conhecidas e sugere as remediações adequadas para as vulnerabilidades detectadas. O Safety pode ser executado em máquinas de desenvolvedores, em pipelines de CI/CD e em sistemas de produção.
|
* [**safety**](https://github.com/pyupio/safety): Safety verifica as dependências do Python em busca de vulnerabilidades de segurança conhecidas e sugere as remediações adequadas para as vulnerabilidades detectadas. Safety pode ser executado em máquinas de desenvolvedores, em pipelines de CI/CD e em sistemas de produção.
|
||||||
```bash
|
```bash
|
||||||
# Install
|
# Install
|
||||||
pip install safety
|
pip install safety
|
||||||
|
@ -397,7 +401,7 @@ https://github.com/securego/gosec
|
||||||
* Sitemap > filtro
|
* Sitemap > filtro
|
||||||
* Sitemap > clique com o botão direito no domínio > Ferramentas de engajamento > Encontrar scripts
|
* Sitemap > clique com o botão direito no domínio > Ferramentas de engajamento > Encontrar scripts
|
||||||
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
|
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
|
||||||
* `waybackurls <domain> |grep -i "\.js" |sort -u`
|
* `waybackurls <domínio> |grep -i "\.js" |sort -u`
|
||||||
|
|
||||||
### Análise Estática
|
### Análise Estática
|
||||||
|
|
||||||
|
@ -423,17 +427,17 @@ https://github.com/securego/gosec
|
||||||
* Dicas:
|
* Dicas:
|
||||||
* 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 desordem no código com comentários.
|
* 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 desordem no código com comentários.
|
||||||
* Certifique-se de não deixar linhas em branco antes do script, pois isso pode afetar o processo de deobfuscação e dar resultados imprecisos.
|
* Certifique-se de não deixar linhas em branco antes do script, pois isso pode afetar o processo de deobfuscação e dar resultados imprecisos.
|
||||||
4. Para algumas alternativas mais modernas ao JSNice, você pode querer olhar para as seguintes:
|
3. Para algumas alternativas mais modernas ao JSNice, você pode querer olhar para as seguintes:
|
||||||
|
|
||||||
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
|
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
|
||||||
* > Ferramenta de descompilação, desempacotamento e desminificação de Javascript
|
* > Ferramenta de descompilação, desempacotamento e desminimização de Javascript Wakaru é o descompilador de Javascript para frontend moderno. Ele recupera o código original de uma fonte empacotada e transpilada.
|
||||||
> Wakaru é o descompilador de Javascript para frontend moderno. Ele traz de volta o código original de uma fonte empacotada e transpilada.
|
|
||||||
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
|
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
|
||||||
* > Deobfuscar obfuscator.io, desminificar e desempacotar javascript empacotado
|
* > Deobfuscar obfuscator.io, desminimizar e desempacotar javascript empacotado
|
||||||
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
|
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
|
||||||
* > Desminificar código Javascript usando ChatGPT
|
* > Desminimizar código Javascript usando ChatGPT Esta ferramenta usa grandes modelos de linguagem (como ChatGPT e llama2) e outras ferramentas para desminimizar código Javascript. Observe que os LLMs não realizam alterações estruturais – eles apenas fornecem dicas para renomear variáveis e funções. O trabalho pesado é feito pelo Babel no nível AST para garantir que o código permaneça equivalente 1-1.
|
||||||
> Esta ferramenta usa grandes modelos de linguagem (como ChatGPT e llama2) e outras ferramentas para desminificar código Javascript. Note que LLMs não realizam alterações estruturais – eles apenas fornecem dicas para renomear variáveis e funções. O trabalho pesado é feito pelo Babel no nível AST para garantir que o código permaneça equivalente 1-1.
|
|
||||||
* [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html)
|
* [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html)
|
||||||
* > Usando LLMs para reverter a minificação de nomes de variáveis JavaScript
|
* > Usando LLMs para reverter a minimização de nomes de variáveis JavaScript
|
||||||
|
|
||||||
3. Use `console.log()`;
|
3. Use `console.log()`;
|
||||||
* Encontre o valor de retorno no final e mude para `console.log(<packerReturnVariable>);` para que o js deobfuscado seja impresso em vez de ser executado.
|
* Encontre o valor de retorno no final e mude para `console.log(<packerReturnVariable>);` para que o js deobfuscado seja impresso em vez de ser executado.
|
||||||
* Em seguida, cole o js modificado (e ainda ofuscado) em [https://jsconsole.com/](https://jsconsole.com/) para ver o js deobfuscado registrado no console.
|
* Em seguida, cole o js modificado (e ainda ofuscado) em [https://jsconsole.com/](https://jsconsole.com/) para ver o js deobfuscado registrado no console.
|
||||||
|
@ -442,12 +446,12 @@ https://github.com/securego/gosec
|
||||||
|
|
||||||
#### Referências
|
#### Referências
|
||||||
|
|
||||||
* [YouTube: DAST - Javascript Dynamic Analysis](https://www.youtube.com/watch?v=_v8r_t4v6hQ)
|
* [YouTube: DAST - Javascript Dynamic Analysis](https://www.youtube.com/watch?v=\_v8r\_t4v6hQ)
|
||||||
* [https://blog.nvisium.com/angular-for-pentesters-part-1](https://web.archive.org/web/20221226054137/https://blog.nvisium.com/angular-for-pentesters-part-1)
|
* [https://blog.nvisium.com/angular-for-pentesters-part-1](https://web.archive.org/web/20221226054137/https://blog.nvisium.com/angular-for-pentesters-part-1)
|
||||||
* [https://blog.nvisium.com/angular-for-pentesters-part-2](https://web.archive.org/web/20230204012439/https://blog.nvisium.com/angular-for-pentesters-part-2)
|
* [https://blog.nvisium.com/angular-for-pentesters-part-2](https://web.archive.org/web/20230204012439/https://blog.nvisium.com/angular-for-pentesters-part-2)
|
||||||
* [devalias](https://twitter.com/_devalias)'s [GitHub Gists](https://gist.github.com/0xdevalias):
|
* [devalias](https://twitter.com/\_devalias)'s [GitHub Gists](https://gist.github.com/0xdevalias):
|
||||||
* [Deobfuscating / Unminifying Obfuscated Web App Code](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
|
* [Deobfuscando / Desminimizando Código de Aplicativos Web Ofuscados](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
|
||||||
* [Reverse Engineering Webpack Apps](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
|
* [Engenharia Reversa de Aplicativos Webpack](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
|
||||||
* [etc](https://gist.github.com/search?q=user:0xdevalias+javascript)
|
* [etc](https://gist.github.com/search?q=user:0xdevalias+javascript)
|
||||||
|
|
||||||
#### Ferramentas
|
#### Ferramentas
|
||||||
|
@ -462,15 +466,15 @@ https://github.com/securego/gosec
|
||||||
* [https://github.com/jshint/jshint/](https://github.com/jshint/jshint/)
|
* [https://github.com/jshint/jshint/](https://github.com/jshint/jshint/)
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
Aprenda e pratique Hacking AWS:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||||
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
Aprenda e pratique Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Support HackTricks</summary>
|
<summary>Support HackTricks</summary>
|
||||||
|
|
||||||
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
||||||
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
|
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
Loading…
Reference in a new issue