mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 12:43:23 +00:00
Translated ['network-services-pentesting/pentesting-web/code-review-tool
This commit is contained in:
parent
7af16bad84
commit
46a4b80d92
1 changed files with 32 additions and 28 deletions
|
@ -1,8 +1,8 @@
|
|||
# Quellcode-Überprüfung / SAST-Tools
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen & üben Sie 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">\
|
||||
Lernen & üben Sie 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)
|
||||
Lernen & üben Sie 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">\
|
||||
Lernen & üben Sie 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>
|
||||
|
||||
|
@ -10,7 +10,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
|
||||
* **Teilen Sie Hacking-Tricks, indem Sie PRs zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichen.
|
||||
|
||||
</details>
|
||||
{% 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 <projectfolder>
|
||||
```
|
||||
### [**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,7 +370,7 @@ 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] |
|
||||
| Jar dekompilieren | procyon -jar \[jar] -o \[output directory] |
|
||||
|
@ -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(<packerReturnVariable>);`, 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(<packerReturnVariable>);`, 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:<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">\
|
||||
Lerne & übe 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)
|
||||
Lerne & übe 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
|
@ -471,7 +475,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Tritt der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folge** uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Teile Hacking-Tricks, indem du PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
* **Teile Hacking-Tricks, indem du PRs zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue