mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
484 lines
20 KiB
Markdown
484 lines
20 KiB
Markdown
# Bronkode-oorsig / SAST-hulpmiddels
|
|
|
|
<details>
|
|
|
|
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Ander maniere om HackTricks te ondersteun:
|
|
|
|
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
|
|
|
|
</details>
|
|
|
|
## Leiding en lys van hulpmiddels
|
|
|
|
* [**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)
|
|
|
|
## Veeltalige hulpmiddels
|
|
|
|
### [Naxus - AI-Gents](https://www.naxusai.com/)
|
|
|
|
Daar is 'n **gratis pakket om PR's te oorsien**.
|
|
|
|
### [**Semgrep**](https://github.com/returntocorp/semgrep)
|
|
|
|
Dit is 'n **Open Source-hulpmiddel**.
|
|
|
|
#### Ondersteunde tale
|
|
|
|
| Kategorie | Tale |
|
|
| ------------ | ----------------------------------------------------------------------------------------------------- |
|
|
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
|
|
| Beta | Kotlin · Rust |
|
|
| Experimental | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
|
|
|
|
#### Vinnige Begin
|
|
|
|
{% code overflow="wrap" %}
|
|
```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
|
|
```
|
|
{% endcode %}
|
|
|
|
Jy kan ook die [**semgrep VSCode-uitbreiding**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) gebruik om die bevindinge binne VSCode te kry.
|
|
|
|
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
|
|
|
|
Daar is 'n installeerbare **gratis weergawe**.
|
|
|
|
#### Vinnige Begin
|
|
|
|
{% 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 \
|
|
-Dsonar.projectKey=<project-name> \
|
|
-Dsonar.sources=. \
|
|
-Dsonar.host.url=http://localhost:9000 \
|
|
-Dsonar.token=<sonar_project_token>
|
|
```
|
|
{% endcode %}
|
|
|
|
### CodeQL
|
|
|
|
Daar is 'n **installeerbare gratis weergawe**, maar volgens die lisensie kan jy die **gratis CodeQL-weergawe slegs in Open Source projekte gebruik**.
|
|
|
|
#### Installeer
|
|
|
|
{% 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
|
|
|
|
# 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
|
|
```
|
|
{% endcode %}
|
|
|
|
#### Vinnige Begin - Maak die databasis gereed
|
|
|
|
{% hint style="success" %}
|
|
Die eerste ding wat jy moet doen is om die databasis gereed te maak (skep die kodeboom) sodat die navrae later daaroor uitgevoer kan word.
|
|
{% endhint %}
|
|
|
|
* Jy kan codeql toelaat om outomaties die taal van die repo te identifiseer en die databasis te skep
|
|
|
|
{% 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" %}
|
|
Dit sal gewoonlik 'n fout veroorsaak wat sê dat meer as een taal gespesifiseer is (of outomaties opgespoor is). Kyk na die volgende opsies om dit reg te stel!
|
|
{% endhint %}
|
|
|
|
* Jy kan dit **handmatig aandui** deur die **repo** en die **taal** ([lys van tale](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))
|
|
```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 %}
|
|
|
|
* As jou repo **meer as 1 taal** gebruik, kan jy ook **1 DB per taal** skep wat elke taal aandui.
|
|
|
|
{% 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 %}
|
|
|
|
* Jy kan ook `codeql` toelaat om **alle tale te identifiseer** en 'n databasis per taal te skep. Jy moet dit 'n **GITHUB\_TOKEN** gee.
|
|
|
|
{% 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 %}
|
|
|
|
#### Vinnige Begin - Ontleed die kode
|
|
|
|
{% hint style="success" %}
|
|
Nou is dit eindelik tyd om die kode te ontleed
|
|
{% endhint %}
|
|
|
|
Onthou dat as jy verskeie tale gebruik het, **'n DB per taal** in die pad wat jy gespesifiseer het, geskep sou wees.
|
|
|
|
{% 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> \
|
|
<qls pack> --sarif-category=<language> \
|
|
--sarif-add-baseline-file-info \ --format=<format> \
|
|
--output=/out/file/path>
|
|
# Example
|
|
codeql database analyze /tmp/codeql_db \
|
|
javascript-security-extended --sarif-category=javascript \
|
|
--sarif-add-baseline-file-info --format=sarif-latest \
|
|
--output=/tmp/sec-extended.sarif
|
|
```
|
|
{% endcode %}
|
|
|
|
#### Vinnige Begin - Geskript
|
|
|
|
{% 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
|
|
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 %}
|
|
|
|
Jy kan die bevindinge visualiseer in [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) of deur die gebruik van die VSCode-uitbreiding [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
|
|
|
|
Jy kan ook die [**VSCode-uitbreiding**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) gebruik om die bevindinge binne VSCode te kry. Jy sal steeds 'n databasis handmatig moet skep, maar dan kan jy enige lêers kies en klik op `Right Click` -> `CodeQL: Run Queries in Selected Files`
|
|
|
|
### [**Snyk**](https://snyk.io/product/snyk-code/)
|
|
|
|
Daar is 'n **installeerbare gratis weergawe**.
|
|
|
|
#### Vinnige Begin
|
|
```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
|
|
```
|
|
Jy kan ook die [**snyk VSCode-uitbreiding**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) gebruik om bevindings binne VSCode te kry.
|
|
|
|
### [Insider](https://github.com/insidersec/insider)
|
|
|
|
Dit is **Open Source**, maar lyk **ongeonderhou**.
|
|
|
|
#### Ondersteunde Tale
|
|
|
|
Java (Maven en Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, en Javascript (Node.js).
|
|
|
|
#### Vinnige Begin
|
|
```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
|
|
$ tar -xf insider_2.1.0_linux_x86_64.tar.gz
|
|
$ chmod +x insider
|
|
$ ./insider --tech javascript --target <projectfolder>
|
|
```
|
|
### [**DeepSource**](https://deepsource.com/pricing) 
|
|
|
|
Gratis vir **openbare repos**.
|
|
|
|
## 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)**:** Statische sekuriteitskode-skander (SAST) vir Node.js-toepassings aangedryf deur [libsast](https://github.com/ajinabraham/libsast) en [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)**:** Die doel van Retire.js is om jou te help om die gebruik van JS-biblioteek weergawes met bekende kwesbaarhede op te spoor.
|
|
```bash
|
|
# Install
|
|
npm install -g retire
|
|
# Run
|
|
cd /path/to/repo
|
|
retire --colors
|
|
```
|
|
## Electron
|
|
|
|
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** Dit is 'n instrument om verkeerde konfigurasies en sekuriteitsantipatrone in Electron-gebaseerde toepassings te identifiseer.
|
|
|
|
## Python
|
|
|
|
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit is 'n instrument wat ontwerp is om algemene sekuriteitsprobleme in Python-kode te vind. Om dit te doen, verwerk Bandit elke lêer, bou 'n AST daaruit en voer toepaslike invoegtoepassings teen die AST-knoppies uit. Nadat Bandit klaar is met die skandering van al die lêers, genereer dit 'n verslag.
|
|
```bash
|
|
# Install
|
|
pip3 install bandit
|
|
|
|
# Run
|
|
bandit -r <path to folder>
|
|
```
|
|
* [**veiligheid**](https://github.com/pyupio/safety): Safety kontroleer Python afhanklikhede vir bekende sekuriteitskwesbaarhede en stel die regte herstelmaatreëls voor vir opgespoorde kwesbaarhede. Safety kan op ontwikkelaarsmasjiene, in CI/CD-pyplyne en op produksiestelsels uitgevoer word.
|
|
```bash
|
|
# Install
|
|
pip install safety
|
|
# Run
|
|
safety check
|
|
```
|
|
* [~~**Pyt**~~](https://github.com/python-security/pyt): Ononderhoud.
|
|
|
|
## .NET
|
|
```bash
|
|
# dnSpy
|
|
https://github.com/0xd4d/dnSpy
|
|
|
|
# .NET compilation
|
|
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe test.cs
|
|
```
|
|
## RUST
|
|
|
|
RUST is 'n veilige, betroubare en hoë prestasie programmeertaal wat geskik is vir die ontwikkeling van betroubare en effektiewe sagteware. Dit is ontwerp om geheueveiligheid, geloopstydprestasie en geloopstydveiligheid te verseker. RUST maak gebruik van 'n streng statiese tipe-sisteem en 'n eienaar-gebaseerde geheuebestuurmodel om geheuelekke en data-rasse te voorkom.
|
|
|
|
RUST bied 'n aantal kenmerke wat dit 'n gewilde keuse maak vir die ontwikkeling van veilige sagteware. Dit sluit in:
|
|
|
|
- **Nul-koste abstraksies**: RUST maak dit moontlik om hoëvlak abstraksies te gebruik sonder om enige merkbare impak op die uitvoeringstyd te hê nie.
|
|
- **Geheueveiligheid**: RUST se streng statiese tipe-sisteem en eienaar-gebaseerde geheuebestuurmodel help om geheuelekke en data-rasse te voorkom.
|
|
- **Thread-veiligheid**: RUST maak dit maklik om veilige, geloopstydveilige veelvoudige drade te skryf sonder om handmatige sinkronisasie te gebruik.
|
|
- **Concurrency**: RUST bied 'n stelsel vir veilige en effektiewe gelyktydige programmering.
|
|
- **Betroubaarheid**: RUST se statiese tipe-sisteem en streng kompilering help om foute vroeg in die ontwikkelingsproses op te spoor en te voorkom.
|
|
- **Prestasie**: RUST is ontwerp om hoë prestasie te lewer sonder om in te boet aan veiligheid of abstraksievlak.
|
|
|
|
RUST het 'n aktiewe gemeenskap en 'n ryk ekosisteem van biblioteke en gereedskap wat die ontwikkeling van sagteware vergemaklik. Dit word algemeen gebruik vir die ontwikkeling van stelselsagteware, netwerkprotokolle, bedryfstelsels en ander kritieke toepassings.
|
|
```bash
|
|
# Install
|
|
cargo install cargo-audit
|
|
|
|
# Run
|
|
cargo audit
|
|
|
|
#Update the Advisory Database
|
|
cargo audit fetch
|
|
```
|
|
## Java
|
|
|
|
Java is 'n populaire programmeertaal wat gebruik word vir die ontwikkeling van verskeie toepassings, insluitend webtoepassings. Dit is 'n objekgeoriënteerde taal wat platformonafhanklik is, wat beteken dat dit op verskillende bedryfstelsels kan hardloop sonder om die kode te verander. Dit maak gebruik van 'n virtuele masjien (VM) om die kode uit te voer.
|
|
|
|
### Java-kodehersieningsgereedskap
|
|
|
|
Hier is 'n paar gereedskap wat gebruik kan word vir die hersiening van Java-kode:
|
|
|
|
- **Checkstyle**: 'n gereedskap wat gebruik word om die kode te hersien en te verseker dat dit voldoen aan 'n spesifieke kodekonvensie.
|
|
- **FindBugs**: 'n statiese analisewerktuig wat gebruik word om potensiële programmeerfoute in Java-kode te identifiseer.
|
|
- **PMD**: 'n gereedskap wat gebruik word om kode te analiseer en potensiële probleme en swak praktyke te identifiseer.
|
|
- **SonarQube**: 'n platform wat gebruik word vir die kontinue hersiening van kode, met 'n fokus op die identifisering van kwessies en die bevordering van kodekwaliteit.
|
|
- **SpotBugs**: 'n opvolger van FindBugs wat gebruik word om potensiële programmeerfoute in Java-kode te identifiseer.
|
|
|
|
Dit is slegs 'n paar voorbeelde van gereedskap wat beskikbaar is vir die hersiening van Java-kode. Dit is belangrik om die regte gereedskap te kies wat aan jou spesifieke behoeftes voldoen.
|
|
```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
|
|
```
|
|
| Taak | Opdrag |
|
|
| --------------- | --------------------------------------------------------- |
|
|
| Voer Jar uit | java -jar \[jar] |
|
|
| Ontplooi Jar | unzip -d \[uitvoer gids] \[jar] |
|
|
| Skep Jar | jar -cmf META-INF/MANIFEST.MF \[uitvoer jar] \* |
|
|
| Base64 SHA256 | sha256sum \[lêer] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
|
|
| Verwyder Ondertekening | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
|
|
| Verwyder uit Jar | zip -d \[jar] \[lêer om te verwyder] |
|
|
| Ontsleutel klas | procyon -o . \[pad na klas] |
|
|
| Ontsleutel Jar | procyon -jar \[jar] -o \[uitvoer gids] |
|
|
| Kompileer klas | javac \[pad na .java lêer] |
|
|
|
|
## Gaan
|
|
```bash
|
|
https://github.com/securego/gosec
|
|
```
|
|
## PHP
|
|
|
|
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) en [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
|
|
|
|
### Wordpress Plugins
|
|
|
|
[https://www.pluginvulnerabilities.com/plugin-security-checker/](https://www.pluginvulnerabilities.com/plugin-security-checker/)
|
|
|
|
## Solidity
|
|
|
|
* [https://www.npmjs.com/package/solium](https://www.npmjs.com/package/solium)
|
|
|
|
## JavaScript
|
|
|
|
### Ontdekking
|
|
|
|
1. Burp:
|
|
* Spider en ontdek inhoud
|
|
* Sitemap > filter
|
|
* Sitemap > klik met rechtermuisknop op domein > Engagement tools > Vind scripts
|
|
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
|
|
* `waybackurls <domein> |grep -i "\.js" |sort -u`
|
|
|
|
### Statische Analyse
|
|
|
|
#### Unminimize/Beautify/Prettify
|
|
|
|
* [https://prettier.io/playground/](https://prettier.io/playground/)
|
|
* [https://beautifier.io/](https://beautifier.io/)
|
|
|
|
#### Deobfuscate/Unpack
|
|
|
|
**Opmerking**: Dit is mogelijk niet volledig deobfuscateerbaar.
|
|
|
|
1. Vind en gebruik .map-bestanden:
|
|
* Als de .map-bestanden blootgesteld zijn, kunnen ze gemakkelijk worden gebruikt om te deobfuscate.
|
|
* Vaak wordt foo.js.map gemapt naar foo.js. Zoek er handmatig naar.
|
|
* Gebruik [JS Miner](https://github.com/PortSwigger/js-miner) om ernaar te zoeken.
|
|
* Zorg ervoor dat er een actieve scan wordt uitgevoerd.
|
|
* Lees '[Tips/Notes](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
|
|
* Als ze gevonden zijn, gebruik [Maximize](https://www.npmjs.com/package/maximize) om te deobfuscate.
|
|
2. Zonder .map-bestanden, probeer JSnice:
|
|
* Referenties: http://jsnice.org/ & https://www.npmjs.com/package/jsnice
|
|
* Tips:
|
|
* Als je jsnice.org gebruikt, klik dan op de optieknop naast de "Nicify JavaScript" knop en deselecteer "Infer types" om de code niet te overladen met opmerkingen.
|
|
* Zorg ervoor dat je geen lege regels achterlaat voor het script, omdat dit het deobfuscation proces kan beïnvloeden en onnauwkeurige resultaten kan geven.
|
|
3. Gebruik console.log();
|
|
* Vind de retourwaarde aan het einde en verander deze in `console.log(<packerReturnVariable>);` zodat de deobfuscated js wordt afgedrukt in plaats van uitgevoerd.
|
|
* Plak vervolgens de aangepaste (en nog steeds geobfusceerde) js in https://jsconsole.com/ om de deobfuscated js in de console te zien.
|
|
* Plak tenslotte de deobfuscated output in https://prettier.io/playground/ om het te verfraaien voor analyse.
|
|
* **Opmerking**: Als je nog steeds verpakte (maar verschillende) js ziet, kan het recursief verpakt zijn. Herhaal het proces.
|
|
|
|
Referenties
|
|
|
|
* 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
|
|
|
|
Tools
|
|
|
|
* https://portswigger.net/burp/documentation/desktop/tools/dom-invader
|
|
|
|
#### Minder Gebruikte Referenties
|
|
|
|
* https://cyberchef.org/
|
|
* https://olajs.com/javascript-prettifier
|
|
* https://jshint.com/
|
|
* https://github.com/jshint/jshint/
|
|
|
|
<details>
|
|
|
|
<summary><strong>Leer AWS hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere manieren om HackTricks te ondersteunen:
|
|
|
|
* Als je je **bedrijf geadverteerd wilt zien in HackTricks** of **HackTricks in PDF wilt downloaden**, bekijk dan de [**ABONNEMENTSPLANNEN**](https://github.com/sponsors/carlospolop)!
|
|
* Koop de [**officiële PEASS & HackTricks merchandise**](https://peass.creator-spring.com)
|
|
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), onze collectie exclusieve [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Doe mee aan de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Deel je hacktrucs door PR's in te dienen bij de** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
|
|
|
|
</details>
|