Translated ['network-services-pentesting/pentesting-web/code-review-tool

This commit is contained in:
Translator 2024-04-18 02:45:21 +00:00
parent 0abe7275d6
commit 76814595af
2 changed files with 83 additions and 146 deletions

View file

@ -801,6 +801,7 @@
* [FISSURE - The RF Framework](todo/radio-hacking/fissure-the-rf-framework.md)
* [Low-Power Wide Area Network](todo/radio-hacking/low-power-wide-area-network.md)
* [Pentesting BLE - Bluetooth Low Energy](todo/radio-hacking/pentesting-ble-bluetooth-low-energy.md)
* [Industrial Control Systems Hacking](todo/industrial-control-systems-hacking/README.md)
* [Burp Suite](todo/burp-suite.md)
* [Other Web Tricks](todo/other-web-tricks.md)
* [Interesting HTTP](todo/interesting-http.md)

View file

@ -1,43 +1,43 @@
# Revisione del codice sorgente / Strumenti SAST
# Strumenti di Revisione del Codice Sorgente / SAST
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
## Guida e elenchi di strumenti
## Guida e & Elenco degli strumenti
* [**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)
## Strumenti multi-linguaggio
## Strumenti Multi-Lingua
### [Naxus - AI-Gents](https://www.naxusai.com/)
C'è un **pacchetto gratuito per la revisione delle PR**.
C'è un **pacchetto gratuito per la revisione dei PR**.
### [**Semgrep**](https://github.com/returntocorp/semgrep)
È uno **strumento Open Source**.
#### Lingue supportate
#### Lingue Supportate
| Categoria | Lingue |
| Categoria | Lingue |
| ------------ | ----------------------------------------------------------------------------------------------------- |
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
| Beta | Kotlin · Rust |
| Sperimentale | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
#### Inizio rapido
#### Avvio Veloce
{% code overflow="wrap" %}
```bash
@ -50,11 +50,11 @@ semgrep scan --config auto
```
{% endcode %}
Puoi anche utilizzare l'[**estensione semgrep per VSCode**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) per ottenere i risultati all'interno di VSCode.
Puoi anche utilizzare l'[**estensione VSCode semgrep**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) per ottenere i risultati all'interno di VSCode.
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
Esiste una versione **gratuita** installabile.
C'è una **versione gratuita** installabile.
#### Avvio rapido
@ -80,7 +80,7 @@ sonar-scanner \
### CodeQL
Esiste una versione gratuita installabile, ma secondo la licenza puoi utilizzare solo la versione gratuita di CodeQL nei progetti Open Source.
C'è una **versione gratuita installabile** ma secondo la licenza puoi **utilizzare solo la versione gratuita di CodeQL nei progetti Open Source**.
#### Installazione
@ -108,13 +108,13 @@ codeql resolve qlpacks #Get paths to QL packs
```
{% endcode %}
#### Guida rapida - Preparare il database
#### Avvio rapido - Prepara il database
{% hint style="success" %}
La prima cosa da fare è **preparare il database** (creare l'albero del codice) in modo che successivamente le query possano essere eseguite su di esso.
{% endhint %}
* Puoi consentire a codeql di identificare automaticamente il linguaggio del repository e creare il database
* Puoi permettere a codeql di identificare automaticamente il linguaggio del repository e creare il database
{% code overflow="wrap" %}
```bash
@ -127,10 +127,10 @@ codeql database create /path/repo/codeql_db --source-root /path/repo
{% endcode %}
{% hint style="danger" %}
Questo **solitamente provoca un errore** che indica che è stata specificata più di una lingua (o rilevata automaticamente). **Controlla le opzioni successive** per risolvere questo problema!
Questo **di solito provoca un errore** dicendo che sono stati specificati più di un linguaggio (o rilevati automaticamente). **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 fare questo **indicando manualmente** il **repo** e il **linguaggio** ([elenco dei linguaggi](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
@ -142,7 +142,7 @@ codeql database create /path/repo/codeql_db --language javascript --source-root
```
{% endcode %}
* Se il tuo repository utilizza **più di un linguaggio**, puoi anche creare **1 DB per ogni linguaggio** indicando ciascun linguaggio.
* Se il tuo repository sta utilizzando **più di 1 linguaggio**, puoi anche creare **1 DB per ogni linguaggio** indicando ciascun linguaggio.
{% code overflow="wrap" %}
```bash
@ -156,7 +156,7 @@ codeql database create /path/repo/codeql_db --source-root /path/to/repo --db-clu
```
{% endcode %}
* Puoi anche permettere a `codeql` di **identificare tutti i linguaggi** per te e creare un database per ogni linguaggio. Devi fornire un **GITHUB\_TOKEN**.
* È anche possibile consentire a `codeql` di **identificare tutti i linguaggi** per te e creare un database per ogni linguaggio. È necessario fornire un **GITHUB\_TOKEN**.
{% code overflow="wrap" %}
```bash
@ -170,13 +170,13 @@ codeql database create /tmp/codeql_db --db-cluster --source-root /path/repo
```
{% endcode %}
#### Guida rapida - Analizza il codice
#### Avvio rapido - Analizza il codice
{% hint style="success" %}
Ora è finalmente il momento di analizzare il codice
{% endhint %}
Ricorda che se hai utilizzato diversi linguaggi, **verrà creato un DB per ogni linguaggio** nel percorso specificato.
Ricorda che se hai utilizzato diversi linguaggi, **un DB per linguaggio** sarà stato creato nel percorso specificato.
{% code overflow="wrap" %}
```bash
@ -223,7 +223,7 @@ echo $FINAL_MSG
Puoi visualizzare le scoperte su [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) o utilizzando l'estensione di VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
Puoi anche utilizzare l'estensione di [**VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) per ottenere le scoperte all'interno di VSCode. Dovrai comunque creare manualmente un database, ma successivamente puoi selezionare qualsiasi file e fare clic su `Right Click` -> `CodeQL: Run Queries in Selected Files`
Puoi anche utilizzare l'[**estensione di VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) per ottenere le scoperte all'interno di VSCode. Dovrai comunque creare manualmente un database, ma poi potrai selezionare qualsiasi file e fare clic su `Fare clic destro` -> `CodeQL: Esegui query nei file selezionati`
### [**Snyk**](https://snyk.io/product/snyk-code/)
@ -250,7 +250,7 @@ snyk container test [image]
# Test for IaC vulns
snyk iac test
```
Puoi anche utilizzare l'[**estensione Snyk per VSCode**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) per ottenere risultati all'interno di VSCode.
Puoi anche utilizzare l'[**estensione VSCode di snyk**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) per ottenere risultati all'interno di VSCode.
### [Insider](https://github.com/insidersec/insider)
@ -291,7 +291,7 @@ npm install -g pnpm
cd /path/to/repo
pnpm audit
```
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Scanner statico di codice di sicurezza (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 statico di codice di sicurezza (SAST) per le applicazioni Node.js alimentato da [libsast](https://github.com/ajinabraham/libsast) e [semgrep](https://github.com/returntocorp/semgrep).
```bash
# Install & run
docker run -it -p 9090:9090 opensecurity/nodejsscan:latest
@ -308,11 +308,11 @@ retire --colors
```
## Electron
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** È uno strumento per identificare errori di configurazione e anti-pattern di sicurezza nelle applicazioni basate su Electron.
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** È uno strumento per identificare configurazioni errate e anti-pattern di sicurezza nelle applicazioni basate su Electron.
## Python
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit è uno strumento progettato per trovare problemi di sicurezza comuni nel codice Python. Per fare ciò, Bandit elabora ogni file, costruisce un AST da esso ed esegue i plugin appropriati sui nodi AST. Una volta che Bandit ha finito di scansionare tutti i file, genera un report.
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit è uno strumento progettato per trovare problemi di sicurezza comuni nel codice Python. Per fare ciò, Bandit elabora ciascun file, costruisce un AST da esso e esegue i plugin appropriati contro i nodi AST. Una volta completata la scansione di tutti i file, Bandit genera un report.
```bash
# Install
pip3 install bandit
@ -320,7 +320,7 @@ pip3 install bandit
# Run
bandit -r <path to folder>
```
* [**safety**](https://github.com/pyupio/safety): Safety controlla le dipendenze Python per vulnerabilità di sicurezza note e suggerisce le opportune soluzioni per le vulnerabilità rilevate. Safety può essere eseguito su macchine degli sviluppatori, nelle pipeline CI/CD e nei sistemi di produzione.
* [**safety**](https://github.com/pyupio/safety): Safety controlla le dipendenze Python per le vulnerabilità di sicurezza conosciute e suggerisce le correzioni adeguate per le vulnerabilità rilevate. Safety può essere eseguito sulle macchine degli sviluppatori, nelle pipeline CI/CD e sui sistemi di produzione.
```bash
# Install
pip install safety
@ -338,24 +338,6 @@ https://github.com/0xd4d/dnSpy
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe test.cs
```
## RUST
Rust is a systems programming language that focuses on safety, speed, and concurrency. It is designed to be memory safe and thread safe, making it a good choice for building reliable and efficient software. Rust's syntax is similar to C++, but it includes modern features such as pattern matching, type inference, and ownership semantics.
### Code Review Tools
When performing a code review in Rust, there are several tools that can help identify potential vulnerabilities and improve code quality. Here are some commonly used code review tools for Rust:
- **Clippy**: Clippy is a linter for Rust that provides helpful suggestions and warnings to improve code quality. It can catch common mistakes, enforce best practices, and identify potential bugs.
- **Rustfmt**: Rustfmt is a tool for formatting Rust code according to the official Rust style guidelines. It automatically formats code to improve readability and maintain consistency across projects.
- **Cargo Audit**: Cargo Audit is a tool that checks for known vulnerabilities in the dependencies used by a Rust project. It scans the project's Cargo.lock file and compares it against a database of known vulnerabilities.
- **Rust Analyzer**: Rust Analyzer is an integrated development environment (IDE) tool that provides code analysis and navigation features for Rust projects. It offers features such as code completion, documentation lookup, and refactoring support.
- **RustSec**: RustSec is a security advisory database for Rust crates. It provides information about vulnerabilities and security issues in Rust dependencies, allowing developers to stay informed and take necessary actions.
These tools can be used individually or in combination to perform a comprehensive code review and ensure the security and quality of Rust code. By leveraging these tools, developers can identify and fix potential vulnerabilities early in the development process, reducing the risk of security breaches and improving overall code reliability.
```bash
# Install
cargo install cargo-audit
@ -368,55 +350,7 @@ cargo audit fetch
```
## Java
Java è un linguaggio di programmazione ad alto livello, orientato agli oggetti e multi-piattaforma. È ampiamente utilizzato per lo sviluppo di applicazioni web e mobili. Java è noto per la sua portabilità, sicurezza e robustezza.
### Strumenti di revisione del codice Java
Esistono diversi strumenti di revisione del codice disponibili per l'analisi statica del codice Java. Questi strumenti aiutano a identificare potenziali vulnerabilità e problemi di sicurezza nel codice sorgente Java.
#### FindBugs
FindBugs è uno strumento di analisi statica del codice Java che individua potenziali bug e problemi di sicurezza. Utilizza un'ampia gamma di regole predefinite per identificare le vulnerabilità nel codice sorgente Java.
Esempio di utilizzo:
```bash
findbugs -textui -effort:max -html -output report.html MyJavaFile.java
```
#### PMD
PMD è uno strumento di analisi statica del codice Java che individua potenziali problemi di codifica e stili di programmazione non corretti. Può essere utilizzato per identificare vulnerabilità e migliorare la qualità del codice Java.
Esempio di utilizzo:
```bash
pmd -d MyJavaDirectory -f html -R ruleset.xml -r report.html
```
#### Checkstyle
Checkstyle è uno strumento di analisi statica del codice Java che applica regole di stile e convenzioni di codifica. Può essere utilizzato per garantire che il codice Java segua le linee guida di codifica stabilite.
Esempio di utilizzo:
```bash
checkstyle -c config.xml MyJavaFile.java
```
#### SonarQube
SonarQube è una piattaforma di analisi continua della qualità del codice che supporta diversi linguaggi di programmazione, inclusi Java. Fornisce un'ampia gamma di regole predefinite per identificare vulnerabilità, bug e problemi di sicurezza nel codice Java.
Esempio di utilizzo:
```bash
sonar-scanner -Dsonar.projectKey=myProject -Dsonar.sources=src -Dsonar.host.url=http://localhost:9000 -Dsonar.login=myToken
```
### Conclusioni
L'utilizzo di strumenti di revisione del codice Java può aiutare a identificare e risolvere potenziali vulnerabilità e problemi di sicurezza nel codice sorgente Java. È consigliabile utilizzare una combinazione di questi strumenti per ottenere una copertura completa dell'analisi statica del codice Java.
Java è un linguaggio di programmazione ad alto livello ampiamente utilizzato per lo sviluppo di applicazioni web e software. È noto per la sua portabilità e la sua capacità di eseguire su diverse piattaforme senza dover essere ricompilato. La sua sintassi è simile a C++, rendendolo familiare a molti sviluppatori.
```bash
# JD-Gui
https://github.com/java-decompiler/jd-gui
@ -427,17 +361,17 @@ mkdir META-INF
echo "Main-Class: test" > META-INF/MANIFEST.MF
jar cmvf META-INF/MANIFEST.MF test.jar test.class
```
| Compito | Comando |
| ----------------- | --------------------------------------------------------- |
| Esegui Jar | java -jar \[jar] |
| Decomprimi Jar | unzip -d \[directory di output] \[jar] |
| Crea Jar | jar -cmf META-INF/MANIFEST.MF \[jar di output] \* |
| Base64 SHA256 | sha256sum \[file] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
| Rimuovi Firma | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Elimina dal Jar | zip -d \[jar] \[file da rimuovere] |
| Decompila classe | procyon -o . \[percorso della classe] |
| Decompila Jar | procyon -jar \[jar] -o \[directory di output] |
| Compila classe | javac \[percorso del file .java] |
| Compito | Comando |
| --------------- | --------------------------------------------------------- |
| Esegui Jar | java -jar \[jar] |
| Decomprimi Jar | unzip -d \[directory di output] \[jar] |
| Crea Jar | jar -cmf META-INF/MANIFEST.MF \[jar di output] \* |
| Base64 SHA256 | sha256sum \[file] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
| Rimuovi Firma | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Elimina da Jar | zip -d \[jar] \[file da rimuovere] |
| Decompila classe| procyon -o . \[percorso della classe] |
| Decompila Jar | procyon -jar \[jar] -o \[directory di output] |
| Compila classe | javac \[percorso del file .java] |
## Vai
```bash
@ -460,20 +394,21 @@ https://github.com/securego/gosec
### Scoperta
1. Burp:
* Spider e scopri il contenuto
* Spider e scopri contenuti
* Sitemap > filtro
* Sitemap > clic destro sul dominio > Strumenti di coinvolgimento > Trova script
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
* `waybackurls <dominio> |grep -i "\.js" |sort -u`
### Analisi statica
### Analisi Statica
#### Sminifica/Abbellisci
#### De-minimizzare/Abbellire/Prettify
* [https://prettier.io/playground/](https://prettier.io/playground/)
* [https://beautifier.io/](https://beautifier.io/)
* Vedi anche alcuni degli strumenti menzionati in 'Deobfuscate/Unpack' di seguito.
#### Deobfuscate/Decomprimi
#### Deobfuscate/Unpack
**Nota**: Potrebbe non essere possibile deobfuscare completamente.
@ -482,46 +417,47 @@ https://github.com/securego/gosec
* Comunemente, foo.js.map mappa a foo.js. Cerca manualmente.
* Usa [JS Miner](https://github.com/PortSwigger/js-miner) per cercarli.
* Assicurati di condurre una scansione attiva.
* Leggi '[Consigli/Note](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
* Leggi '[Suggerimenti/Note](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
* Se trovati, usa [Maximize](https://www.npmjs.com/package/maximize) per deobfuscare.
2. Senza file .map, prova JSnice:
* Riferimenti: http://jsnice.org/ & https://www.npmjs.com/package/jsnice
* Consigli:
* Se si utilizza jsnice.org, fare clic sul pulsante delle opzioni accanto al pulsante "Nicify JavaScript" e deselezionare "Infer types" per ridurre l'ingombro del codice con commenti.
* Assicurarsi di non lasciare righe vuote prima dello script, poiché potrebbe influire sul processo di deobfuscazione e fornire risultati inaccurati.
3. Usa console.log();
* Trova il valore di ritorno alla fine e cambialo in `console.log(<packerReturnVariable>);` in modo che il js deobfuscatato venga stampato invece di essere eseguito.
* Quindi, incolla il js modificato (ancora obfuscatato) in https://jsconsole.com/ per vedere il js deobfuscatato registrato nella console.
* Infine, incolla l'output deobfuscatato in https://prettier.io/playground/ per abbellirlo per l'analisi.
* **Nota**: Se si sta ancora visualizzando js impacchettato (ma diverso), potrebbe essere impacchettato in modo ricorsivo. Ripetere il processo.
* Riferimenti: [http://jsnice.org/](http://jsnice.org/) & [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice)
* Suggerimenti:
* Se usi jsnice.org, fai clic sul pulsante delle opzioni accanto al pulsante "Nicify JavaScript" e deseleziona "Infer types" per ridurre l'ingombro del codice con commenti.
* Assicurati di non lasciare linee vuote prima dello script, poiché potrebbe influenzare il processo di deobfuscation e fornire risultati inaccurati.
4. Per alcune alternative più moderne a JSNice, potresti voler dare un'occhiata ai seguenti:
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
* > Decompilatore Javascript, unpacker e toolkit unminify
> Wakaru è il decompilatore Javascript per il frontend moderno. Riporta il codice originale da una sorgente raggruppata e trasportata.
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
* > Deobfuscate obfuscator.io, unminify e unpack javascript raggruppati
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
* > Un-minify del codice Javascript utilizzando ChatGPT
> Questo strumento utilizza modelli di lingua ampi (come ChatGPT & llama2) e altri strumenti per un-minify del codice Javascript. Nota che LLM non apporta alcuna modifica strutturale: forniscono solo suggerimenti per rinominare variabili e funzioni. Il lavoro pesante è fatto 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)
* > Utilizzo di 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(<variabileRitornoPacker>);` in modo che il js deobfuscated venga stampato anziché eseguito.
* Quindi, incolla il js modificato (ancora oscurato) in [https://jsconsole.com/](https://jsconsole.com/) per vedere il js deobfuscated registrato nella console.
* Infine, incolla l'output deobfuscated in [https://prettier.io/playground/](https://prettier.io/playground/) per abbellirlo per l'analisi.
* **Nota**: Se stai ancora vedendo js impacchettato (ma diverso), potrebbe essere impacchettato in modo ricorsivo. Ripeti il processo.
Riferimenti
#### Riferimenti
* https://www.youtube.com/watch?v=\_v8r\_t4v6hQ
* https://blog.nvisium.com/angular-for-pentesters-part-1
* https://blog.nvisium.com/angular-for-pentesters-part-2
* [YouTube: DAST - Analisi dinamica di Javascript](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):
* [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)
Strumenti
#### Strumenti
* https://portswigger.net/burp/documentation/desktop/tools/dom-invader
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader](https://portswigger.net/burp/documentation/desktop/tools/dom-invader)
#### Riferimenti meno utilizzati
#### Riferimenti Meno Usati
* https://cyberchef.org/
* https://olajs.com/javascript-prettifier
* https://jshint.com/
* https://github.com/jshint/jshint/
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
* [https://cyberchef.org/](https://cyberchef.org/)
* [https://olajs.com/javascript-prettifier](https://olajs.com/javascript-prettifier)
* [https://jshint.com/](https://jshint.com/)
* [https://github.com/jshint/jshint/](https://github.com/jshint/jshint/)