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

This commit is contained in:
Translator 2024-09-27 11:27:43 +00:00
parent cbbd23c34f
commit f396f07df3

View file

@ -1,15 +1,15 @@
# Revue de code source / Outils SAST
{% hint style="success" %}
Apprenez et pratiquez le hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Apprenez et pratiquez le hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Apprenez et pratiquez le hacking AWS :<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
Apprenez et pratiquez le hacking GCP : <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Soutenir HackTricks</summary>
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
</details>
@ -269,9 +269,9 @@ $ tar -xf insider_2.1.0_linux_x86_64.tar.gz
$ chmod +x insider
$ ./insider --tech javascript --target <projectfolder>
```
### [**DeepSource**](https://deepsource.com/pricing)&#x20;
### [**DeepSource**](https://deepsource.com/pricing)
Gratuit pour les **dépôts publics**.
Gratuit pour **les dépôts publics**.
## NodeJS
@ -281,7 +281,10 @@ Gratuit pour les **dépôts publics**.
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)**:** Analyseur de code de sécurité statique (SAST) pour les applications Node.js alimenté par [libsast](https://github.com/ajinabraham/libsast) et [semgrep](https://github.com/returntocorp/semgrep).
@ -360,17 +364,17 @@ mkdir META-INF
echo "Main-Class: test" > META-INF/MANIFEST.MF
jar cmvf META-INF/MANIFEST.MF test.jar test.class
```
| Tâche | Commande |
| --------------- | --------------------------------------------------------- |
| Exécuter Jar | java -jar \[jar] |
| Décompresser Jar| unzip -d \[répertoire de sortie] \[jar] |
| Créer Jar | jar -cmf META-INF/MANIFEST.MF \[jar de sortie] \* |
| Tâche | Commande |
| --------------- | -------------------------------------------------------- |
| Exécuter Jar | java -jar \[jar] |
| Décompresser Jar| unzip -d \[répertoire de sortie] \[jar] |
| Créer Jar | jar -cmf META-INF/MANIFEST.MF \[jar de sortie] \* |
| Base64 SHA256 | sha256sum \[fichier] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
| Supprimer la signature | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Supprimer du Jar | zip -d \[jar] \[fichier à supprimer] |
| Décompiler la classe | procyon -o . \[chemin vers la classe] |
| Décompiler Jar | procyon -jar \[jar] -o \[répertoire de sortie] |
| Compiler la classe | javac \[chemin vers le fichier .java] |
| Supprimer la signature | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Supprimer du Jar | zip -d \[jar] \[fichier à supprimer] |
| Décompiler la classe | procyon -o . \[chemin vers la classe] |
| Décompiler Jar | procyon -jar \[jar] -o \[répertoire de sortie] |
| Compiler la classe | javac \[chemin vers le fichier .java] |
## Aller
```bash
@ -413,7 +417,7 @@ https://github.com/securego/gosec
1. Trouver et utiliser des fichiers .map:
* Si les fichiers .map sont exposés, ils peuvent être utilisés pour déobfusquer facilement.
* Communément, foo.js.map correspond à foo.js. Cherchez-les manuellement.
* En général, foo.js.map correspond à foo.js. Cherchez-les manuellement.
* Utilisez [JS Miner](https://github.com/PortSwigger/js-miner) pour les rechercher.
* Assurez-vous qu'un scan actif est effectué.
* Lisez '[Conseils/Remarques](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
@ -423,30 +427,30 @@ https://github.com/securego/gosec
* Conseils:
* Si vous utilisez jsnice.org, cliquez sur le bouton d'options à côté du bouton "Nicify JavaScript", et désélectionnez "Infer types" pour réduire l'encombrement du code avec des commentaires.
* Assurez-vous de ne laisser aucune ligne vide avant le script, car cela peut affecter le processus de déobfuscation et donner des résultats inexacts.
4. Pour quelques alternatives plus modernes à JSNice, vous pourriez aimer regarder les suivantes:
3. Pour quelques alternatives plus modernes à JSNice, vous pourriez aimer regarder les suivantes:
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
* > Décompilateur Javascript, outil de décompression et de dé-minification
> Wakaru est le décompilateur Javascript pour le frontend moderne. Il ramène le code original d'une source empaquetée et transpilée.
* > Outil de décompilation, décompression et dé-minification Javascript Wakaru est le décompilateur Javascript pour le frontend moderne. Il ramène le code original d'une source regroupée et transpilée.
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
* > Déobfusquer obfuscator.io, dé-minifier et décompresser le javascript empaqueté
* > Déobfusquer obfuscator.io, dé-minifier et décompresser le javascript regroupé
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
* > Dé-minifier le code Javascript en utilisant ChatGPT
> Cet outil utilise de grands modèles de langage (comme ChatGPT & llama2) et d'autres outils pour dé-minifier le code Javascript. Notez que les LLM ne réalisent aucun changement structurel ils fournissent seulement des indices pour renommer des variables et des fonctions. Le travail lourd est effectué par Babel au niveau AST pour garantir que le code reste équivalent 1-1.
* > Dé-minifier le code Javascript en utilisant ChatGPT Cet outil utilise de grands modèles de langage (comme ChatGPT & llama2) et d'autres outils pour dé-minifier le code Javascript. Notez que les LLM ne réalisent aucun changement structurel ils fournissent seulement des indices pour renommer des variables et des fonctions. Le travail lourd est effectué par Babel au niveau AST pour garantir que le code reste équivalent 1-1.
* [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html)
* > Utiliser des LLM pour inverser la minimisation des noms de variables JavaScript
3. Utilisez `console.log()`;
* Trouvez la valeur de retour à la fin et changez-la en `console.log(<packerReturnVariable>);` afin que le js déobfusqué soit imprimé au lieu d'être exécuté.
* Ensuite, collez le js modifié (et toujours obfusqué) dans [https://jsconsole.com/](https://jsconsole.com/) pour voir le js déobfusqué enregistré dans la console.
* Enfin, collez la sortie déobfusquée dans [https://prettier.io/playground/](https://prettier.io/playground/) pour l'embellir pour l'analyse.
* **Remarque**: Si vous voyez toujours du js empaqueté (mais différent), il peut être empaqueté de manière récursive. Répétez le processus.
* **Remarque**: Si vous voyez encore du js empaqueté (mais différent), il peut être empaqueté de manière récursive. Répétez le processus.
#### Références
* [YouTube: DAST - Analyse Dynamique Javascript](https://www.youtube.com/watch?v=_v8r_t4v6hQ)
* [YouTube: DAST - Analyse Dynamique 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):
* [Déobfusquer / Dé-minifier le code d'application web obfusqué](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
* [devalias](https://twitter.com/\_devalias)'s [GitHub Gists](https://gist.github.com/0xdevalias):
* [Déobfuscation / Dé-minification du code d'application web obfusqué](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
* [Ingénierie inverse des applications Webpack](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
* [etc](https://gist.github.com/search?q=user:0xdevalias+javascript)
@ -462,16 +466,16 @@ https://github.com/securego/gosec
* [https://github.com/jshint/jshint/](https://github.com/jshint/jshint/)
{% hint style="success" %}
Apprenez & pratiquez le Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Formation AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Apprenez & pratiquez le Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Formation GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Apprenez et pratiquez le 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">\
Apprenez et pratiquez le 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>
<summary>Soutenir HackTricks</summary>
* Vérifiez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
</details>
{% endhint %}