mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
Translated ['network-services-pentesting/pentesting-web/code-review-tool
This commit is contained in:
parent
bf9836cfba
commit
c704122905
1 changed files with 24 additions and 20 deletions
|
@ -1,8 +1,8 @@
|
||||||
# Revisione del codice sorgente / Strumenti SAST
|
# Revisione del codice sorgente / Strumenti SAST
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
Impara e pratica il 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">\
|
Impara e pratica il 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">\
|
||||||
Impara e pratica il 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)
|
Impara e pratica il 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>
|
||||||
|
|
||||||
|
@ -109,10 +109,10 @@ codeql resolve qlpacks #Get paths to QL packs
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
#### Quick Start - Preparare il database
|
#### Inizio rapido - Prepara il database
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
La prima cosa che devi fare è **preparare il database** (creare l'albero del codice) in modo che successivamente le query vengano eseguite su di esso.
|
La prima cosa che devi fare è **preparare il database** (creare l'albero del codice) in modo che in seguito le query vengano eseguite su di esso.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
* Puoi consentire a codeql di identificare automaticamente il linguaggio del repo e creare il database
|
* Puoi consentire a codeql di identificare automaticamente il linguaggio del repo e creare il database
|
||||||
|
@ -131,7 +131,7 @@ codeql database create /path/repo/codeql_db --source-root /path/repo
|
||||||
Questo **di solito attiverà un errore** che dice che è stata specificata (o rilevata automaticamente) più di una lingua. **Controlla le opzioni successive** per risolvere questo problema!
|
Questo **di solito attiverà un errore** che dice che è stata specificata (o rilevata automaticamente) più di una lingua. **Controlla le opzioni successive** per risolvere questo problema!
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
* Puoi farlo **manualmente indicando** il **repo** e la **lingua** ([elenco delle lingue](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))
|
* Puoi farlo **indicando manualmente** il **repo** e la **lingua** ([elenco delle lingue](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 il tuo repo utilizza **più di 1 linguaggio**, puoi anche creare **1 DB per linguaggio** indicando ciascun linguaggio.
|
* Se il tuo repo utilizza **più di 1 lingua**, puoi anche creare **1 DB per lingua** indicando ciascuna lingua.
|
||||||
|
|
||||||
{% 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 per **repo pubblici**.
|
Gratuito per **repo pubblici**.
|
||||||
|
|
||||||
|
@ -281,7 +281,10 @@ Gratuito per **repo pubblici**.
|
||||||
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 di sicurezza del codice statico (SAST) per applicazioni Node.js alimentato da [libsast](https://github.com/ajinabraham/libsast) e [semgrep](https://github.com/returntocorp/semgrep).
|
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Scanner di sicurezza del codice statico (SAST) per applicazioni Node.js alimentato da [libsast](https://github.com/ajinabraham/libsast) e [semgrep](https://github.com/returntocorp/semgrep).
|
||||||
|
@ -395,7 +399,7 @@ https://github.com/securego/gosec
|
||||||
1. Burp:
|
1. Burp:
|
||||||
* Spider e scopri contenuti
|
* Spider e scopri contenuti
|
||||||
* Sitemap > filtro
|
* Sitemap > filtro
|
||||||
* Sitemap > clic destro sul dominio > Strumenti di ingaggio > Trova script
|
* Sitemap > clic destro sul dominio > Strumenti di coinvolgimento > Trova script
|
||||||
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
|
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
|
||||||
* `waybackurls <domain> |grep -i "\.js" |sort -u`
|
* `waybackurls <domain> |grep -i "\.js" |sort -u`
|
||||||
|
|
||||||
|
@ -422,18 +426,18 @@ https://github.com/securego/gosec
|
||||||
* Riferimenti: [http://jsnice.org/](http://jsnice.org/) & [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice)
|
* Riferimenti: [http://jsnice.org/](http://jsnice.org/) & [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice)
|
||||||
* Suggerimenti:
|
* Suggerimenti:
|
||||||
* Se usi jsnice.org, clicca sul pulsante delle opzioni accanto al pulsante "Nicify JavaScript" e deseleziona "Infer types" per ridurre il disordine nel codice con commenti.
|
* Se usi jsnice.org, clicca sul pulsante delle opzioni accanto al pulsante "Nicify JavaScript" e deseleziona "Infer types" per ridurre il disordine nel codice con commenti.
|
||||||
* Assicurati di non lasciare righe vuote prima dello script, poiché potrebbe influenzare il processo di deobfuscation e dare risultati inaccurati.
|
* Assicurati di non lasciare righe vuote prima dello script, poiché potrebbe influenzare il processo di deobfuscation e dare risultati imprecisi.
|
||||||
4. Per alcune alternative più moderne a JSNice, potresti voler guardare i seguenti:
|
3. Per alcune alternative più moderne a JSNice, potresti voler guardare i seguenti:
|
||||||
|
|
||||||
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
|
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
|
||||||
* > Decompilatore Javascript, strumento di unpacking e unminify
|
* > Wakaru è il decompilatore Javascript per il frontend moderno. Riporta il codice originale da una sorgente impacchettata e transpiled.
|
||||||
> Wakaru è il decompilatore Javascript per il frontend moderno. Riporta il codice originale da una sorgente impacchettata e transpiled.
|
|
||||||
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
|
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
|
||||||
* > Deobfuscate obfuscator.io, unminify e unpack javascript impacchettato
|
* > Deobfuscate obfuscator.io, unminify e unpack javascript impacchettato
|
||||||
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
|
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
|
||||||
* > Un-minify codice Javascript usando ChatGPT
|
* > Un-minify il codice Javascript usando ChatGPT Questo strumento utilizza modelli di linguaggio di grandi dimensioni (come ChatGPT & llama2) e altri strumenti per un-minify il codice Javascript. Nota che i LLM non eseguono alcuna modifica strutturale – forniscono solo suggerimenti per rinominare variabili e funzioni. Il lavoro pesante è svolto da Babel a livello di AST per garantire che il codice rimanga equivalente 1-1.
|
||||||
> Questo strumento utilizza modelli di linguaggio di grandi dimensioni (come ChatGPT & llama2) e altri strumenti per un-minify codice Javascript. Nota che i LLM non eseguono alcuna modifica strutturale – forniscono solo suggerimenti per rinominare variabili e funzioni. Il lavoro pesante è svolto da Babel a livello di AST per garantire che il codice rimanga 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)
|
||||||
* > Utilizzando LLM per invertire la minificazione dei nomi delle variabili JavaScript
|
* > Utilizzando i LLM per invertire la minificazione dei nomi delle variabili JavaScript
|
||||||
|
|
||||||
3. Usa `console.log()`;
|
3. Usa `console.log()`;
|
||||||
* Trova il valore di ritorno alla fine e cambialo in `console.log(<packerReturnVariable>);` in modo che il js deobfuscato venga stampato invece di essere eseguito.
|
* Trova il valore di ritorno alla fine e cambialo in `console.log(<packerReturnVariable>);` in modo che il js deobfuscato venga stampato invece di essere eseguito.
|
||||||
* Poi, incolla il js modificato (e ancora obfuscato) in [https://jsconsole.com/](https://jsconsole.com/) per vedere il js deobfuscato registrato nella console.
|
* Poi, incolla il js modificato (e ancora obfuscato) in [https://jsconsole.com/](https://jsconsole.com/) per vedere il js deobfuscato registrato nella console.
|
||||||
|
@ -442,10 +446,10 @@ https://github.com/securego/gosec
|
||||||
|
|
||||||
#### References
|
#### References
|
||||||
|
|
||||||
* [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)
|
* [Deobfuscating / Unminifying Obfuscated Web App Code](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)
|
* [Reverse Engineering Webpack Apps](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)
|
||||||
|
@ -462,8 +466,8 @@ 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" %}
|
||||||
Impara e pratica AWS Hacking:<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">\
|
Impara e pratica AWS Hacking:<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">\
|
||||||
Impara e pratica GCP Hacking: <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)
|
Impara e pratica GCP Hacking: <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>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue