mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 07:01:09 +00:00
497 lines
21 KiB
Markdown
497 lines
21 KiB
Markdown
# Revue de code source / Outils SAST
|
|
|
|
<details>
|
|
|
|
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Autres moyens de soutenir HackTricks :
|
|
|
|
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
|
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
|
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
## Orientation et listes d'outils
|
|
|
|
* [**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)
|
|
|
|
## Outils multi-langages
|
|
|
|
### [Naxus - AI-Gents](https://www.naxusai.com/)
|
|
|
|
Il existe un **forfait gratuit pour la revue des PR**.
|
|
|
|
### [**Semgrep**](https://github.com/returntocorp/semgrep)
|
|
|
|
C'est un **outil Open Source**.
|
|
|
|
#### Langages pris en charge
|
|
|
|
| Catégorie | Langages |
|
|
| ------------ | ----------------------------------------------------------------------------------------------------- |
|
|
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
|
|
| Beta | Kotlin · Rust |
|
|
| Expérimental | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
|
|
|
|
#### Démarrage rapide
|
|
|
|
{% 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
|
|
```
|
|
Vous pouvez également utiliser l'[**extension semgrep VSCode**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) pour obtenir les résultats directement dans VSCode.
|
|
|
|
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
|
|
|
|
Il existe une **version gratuite** installable.
|
|
|
|
#### Démarrage rapide
|
|
|
|
{% 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>
|
|
```
|
|
### CodeQL
|
|
|
|
Il existe une **version gratuite installable** mais selon la licence, vous pouvez **utiliser la version gratuite de CodeQL uniquement dans des projets Open Source**.
|
|
|
|
#### Installation
|
|
|
|
{% 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
|
|
```
|
|
#### Démarrage rapide - Préparer la base de données
|
|
|
|
{% hint style="success" %}
|
|
La première chose à faire est de **préparer la base de données** (créer l'arborescence du code) pour que les requêtes puissent ensuite être exécutées dessus.
|
|
{% endhint %}
|
|
|
|
* Vous pouvez permettre à codeql d'identifier automatiquement la langue du dépôt et de créer la base de données
|
|
|
|
{% 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" %}
|
|
Cela **déclenchera généralement une erreur** indiquant qu'une langue a été spécifiée ou détectée automatiquement. **Vérifiez les options suivantes** pour corriger cela !
|
|
{% endhint %}
|
|
|
|
* Vous pouvez le faire **manuellement en indiquant** le **repo** et la **langue** ([liste des langues](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 %}
|
|
|
|
* Si votre dépôt utilise **plus d'une langue**, vous pouvez également créer **1 base de données par langue** en indiquant chaque langue.
|
|
|
|
{% 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 %}
|
|
|
|
* Vous pouvez également permettre à `codeql` **d'identifier toutes les langues** pour vous et de créer une base de données par langue. Vous devez lui fournir un **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/*
|
|
```
|
|
#### Démarrage rapide - Analyser le code
|
|
|
|
{% hint style="success" %}
|
|
Il est enfin temps d'analyser le code
|
|
{% endhint %}
|
|
|
|
Souvenez-vous que si vous avez utilisé plusieurs langages, **une DB par langage** aurait été créée dans le chemin que vous avez spécifié.
|
|
|
|
{% 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
|
|
```
|
|
#### Démarrage rapide - Scripté
|
|
|
|
{% 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
|
|
```
|
|
```markdown
|
|
{% endcode %}
|
|
|
|
Vous pouvez visualiser les résultats sur [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) ou en utilisant l'extension VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
|
|
|
|
Vous pouvez également utiliser l'[**extension VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) pour obtenir les résultats directement dans VSCode. Vous devrez toujours créer une base de données manuellement, mais ensuite vous pouvez sélectionner n'importe quels fichiers et cliquer sur `Clic Droit` -> `CodeQL: Exécuter les requêtes dans les fichiers sélectionnés`
|
|
|
|
### [**Snyk**](https://snyk.io/product/snyk-code/)
|
|
|
|
Il existe une **version gratuite installable**.
|
|
|
|
#### Démarrage Rapide
|
|
```
|
|
```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
|
|
```
|
|
Vous pouvez également utiliser l'[**extension snyk VSCode**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) pour obtenir des résultats directement dans VSCode.
|
|
|
|
### [Insider](https://github.com/insidersec/insider)
|
|
|
|
C'est **Open Source**, mais semble **non maintenu**.
|
|
|
|
#### Langages pris en charge
|
|
|
|
Java (Maven et Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, et Javascript (Node.js).
|
|
|
|
#### Démarrage rapide
|
|
```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) 
|
|
|
|
Gratuit pour les **répertoires publics**.
|
|
|
|
## 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)**:** Scanner statique de sécurité du code (SAST) pour les applications Node.js alimenté par [libsast](https://github.com/ajinabraham/libsast) et [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)**:** L'objectif de Retire.js est de vous aider à détecter l'utilisation de versions de bibliothèques JS comportant des vulnérabilités connues.
|
|
```bash
|
|
# Install
|
|
npm install -g retire
|
|
# Run
|
|
cd /path/to/repo
|
|
retire --colors
|
|
```
|
|
## Electron
|
|
|
|
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** C'est un outil pour identifier les mauvaises configurations et les anti-patterns de sécurité dans les applications basées sur Electron.
|
|
|
|
## Python
|
|
|
|
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit est un outil conçu pour trouver les problèmes de sécurité courants dans le code Python. Pour cela, Bandit traite chaque fichier, construit un AST à partir de celui-ci, et exécute les plugins appropriés contre les nœuds de l'AST. Une fois que Bandit a terminé l'analyse de tous les fichiers, il génère un rapport.
|
|
```bash
|
|
# Install
|
|
pip3 install bandit
|
|
|
|
# Run
|
|
bandit -r <path to folder>
|
|
```
|
|
* [**safety**](https://github.com/pyupio/safety) : Safety vérifie les dépendances Python pour détecter les vulnérabilités de sécurité connues et suggère les remédiations appropriées pour les vulnérabilités détectées. Safety peut être exécuté sur les machines des développeurs, dans les pipelines CI/CD et sur les systèmes de production.
|
|
```bash
|
|
# Install
|
|
pip install safety
|
|
# Run
|
|
safety check
|
|
```
|
|
* [~~**Pyt**~~](https://github.com/python-security/pyt) : Non maintenu.
|
|
|
|
## .NET
|
|
```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
|
|
```
|
|
## Java
|
|
```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
|
|
```
|
|
| 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 Signature | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
|
|
| Supprimer de Jar | zip -d \[jar] \[fichier à supprimer] |
|
|
| Décompiler classe | procyon -o . \[chemin vers la classe] |
|
|
| Décompiler Jar | procyon -jar \[jar] -o \[répertoire de sortie] |
|
|
| Compiler classe | javac \[chemin vers le fichier .java] |
|
|
|
|
## Go
|
|
```bash
|
|
https://github.com/securego/gosec
|
|
```
|
|
## PHP
|
|
|
|
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) et [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
|
|
|
|
### Plugins Wordpress
|
|
|
|
[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
|
|
|
|
### Découverte
|
|
|
|
1. Burp :
|
|
* Explorer et découvrir le contenu
|
|
* Plan du site > filtrer
|
|
* Plan du site > clic droit sur le domaine > Outils d'engagement > Trouver des scripts
|
|
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls) :
|
|
* `waybackurls <domain> |grep -i "\.js" |sort -u`
|
|
|
|
### Analyse Statique
|
|
|
|
#### Déminifier/Embellir
|
|
|
|
* [https://prettier.io/playground/](https://prettier.io/playground/)
|
|
* [https://beautifier.io/](https://beautifier.io/)
|
|
|
|
#### Désobfusquer/Décompresser
|
|
|
|
**Note** : Il se peut qu'il ne soit pas possible de désobfusquer complètement.
|
|
|
|
1. Trouver et utiliser les fichiers .map :
|
|
* Si les fichiers .map sont exposés, ils peuvent être utilisés pour désobfusquer facilement.
|
|
* Généralement, foo.js.map correspond à foo.js. Cherchez-les manuellement.
|
|
* Utilisez [JS Miner](https://github.com/PortSwigger/js-miner) pour les rechercher.
|
|
* Assurez-vous de réaliser un scan actif.
|
|
* Lisez '[Conseils/Notes](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
|
|
* Si trouvé, utilisez [Maximize](https://www.npmjs.com/package/maximize) pour désobfusquer.
|
|
2. Sans fichiers .map, essayez JSnice :
|
|
* Références : http://jsnice.org/ & https://www.npmjs.com/package/jsnice
|
|
* Conseils :
|
|
* Si vous utilisez jsnice.org, cliquez sur le bouton 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ésobfuscation et donner des résultats inexacts.
|
|
3. Utilisez console.log() ;
|
|
* Trouvez la valeur de retour à la fin et changez-la en `console.log(<packerReturnVariable>);` pour que le js désobfusqué soit imprimé au lieu d'être exécuté.
|
|
* Ensuite, collez le js modifié (et toujours obfusqué) dans https://jsconsole.com/ pour voir le js désobfusqué enregistré dans la console.
|
|
* Enfin, collez le résultat désobfusqué dans https://prettier.io/playground/ pour l'embellir pour l'analyse.
|
|
* **Note** : Si vous voyez toujours du js empaqueté (mais différent), il se peut qu'il soit empaqueté de manière récursive. Répétez le processus.
|
|
|
|
#### Analyser
|
|
|
|
Références : https://medium.com/techiepedia/guide-de-revue-de-code-javascript-pour-les-chasseurs-de-primes-informatiques-c95a8aa7037a
|
|
|
|
Recherchez :
|
|
|
|
* Chargement anti-débogage
|
|
* Angular : [enableProdMode](https://blog.nvisium.com/angular-for-pentesters-part-2)
|
|
* Secrets
|
|
* Utilisez :
|
|
* [JS Miner](https://github.com/PortSwigger/js-miner)
|
|
* Modèles [RegHex](https://github.com/l4yton/RegHex)
|
|
* Modèles [gf](https://github.com/tomnomnom/gf/tree/master/examples)
|
|
* Grep des modèles de dictionnaire pertinents :
|
|
* pass, user, admin
|
|
* auth, login, sign, challenge, 2fa
|
|
* key, apikey, api\_key, api-key, jwt, token
|
|
* secret, security, secure
|
|
* ...
|
|
* Révision manuelle
|
|
* Si clé API trouvée, vérifiez ici pour la syntaxe d'utilisation potentielle : https://github.com/streaak/keyhacks.
|
|
* Fonctions vulnérables
|
|
* InnerHTML() - Si vous trouvez cela, cela signifie qu'il y a une chance potentielle pour XSS si aucune sanitisation appropriée n'est effectuée. Même si votre payload est sanitised, ne vous inquiétez pas. Tracez le code pour découvrir où la sanitisation a lieu. Étudiez-le et essayez de contourner la sanitisation.
|
|
* Postmessage() - Si vous avez lu mon post précédent (https://medium.com/techiepedia/what-are-sop-cors-and-ways-to-exploit-it-62a5e02100dc), vous remarquerez que Postmessage() pourrait conduire à un problème CORS potentiel. Si le deuxième paramètre de la fonction est défini sur \*, vous avez de la chance. Consultez mon post précédent pour comprendre davantage le mécanisme derrière.
|
|
* String.prototype.search() - Cette fonction semble normale. Pourquoi serait-elle une fonction dangereuse ? Eh bien, c'est parce que certains développeurs l'ont utilisée pour trouver l'occurrence d'une chaîne à l'intérieur d'une autre chaîne. Cependant, "." est traité comme un joker dans cette fonction. Donc, si cette fonction est utilisée comme vérification de sanitisation, vous pouvez simplement la contourner en entrant ".". Consultez le rapport hackerone de Filedescryptor : https://hackerone.com/reports/129873
|
|
* Points de terminaison & paramètres
|
|
* Utilisez [LinkFinder](https://github.com/GerbenJavado/LinkFinder) & [JS Miner](https://github.com/PortSwigger/js-miner).
|
|
* Libs & dépendances vulnérables
|
|
* Utilisez [Retire.js](https://retirejs.github.io/retire.js/) et [NPM](https://snyk.io/advisor/) (faites défiler vers le bas jusqu'à la section sécurité > lien toutes les versions).
|
|
* URLs Cloud
|
|
* Utilisez [JS Miner](https://github.com/PortSwigger/js-miner).
|
|
* Sous-domaines
|
|
* Utilisez [JS Miner](https://github.com/PortSwigger/js-miner).
|
|
* Failles logiques
|
|
* Acquérir une conscience situationnelle :
|
|
* `use strict;` ?
|
|
* Grep pour les contrôles côté client :
|
|
* disable, enable, hidden, hide, show
|
|
* catch, finally, throw, try
|
|
* input, validate, verify, valid, correct, check, confirm, require, ..
|
|
* Grep pour les non-primitifs :
|
|
* function , =>
|
|
* class
|
|
|
|
### Analyse Dynamique
|
|
|
|
Références
|
|
|
|
* 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
|
|
|
|
Outils
|
|
|
|
* https://portswigger.net/burp/documentation/desktop/tools/dom-invader
|
|
|
|
#### Références Moins Utilisées
|
|
|
|
* https://cyberchef.org/
|
|
* https://olajs.com/javascript-prettifier
|
|
* https://jshint.com/
|
|
* https://github.com/jshint/jshint/
|
|
|
|
<details>
|
|
|
|
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Autres moyens de soutenir HackTricks :
|
|
|
|
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
|
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
|
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
|
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|