🗿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.

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-extractor

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/DumpsterDiver

Si vous avez une erreur avec la lib multiprocessing, ajoutez un time.sleep(1) après le "while" dans le script core.py:

p = multiprocessing.Pool(multiprocessing.cpu_count())

while queue.qsize():

time.sleep(1)

p.apply_async(worker, (queue,result,settings))

queue.join(

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/jsprime

Sourcemapper

Extracteur des arborescences source JavaScript des fichiers Sourcemap.

Exemple d'utilisation:

$ ./sourcemapper -output dhubsrc -url https://hub.docker.com/public/js/client.356c14916fb23f85707f.js.map

ressource: https://github.com/denandz/sourcemapper

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/graudit

Dernière mise à jour