🗿Analyse statique

Revue de code

Méthodologie

  1. Récupérer des fichiers via le filtre d'extension burp suite, via les outils de développement du navigateur ou via la waybackmachine et autres outils.

  2. Utiliser un beautifer de code pour le rendre lisible si il est obfusqué.

  3. Rechercher des liens relatifs pour augmenter votre surface d'attaque

  4. Rechercher des secrets (api, password, token etc)

  5. Rechercher des mauvaises pratiques et fonctions sensibles dans le code (innerHTML, dangerouslytSetInnerHTML, bypassSecurityTrust, eval, window.postMessage, window.localStorage, window.sessionStorage...)

  6. Vérifier les versions utilisées à la recherches de CVE connues.

  7. Rechercher des mécanismes de chiffrement faibles.

  8. Rechercher des commentaires de développeurs interessants

  9. Rechercher des endpoint de debug (peu mener à des élévations de privilèges)

  10. Rechercher des fichiers de backup et de config (.conf, .env, .cnf, .cfg, .cf, .ini, .sys, .plist...)

Autres méthodologies (Demande plus d'expertise)

Focus sur les fonctions importantes

Cette méthodologie vise à vérifier en priorités les fonctions sensibles types fonctions d'authentification, fonctions de reset de mot de passe, fonctions de changement d'état etc.

Focus sur les entrées utilisateurs

Une autre approche consiste à lire attentivement le code qui traite les entrées de l'utilisateur. Les paramètres de requête HTTP, les en-têtes HTTP, HTTP les chemins de requête, les entrées de base de données, les lectures de fichiers et les téléchargements de fichiers fournissent les points d'entrés principaux aux attaquants pour exploiter les vulnérabilités de l'application.

Outils

OWASP Benchmark

Semgrep

Semgrep est un analyseur de code source qui se base sur des règles "grep" pour détecter des patterns potentiellement vulnérables. A l'image de nuclei, c'est un outil pour lequel la communauté peut créer et partager ses propres régles etc.

Ressources:

Relative Url Extractor

relative-url-extractor est un script ruby permettant d'extraire les chemins relatifs d'un fichier.

exemple d'utilisation:

$ cat file.js | ./extractor.rb

ressource: https://github.com/jobertabma/relative-url-extractorarrow-up-right

DumpsterDiver

DumpsterDiver est un outil d'analyse statique dans divers fichiers

exemple d'utilisation:

$ python3 DumpsterDiver.py -p /path/to/file.js

ressource: https://github.com/securing/DumpsterDiverarrow-up-right

circle-exclamation

Vous pouvez aussi utiliser grep, awk ou sed pour faire ces recherches manuellement.

Jsprime

Jsprime est un outil d'analyse statique permettant de scanner un code javascript à la recherches de mauvaises pratiques de développement.

Utilisation:

  1. Ouvrir "index.html"

  2. coller le code javascript

  3. cliquer sur scanner

  4. voir les resultats dans "report.html"

ressource: https://github.com/dpnishant/jsprimearrow-up-right

Sourcemapper

Extracteur des arborescences source JavaScript des fichiers Sourcemap.

Exemple d'utilisation:

ressource: https://github.com/denandz/sourcemapperarrow-up-right

Graudit

Graudit est un outil permettant de faire des grep en masse en utilisant des bases de données de signatures.

Exemple d'utilisation:

$ graudit /path/to/project

ressource: https://github.com/wireghoul/grauditarrow-up-right

Mis à jour