From 46a4b80d9234013b465810426a4e0b3e4233c2f7 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 27 Sep 2024 11:27:42 +0000 Subject: [PATCH] Translated ['network-services-pentesting/pentesting-web/code-review-tool --- .../pentesting-web/code-review-tools.md | 60 ++++++++++--------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/network-services-pentesting/pentesting-web/code-review-tools.md b/network-services-pentesting/pentesting-web/code-review-tools.md index 9d2e82256..8fca3f09b 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 @@ # Quellcode-Überprüfung / SAST-Tools {% hint style="success" %} -Lernen & üben Sie AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Lernen & üben Sie GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Lernen & üben Sie AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Lernen & üben Sie GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -10,7 +10,7 @@ Lernen & üben Sie GCP Hacking: {% endhint %} @@ -157,7 +157,7 @@ codeql database create /path/repo/codeql_db --source-root /path/to/repo --db-clu ``` {% endcode %} -* Sie können auch `codeql` erlauben, **alle Sprachen** für Sie zu **identifizieren** und eine DB pro Sprache zu erstellen. Sie müssen ihm ein **GITHUB\_TOKEN** geben. +* Sie können auch `codeql` erlauben, **alle Sprachen** für Sie zu identifizieren und eine DB pro Sprache zu erstellen. Sie müssen ihm ein **GITHUB\_TOKEN** geben. {% 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) Kostenlos für **öffentliche Repos**. @@ -281,7 +281,10 @@ Kostenlos für **öffentliche Repos**. 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)**:** Statischer Sicherheitscode-Scanner (SAST) für Node.js-Anwendungen, unterstützt von [libsast](https://github.com/ajinabraham/libsast) und [semgrep](https://github.com/returntocorp/semgrep). @@ -328,7 +332,7 @@ pip install safety # Run safety check ``` -* [~~**Pyt**~~](https://github.com/python-security/pyt): Nicht mehr gewartet. +* [~~**Pyt**~~](https://github.com/python-security/pyt): Nicht gewartet. ## .NET ```bash @@ -366,9 +370,9 @@ jar cmvf META-INF/MANIFEST.MF test.jar test.class | Jar entpacken | unzip -d \[output directory] \[jar] | | Jar erstellen | jar -cmf META-INF/MANIFEST.MF \[output jar] \* | | Base64 SHA256 | sha256sum \[file] \| cut -d' ' -f1 \| xxd -r -p \| base64 | -| Signatur entfernen| rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA | +| Signierung entfernen | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA | | Aus Jar löschen | zip -d \[jar] \[file to remove] | -| Klasse dekompilieren| procyon -o . \[path to class] | +| Klasse dekompilieren | procyon -o . \[path to class] | | Jar dekompilieren | procyon -jar \[jar] -o \[output directory] | | Klasse kompilieren | javac \[path to .java file] | @@ -409,43 +413,43 @@ https://github.com/securego/gosec #### Deobfuscate/Unpack -**Hinweis**: Es ist möglicherweise nicht möglich, vollständig zu deobfuskieren. +**Hinweis**: Es ist möglicherweise nicht möglich, vollständig zu deobfuscate. 1. Finde und benutze .map-Dateien: -* Wenn die .map-Dateien exponiert sind, können sie verwendet werden, um leicht zu deobfuskieren. +* Wenn die .map-Dateien exponiert sind, können sie verwendet werden, um leicht zu deobfuscate. * Häufig mappt foo.js.map auf foo.js. Manuell danach suchen. * Verwende [JS Miner](https://github.com/PortSwigger/js-miner), um danach zu suchen. * Stelle sicher, dass ein aktiver Scan durchgeführt wird. * Lies '[Tipps/Notizen](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)' -* Wenn gefunden, benutze [Maximize](https://www.npmjs.com/package/maximize), um zu deobfuskieren. +* Wenn gefunden, benutze [Maximize](https://www.npmjs.com/package/maximize), um zu deobfuscate. 2. Ohne .map-Dateien, versuche JSnice: * Referenzen: [http://jsnice.org/](http://jsnice.org/) & [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice) * Tipps: -* Wenn du jsnice.org verwendest, klicke auf die Optionsschaltfläche neben der Schaltfläche "Nicify JavaScript" und deaktiviere "Infer types", um das Code-Commenting zu reduzieren. -* Stelle sicher, dass du keine leeren Zeilen vor dem Skript lässt, da dies den Deobfuskationsprozess beeinträchtigen und ungenaue Ergebnisse liefern kann. -4. Für einige modernere Alternativen zu JSNice könntest du dir Folgendes ansehen: +* Wenn du jsnice.org verwendest, klicke auf die Optionsschaltfläche neben der Schaltfläche "Nicify JavaScript" und deaktiviere "Infer types", um das Code mit Kommentaren nicht zu überladen. +* Stelle sicher, dass du keine leeren Zeilen vor dem Skript lässt, da dies den Deobfuscation-Prozess beeinträchtigen und ungenaue Ergebnisse liefern kann. +3. Für einige modernere Alternativen zu JSNice könntest du dir Folgendes ansehen: + * [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru) -* > Javascript-Dekompilierer, Unpacker und Unminify-Toolkit -> Wakaru ist der Javascript-Dekompilierer für modernes Frontend. Es stellt den ursprünglichen Code aus einer gebündelten und transpilierten Quelle wieder her. +* > Javascript-Dekompilierer, Unpacker und Unminify-Toolkit Wakaru ist der Javascript-Dekompilierer für modernes Frontend. Es stellt den ursprünglichen Code aus einer gebündelten und transpilierten Quelle wieder her. * [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack) * > Deobfuscate obfuscator.io, unminify und unpack gebündeltes Javascript * [https://github.com/jehna/humanify](https://github.com/jehna/humanify) -* > Un-minify Javascript-Code mit ChatGPT -> Dieses Tool verwendet große Sprachmodelle (wie ChatGPT & llama2) und andere Tools, um Javascript-Code zu un-minifizieren. Beachte, dass LLMs keine strukturellen Änderungen vornehmen – sie geben nur Hinweise zur Umbenennung von Variablen und Funktionen. Die schwere Arbeit wird von Babel auf AST-Ebene erledigt, um sicherzustellen, dass der Code 1-1 äquivalent bleibt. +* > Un-minify Javascript-Code mit ChatGPT Dieses Tool verwendet große Sprachmodelle (wie ChatGPT & llama2) und andere Tools, um Javascript-Code zu un-minify. Beachte, dass LLMs keine strukturellen Änderungen vornehmen – sie geben nur Hinweise zur Umbenennung von Variablen und Funktionen. Die schwere Arbeit wird von Babel auf AST-Ebene erledigt, um sicherzustellen, dass der Code 1-1 äquivalent bleibt. * [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html) -* > Verwendung von LLMs zur Rückgängigmachung der Minifizierung von JavaScript-Variablen +* > Verwendung von LLMs zur Umkehrung der Minifizierung von JavaScript-Variablen + 3. Verwende `console.log()`; -* Finde den Rückgabewert am Ende und ändere ihn in `console.log();`, damit das deobfuskierte js anstelle der Ausführung gedruckt wird. -* Füge dann das modifizierte (und immer noch obfuskierte) js in [https://jsconsole.com/](https://jsconsole.com/) ein, um das deobfuskierte js in der Konsole zu sehen. -* Schließlich füge die deobfuskierte Ausgabe in [https://prettier.io/playground/](https://prettier.io/playground/) ein, um sie für die Analyse zu verschönern. +* Finde den Rückgabewert am Ende und ändere ihn in `console.log();`, damit das deobfuscierte js anstelle der Ausführung gedruckt wird. +* Füge dann das modifizierte (und immer noch obfuskiertes) js in [https://jsconsole.com/](https://jsconsole.com/) ein, um das deobfuscierte js in der Konsole zu sehen. +* Schließlich füge die deobfuscierte Ausgabe in [https://prettier.io/playground/](https://prettier.io/playground/) ein, um sie für die Analyse zu beautify. * **Hinweis**: Wenn du immer noch gepacktes (aber anderes) js siehst, könnte es rekursiv gepackt sein. Wiederhole den Prozess. #### 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" %} -Lerne & übe AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Lerne & übe GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Lerne & übe AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Lerne & übe GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -471,7 +475,7 @@ Lerne & übe GCP Hacking: {% endhint %}