diff --git a/network-services-pentesting/pentesting-web/code-review-tools.md b/network-services-pentesting/pentesting-web/code-review-tools.md index c841ac73c..4e5092f22 100644 --- a/network-services-pentesting/pentesting-web/code-review-tools.md +++ b/network-services-pentesting/pentesting-web/code-review-tools.md @@ -1,8 +1,8 @@ # Revisione del codice sorgente / Strumenti SAST {% hint style="success" %} -Impara e pratica il hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Impara e pratica il hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Impara e pratica il hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Impara e pratica il hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -109,10 +109,10 @@ codeql resolve qlpacks #Get paths to QL packs ``` {% endcode %} -#### Quick Start - Preparare il database +#### Inizio rapido - Prepara il database {% 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 %} * 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! {% 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" %} ```bash @@ -143,7 +143,7 @@ codeql database create /path/repo/codeql_db --language javascript --source-root ``` {% 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" %} ```bash @@ -269,7 +269,7 @@ $ tar -xf insider_2.1.0_linux_x86_64.tar.gz $ chmod +x insider $ ./insider --tech javascript --target ``` -### [**DeepSource**](https://deepsource.com/pricing) +### [**DeepSource**](https://deepsource.com/pricing) Gratuito per **repo pubblici**. @@ -281,7 +281,10 @@ Gratuito per **repo pubblici**. brew install yarn # Run cd /path/to/repo -yarn audit +yarn install +yarn audit # In lower versions +yarn npm audit # In 2+ versions + npm audit ``` * **`pnpm`** @@ -290,6 +293,7 @@ npm audit npm install -g pnpm # Run cd /path/to/repo +pnpm install 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). @@ -395,7 +399,7 @@ https://github.com/securego/gosec 1. Burp: * Spider e scopri contenuti * 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): * `waybackurls |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) * 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. -* Assicurati di non lasciare righe vuote prima dello script, poiché potrebbe influenzare il processo di deobfuscation e dare risultati inaccurati. -4. Per alcune alternative più moderne a JSNice, potresti voler guardare i seguenti: +* Assicurati di non lasciare righe vuote prima dello script, poiché potrebbe influenzare il processo di deobfuscation e dare risultati imprecisi. +3. Per alcune alternative più moderne a JSNice, potresti voler guardare i seguenti: + * [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) * > Deobfuscate obfuscator.io, unminify e unpack javascript impacchettato * [https://github.com/jehna/humanify](https://github.com/jehna/humanify) -* > Un-minify codice Javascript usando ChatGPT -> 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. +* > 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. * [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()`; * Trova il valore di ritorno alla fine e cambialo in `console.log();` 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. @@ -442,10 +446,10 @@ https://github.com/securego/gosec #### 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-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) * [Reverse Engineering Webpack Apps](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps) * [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/) {% hint style="success" %} -Impara e pratica AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Impara e pratica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Impara e pratica AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Impara e pratica GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)