hacktricks/network-services-pentesting/pentesting-web/code-review-tools.md

478 lines
24 KiB
Markdown
Raw Normal View History

# Ανασκόπηση Πηγαίου Κώδικα / Εργαλεία SAST
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο 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">\
Μάθετε & εξασκηθείτε στο 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)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Υποστήριξη HackTricks</summary>
2023-12-31 01:24:39 +00:00
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
## Κατευθύνσεις και Λίστες εργαλείων
2022-04-28 16:01:33 +00:00
* [**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)
2022-04-28 16:01:33 +00:00
## Πολυγλωσσικά Εργαλεία
2022-04-28 16:01:33 +00:00
### [Naxus - AI-Gents](https://www.naxusai.com/)
2022-04-28 16:01:33 +00:00
Υπάρχει ένα **δωρεάν πακέτο για ανασκόπηση PRs**.
2020-11-10 09:27:45 +00:00
### [**Semgrep**](https://github.com/returntocorp/semgrep)
Είναι ένα **εργαλείο Ανοιχτού Κώδικα**.
2024-02-10 22:40:18 +00:00
#### Υποστηριζόμενες Γλώσσες
| Κατηγορία | Γλώσσες |
| ------------ | ----------------------------------------------------------------------------------------------------- |
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
| Beta | Kotlin · Rust |
| Πειραματική | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
#### Γρήγορη Εκκίνηση
2021-09-25 13:27:46 +00:00
{% code overflow="wrap" %}
2020-11-10 09:27:45 +00:00
```bash
# Install https://github.com/returntocorp/semgrep#option-1-getting-started-from-the-cli
brew install semgrep
# Go to your repo code and scan
cd repo
semgrep scan --config auto
2020-11-10 09:27:45 +00:00
```
{% endcode %}
2020-11-10 09:27:45 +00:00
Μπορείτε επίσης να χρησιμοποιήσετε την [**επέκταση semgrep για VSCode**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) για να αποκτήσετε τα ευρήματα μέσα στο VSCode.
2022-09-02 04:20:58 +00:00
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
2022-09-02 04:20:58 +00:00
Υπάρχει μια εγκαταστάσιμη **δωρεάν έκδοση**.
2022-09-02 04:20:58 +00:00
#### Γρήγορη Εκκίνηση
2020-11-10 09:27:45 +00:00
{% code overflow="wrap" %}
```bash
# Run the paltform in docker
docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
# Install cli tool
brew install sonar-scanner
# Go to localhost:9000 and login with admin:admin or admin:sonar
# Generate a local project and then a TOKEN for it
# Using the token and from the folder with the repo, scan it
cd path/to/repo
sonar-scanner \
2024-02-10 22:40:18 +00:00
-Dsonar.projectKey=<project-name> \
-Dsonar.sources=. \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.token=<sonar_project_token>
```
{% endcode %}
### CodeQL
Υπάρχει μια **εγκαταστάσιμη δωρεάν έκδοση** αλλά σύμφωνα με την άδεια μπορείτε να **χρησιμοποιείτε μόνο τη δωρεάν έκδοση του codeQL σε έργα Ανοιχτού Κώδικα**.
2024-02-10 22:40:18 +00:00
#### Εγκατάσταση
{% code overflow="wrap" %}
```bash
# Download your release from https://github.com/github/codeql-action/releases
## Example
wget https://github.com/github/codeql-action/releases/download/codeql-bundle-v2.14.3/codeql-bundle-osx64.tar.gz
# Move it to the destination folder
mkdir ~/codeql
mv codeql-bundle* ~/codeql
2020-11-10 09:27:45 +00:00
# Decompress it
cd ~/codeql
tar -xzvf codeql-bundle-*.tar.gz
rm codeql-bundle-*.tar.gz
# Add to path
echo 'export PATH="$PATH:/Users/username/codeql/codeql"' >> ~/.zshrc
# Check it's correctly installed
## Open a new terminal
codeql resolve qlpacks #Get paths to QL packs
2022-04-11 00:18:13 +00:00
```
{% endcode %}
#### Quick Start - Ετοιμάστε τη βάση δεδομένων
{% hint style="success" %}
Το πρώτο πράγμα που πρέπει να κάνετε είναι να **ετοιμάσετε τη βάση δεδομένων** (δημιουργήστε το δέντρο κώδικα) ώστε αργότερα οι ερωτήσεις να εκτελούνται πάνω σε αυτήν.
{% endhint %}
* Μπορείτε να επιτρέψετε στο codeql να αναγνωρίσει αυτόματα τη γλώσσα του repo και να δημιουργήσει τη βάση δεδομένων
{% code overflow="wrap" %}
```bash
codeql database create <database> --language <language>
# Example
codeql database create /path/repo/codeql_db --source-root /path/repo
## DB will be created in /path/repo/codeql_db
```
{% endcode %}
{% hint style="danger" %}
Αυτό **συνήθως θα προκαλέσει ένα σφάλμα** λέγοντας ότι έχει καθοριστεί περισσότερη από μία γλώσσα (ή ανιχνεύθηκε αυτόματα). **Ελέγξτε τις επόμενες επιλογές** για να το διορθώσετε!
{% endhint %}
* Μπορείτε να το κάνετε αυτό **χειροκίνητα υποδεικνύοντας** το **repo** και τη **γλώσσα** ([λίστα γλωσσών](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
codeql database create <database> --language <language> --source-root </path/to/repo>
# Example
codeql database create /path/repo/codeql_db --language javascript --source-root /path/repo
## DB will be created in /path/repo/codeql_db
```
{% endcode %}
* Αν το repo σας χρησιμοποιεί **περισσότερες από 1 γλώσσα**, μπορείτε επίσης να δημιουργήσετε **1 DB ανά γλώσσα** υποδεικνύοντας κάθε γλώσσα.
{% code overflow="wrap" %}
```bash
export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create <database> --source-root /path/to/repo --db-cluster --language "javascript,python"
# Example
export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create /path/repo/codeql_db --source-root /path/to/repo --db-cluster --language "javascript,python"
## DBs will be created in /path/repo/codeql_db/*
```
{% endcode %}
* Μπορείτε επίσης να επιτρέψετε στο `codeql` να **αναγνωρίσει όλες τις γλώσσες** για εσάς και να δημιουργήσει μια βάση δεδομένων ανά γλώσσα. Πρέπει να του δώσετε ένα **GITHUB\_TOKEN**.
{% code overflow="wrap" %}
```bash
export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create <database> --db-cluster --source-root </path/to/repo>
# Example
export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create /tmp/codeql_db --db-cluster --source-root /path/repo
## DBs will be created in /path/repo/codeql_db/*
```
{% endcode %}
#### Γρήγορη Εκκίνηση - Ανάλυση του κώδικα
{% hint style="success" %}
Τώρα είναι επιτέλους η ώρα να αναλύσετε τον κώδικα
{% endhint %}
Θυμηθείτε ότι αν χρησιμοποιήσατε πολλές γλώσσες, **μια βάση δεδομένων ανά γλώσσα** θα έχει δημιουργηθεί στη διαδρομή που καθορίσατε.
{% code overflow="wrap" %}
```bash
# Default analysis
codeql database analyze <database> --format=<format> --output=</out/file/path>
# Example
codeql database analyze /tmp/codeql_db/javascript --format=sarif-latest --output=/tmp/graphql_results.sarif
# Specify QL pack to use in the analysis
codeql database analyze <database> \
2024-02-10 22:40:18 +00:00
<qls pack> --sarif-category=<language> \
--sarif-add-baseline-file-info \ --format=<format> \
--output=/out/file/path>
# Example
codeql database analyze /tmp/codeql_db \
2024-02-10 22:40:18 +00:00
javascript-security-extended --sarif-category=javascript \
--sarif-add-baseline-file-info --format=sarif-latest \
--output=/tmp/sec-extended.sarif
```
{% endcode %}
#### Γρήγορη Εκκίνηση - Σκριπταρισμένη
{% code overflow="wrap" %}
```bash
export GITHUB_TOKEN=ghp_32849y23hij4...
export REPO_PATH=/path/to/repo
export OUTPUT_DIR_PATH="$REPO_PATH/codeql_results"
mkdir -p "$OUTPUT_DIR_PATH"
export FINAL_MSG="Results available in: "
echo "Creating DB"
codeql database create "$REPO_PATH/codeql_db" --db-cluster --source-root "$REPO_PATH"
for db in `ls "$REPO_PATH/codeql_db"`; do
2024-02-10 22:40:18 +00:00
echo "Analyzing $db"
codeql database analyze "$REPO_PATH/codeql_db/$db" --format=sarif-latest --output="${OUTPUT_DIR_PATH}/$db).sarif"
FINAL_MSG="$FINAL_MSG ${OUTPUT_DIR_PATH}/$db.sarif ,"
echo ""
done
echo $FINAL_MSG
```
{% endcode %}
Μπορείτε να οπτικοποιήσετε τα ευρήματα στο [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) ή χρησιμοποιώντας την επέκταση VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
Μπορείτε επίσης να χρησιμοποιήσετε την [**επέκταση VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) για να αποκτήσετε τα ευρήματα μέσα στο VSCode. Θα χρειαστεί να δημιουργήσετε μια βάση δεδομένων χειροκίνητα, αλλά στη συνέχεια μπορείτε να επιλέξετε οποιαδήποτε αρχεία και να κάνετε κλικ στο `Δεξί Κλικ` -> `CodeQL: Run Queries in Selected Files`
### [**Snyk**](https://snyk.io/product/snyk-code/)
Υπάρχει μια **εγκαταστάσιμη δωρεάν έκδοση**.
#### Γρήγορη Εκκίνηση
```bash
# Install
sudo npm install -g snyk
# Authenticate (you can use a free account)
snyk auth
# Test for open source vulns & license issues
snyk test [--all-projects]
# Test for code vulnerabilities
## This will upload your code and you need to enable this option in: Settings > Snyk Code
snyk test code
# Test for vulns in images
snyk container test [image]
# Test for IaC vulns
snyk iac test
```
Μπορείτε επίσης να χρησιμοποιήσετε την [**snyk VSCode Extension**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) για να αποκτήσετε ευρήματα μέσα στο VSCode.
### [Insider](https://github.com/insidersec/insider)
Είναι **Ανοιχτού Κώδικα**, αλλά φαίνεται **μη συντηρούμενο**.
2024-02-10 22:40:18 +00:00
#### Υποστηριζόμενες Γλώσσες
Java (Maven και Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, και Javascript (Node.js).
#### Γρήγορη Εκκίνηση
```bash
# Check the correct release for your environment
$ wget https://github.com/insidersec/insider/releases/download/2.1.0/insider_2.1.0_linux_x86_64.tar.gz
2024-02-10 22:40:18 +00:00
$ tar -xf insider_2.1.0_linux_x86_64.tar.gz
$ chmod +x insider
$ ./insider --tech javascript --target <projectfolder>
2020-11-10 09:27:45 +00:00
```
### [**DeepSource**](https://deepsource.com/pricing)&#x20;
2024-02-10 22:40:18 +00:00
Δωρεάν για **δημόσια αποθετήρια**.
## NodeJS
* **`yarn`**
```bash
# Install
brew install yarn
# Run
cd /path/to/repo
yarn audit
npm audit
```
* **`pnpm`**
```bash
# Install
npm install -g pnpm
# Run
cd /path/to/repo
pnpm audit
```
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Στατικός σαρωτής ασφαλείας κώδικα (SAST) για εφαρμογές Node.js που υποστηρίζεται από [libsast](https://github.com/ajinabraham/libsast) και [semgrep](https://github.com/returntocorp/semgrep).
```bash
# Install & run
docker run -it -p 9090:9090 opensecurity/nodejsscan:latest
# Got to localhost:9090
# Upload a zip file with the code
```
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** Ο στόχος του Retire.js είναι να σας βοηθήσει να ανιχνεύσετε τη χρήση εκδόσεων βιβλιοθηκών JS με γνωστές ευπάθειες.
```bash
# Install
npm install -g retire
# Run
cd /path/to/repo
retire --colors
```
## Electron
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** Είναι ένα εργαλείο για την αναγνώριση κακών ρυθμίσεων και προτύπων ασφαλείας σε εφαρμογές βασισμένες σε Electron.
2022-05-07 10:35:17 +00:00
## Python
2020-11-10 09:27:45 +00:00
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Ο Bandit είναι ένα εργαλείο σχεδιασμένο για να βρίσκει κοινά ζητήματα ασφαλείας στον κώδικα Python. Για να το κάνει αυτό, ο Bandit επεξεργάζεται κάθε αρχείο, δημιουργεί ένα AST από αυτό και εκτελεί κατάλληλα πρόσθετα στους κόμβους του AST. Μόλις ο Bandit ολοκληρώσει τη σάρωση όλων των αρχείων, δημιουργεί μια αναφορά.
```bash
# Install
pip3 install bandit
# Run
bandit -r <path to folder>
```
* [**safety**](https://github.com/pyupio/safety): Το Safety ελέγχει τις εξαρτήσεις Python για γνωστές ευπάθειες ασφαλείας και προτείνει τις κατάλληλες διορθώσεις για τις ευπάθειες που ανιχνεύονται. Το Safety μπορεί να εκτελείται σε μηχανές προγραμματιστών, σε CI/CD pipelines και σε παραγωγικά συστήματα.
2020-11-10 09:27:45 +00:00
```bash
# Install
pip install safety
# Run
safety check
2020-11-10 09:27:45 +00:00
```
2024-02-10 22:40:18 +00:00
* [~~**Pyt**~~](https://github.com/python-security/pyt): Μη συντηρούμενο.
2022-05-07 10:35:17 +00:00
## .NET
2020-11-10 09:27:45 +00:00
```bash
# dnSpy
https://github.com/0xd4d/dnSpy
# .NET compilation
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe test.cs
```
## RUST
```bash
# Install
cargo install cargo-audit
# Run
cargo audit
#Update the Advisory Database
cargo audit fetch
```
2022-05-07 10:35:17 +00:00
## Java
2020-11-10 09:27:45 +00:00
```bash
# JD-Gui
https://github.com/java-decompiler/jd-gui
# Java compilation step-by-step
javac -source 1.8 -target 1.8 test.java
mkdir META-INF
echo "Main-Class: test" > META-INF/MANIFEST.MF
jar cmvf META-INF/MANIFEST.MF test.jar test.class
```
| Task | Command |
2022-04-11 00:18:13 +00:00
| --------------- | --------------------------------------------------------- |
| Execute Jar | java -jar \[jar] |
| Unzip Jar | unzip -d \[output directory] \[jar] |
| Create Jar | jar -cmf META-INF/MANIFEST.MF \[output jar] \* |
| Base64 SHA256 | sha256sum \[file] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
| Remove Signing | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Delete from Jar | zip -d \[jar] \[file to remove] |
| Decompile class | procyon -o . \[path to class] |
| Decompile Jar | procyon -jar \[jar] -o \[output directory] |
| Compile class | javac \[path to .java file] |
## Πηγαίνετε
2021-05-26 11:18:48 +00:00
```bash
https://github.com/securego/gosec
```
2022-05-07 10:35:17 +00:00
## PHP
2024-02-10 22:40:18 +00:00
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) και [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
2022-05-07 10:35:17 +00:00
### Wordpress Plugins
2022-04-11 00:18:13 +00:00
2022-05-07 10:35:17 +00:00
[https://www.pluginvulnerabilities.com/plugin-security-checker/](https://www.pluginvulnerabilities.com/plugin-security-checker/)
2022-04-28 16:01:33 +00:00
2022-05-07 10:35:17 +00:00
## Solidity
* [https://www.npmjs.com/package/solium](https://www.npmjs.com/package/solium)
2022-04-28 16:01:33 +00:00
## JavaScript
2022-04-28 16:01:33 +00:00
### Discovery
1. Burp:
* Spider και ανακάλυψη περιεχομένου
* Sitemap > φίλτρο
* Sitemap > δεξί κλικ στο domain > Engagement tools > Βρείτε scripts
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
2024-02-10 22:40:18 +00:00
* `waybackurls <domain> |grep -i "\.js" |sort -u`
### Static Analysis
#### Unminimize/Beautify/Prettify
2022-04-28 16:01:33 +00:00
* [https://prettier.io/playground/](https://prettier.io/playground/)
* [https://beautifier.io/](https://beautifier.io/)
* Δείτε μερικά από τα εργαλεία που αναφέρονται στο 'Deobfuscate/Unpack' παρακάτω.
#### Deobfuscate/Unpack
2022-04-28 16:01:33 +00:00
**Σημείωση**: Ίσως να μην είναι δυνατόν να γίνει πλήρης αποσυμπίεση.
2024-02-10 22:40:18 +00:00
1. Βρείτε και χρησιμοποιήστε αρχεία .map:
* Αν τα αρχεία .map είναι εκτεθειμένα, μπορούν να χρησιμοποιηθούν για εύκολη αποσυμπίεση.
2024-02-10 22:40:18 +00:00
* Συνήθως, το foo.js.map αντιστοιχεί στο foo.js. Αναζητήστε τα χειροκίνητα.
* Χρησιμοποιήστε [JS Miner](https://github.com/PortSwigger/js-miner) για να τα αναζητήσετε.
* Βεβαιωθείτε ότι διεξάγεται ενεργή σάρωση.
* Διαβάστε '[Tips/Notes](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
* Αν βρεθούν, χρησιμοποιήστε [Maximize](https://www.npmjs.com/package/maximize) για να αποσυμπιέσετε.
2024-02-10 22:40:18 +00:00
2. Χωρίς αρχεία .map, δοκιμάστε το JSnice:
* Αναφορές: [http://jsnice.org/](http://jsnice.org/) & [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice)
2024-02-10 22:40:18 +00:00
* Συμβουλές:
* Αν χρησιμοποιείτε jsnice.org, κάντε κλικ στο κουμπί επιλογών δίπλα στο κουμπί "Nicify JavaScript" και αποεπιλέξτε "Infer types" για να μειώσετε την ακαταστασία στον κώδικα με σχόλια.
* Βεβαιωθείτε ότι δεν αφήνετε κενές γραμμές πριν από το script, καθώς μπορεί να επηρεάσει τη διαδικασία αποσυμπίεσης και να δώσει ανακριβή αποτελέσματα.
4. Για μερικές πιο σύγχρονες εναλλακτικές στο JSNice, μπορείτε να δείτε τα εξής:
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
* > Javascript decompiler, unpacker και unminify toolkit
> Το Wakaru είναι ο Javascript decompiler για σύγχρονα frontend. Επαναφέρει τον αρχικό κώδικα από μια συσκευασμένη και μεταγλωττισμένη πηγή.
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
* > Deobfuscate obfuscator.io, unminify και unpack bundled javascript
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
* > Un-minify Javascript code χρησιμοποιώντας ChatGPT
> Αυτό το εργαλείο χρησιμοποιεί μεγάλα γλωσσικά μοντέλα (όπως ChatGPT & llama2) και άλλα εργαλεία για να αποσυμπιέσει τον κώδικα Javascript. Σημειώστε ότι τα LLMs δεν εκτελούν καμία δομική αλλαγή παρέχουν μόνο υποδείξεις για την μετονομασία μεταβλητών και συναρτήσεων. Η βαριά εργασία γίνεται από το Babel σε επίπεδο AST για να διασφαλιστεί ότι ο κώδικας παραμένει 1-1 ισοδύναμος.
* [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html)
* > Χρησιμοποιώντας LLMs για να αντιστρέψετε την ελαχιστοποίηση ονομάτων μεταβλητών Javascript
3. Χρησιμοποιήστε `console.log()`;
* Βρείτε την τιμή επιστροφής στο τέλος και αλλάξτε την σε `console.log(<packerReturnVariable>);` ώστε ο αποσυμπιεσμένος js να εκτυπώνεται αντί να εκτελείται.
* Στη συνέχεια, επικολλήστε τον τροποποιημένο (και ακόμα αποσυμπιεσμένο) js στο [https://jsconsole.com/](https://jsconsole.com/) για να δείτε τον αποσυμπιεσμένο js να καταγράφεται στην κονσόλα.
* Τέλος, επικολλήστε την αποσυμπιεσμένη έξοδο στο [https://prettier.io/playground/](https://prettier.io/playground/) για να την ομορφύνετε για ανάλυση.
* **Σημείωση**: Αν εξακολουθείτε να βλέπετε συσκευασμένο (αλλά διαφορετικό) js, μπορεί να είναι αναδρομικά συσκευασμένο. Επαναλάβετε τη διαδικασία.
#### References
* [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):
* [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)
#### Tools
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader](https://portswigger.net/burp/documentation/desktop/tools/dom-invader)
#### Less Used References
* [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/)
{% hint style="success" %}
Learn & practice 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">\
Learn & practice 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>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2023-12-31 01:24:39 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}