Votre code tient dans un dépôt. Votre surface d'attaque tient dans node_modules.

Audit de code et test d'intrusion ciblés de vos applications Node.js : prototype pollution, injection NoSQL, injection de commande et JWT. Chaque faille démontrée, aucune alerte brute.

Node.js

L'asynchrone cache des failles que les scanners ratent.

Une prototype pollution qui remonte jusqu'à une RCE, un opérateur Mongo injecté dans un filtre, un child_process.exec sur une entrée, un JWT en alg: none : les failles Node tiennent au détail. Je lis le code et la chaîne de dépendances, pas seulement les réponses HTTP.

Express · NestJS · Fastify API & temps réel Node 16 → dernières

Ce que couvre l'audit Node.js.

Les classes de failles les plus fréquentes sur une application Node.js réelle, testées à la main sur votre code et vos endpoints. OWASP WSTG + API Top 10, en authentifié comme en non authentifié.

Périmètre testé06 classes de failles
01

Prototype pollution

merge / clone non sûrs, escalade vers déni de service ou RCE

02

Injection NoSQL

opérateurs Mongo injectés, $where, filtres non typés

03

Injection de commande

child_process.exec, arguments non échappés

04

SSTI & templates

Pug, EJS, Handlebars sur entrée utilisateur

05

JWT & autorisation

alg: none, secret faible, IDOR, contrôle d'accès

06

SSRF, ReDoS & dépendances

SSRF, expressions catastrophiques, chaîne d'approvisionnement npm

Audit de code

L'audit de code Node.js, quand les sources sont sur la table.

Un test en boîte noire trouve ce qui s'exploite depuis l'extérieur. Un audit de code Node.js trouve en plus ce qui n'est pas encore atteignable : la route oubliée derrière un feature flag, le middleware d'authentification court-circuité par un next(), l'eval resté dans un script de migration. Sur une base Node, les deux se complètent — et l'accès au dépôt rend le test nettement plus rapide.

Je lis votre code JavaScript ou TypeScript, je remonte le chemin de chaque entrée utilisateur jusqu'aux fonctions dangereuses, puis j'exploite ce que je trouve sur une instance de test. Une faille compte quand elle est prouvée, pas quand un outil la signale.

Dépendances npm

package-lock.json lu ligne à ligne, paquets abandonnés, chaîne d'approvisionnement

Secrets & configuration

clés en dur, .env versionné, CORS et cookies trop permissifs

Contrôle d'accès

middleware contourné, routes non protégées, IDOR visible dans la requête

Entrées non validées

chemin de la donnée jusqu'à exec, eval ou un filtre Mongo

Code mort & endpoints oubliés

routes de debug, back-office interne resté joignable en production

Correctif au niveau du code

le patch proposé sur votre fichier, pas une recommandation générique

Vous cherchez la même revue sur une autre stack ? Voir l'audit de code toutes technologies.

Du dépôt au contre-test.

Cadrage, test, rapport, contre-test. Vous savez à tout moment ce qui a été couvert sur votre app Node.js et ce qu'il reste à passer. Prix fixe défini au cadrage.

  1. ~ 1 appel

    Cadrage

    Un court appel, un prix fixe, des règles d'engagement écrites. Le runtime et le périmètre sont notés ici.

  2. 5–10 jours

    Test

    Exploitation manuelle des classes de failles propres à cette stack, en plus du parcours OWASP complet. Le critique part le jour même.

  3. 48 h

    Rapport

    Chaque faille : criticité, reproduction pas à pas, impact réel, et le correctif au niveau du code. Vos devs corrigent sans me relancer.

  4. gratuit · 30 j

    Contre-test

    Vous patchez, je rejoue chaque faille et délivre l'attestation. Compris dans le forfait.

Quand auditer une application Node.js.

Un pentest n'attend pas l'incident. Les cas les plus courants quand une équipe Node m'écrit.

Avant de signer

  • Un client grand compte exige une preuve de test avant de signer
  • Une levée de fonds et sa due diligence technique approchent

Avant de mettre en ligne

  • Une montée de version Node ou une refonte d'API change la surface
  • Vous éclatez un monolithe Express en services séparés : chaque appel interne devient une surface
  • Une dépendance npm critique compromise ou un audit de chaîne d'approvisionnement

Avant d'en répondre

  • Une revue SOC 2 / ISO 27001 réclame un pentest annuel
  • Un doute sur un JWT, une injection NoSQL ou une prototype pollution

Questions sur l'audit Node.js.

Les vraies questions d'un premier appel de cadrage sur une application Node. Si la vôtre manque, elle a sa réponse en un e-mail.

Express, NestJS ou Fastify ?

Les trois, plus Koa et les apps temps réel (WebSocket / Socket.io). Le périmètre s'adapte à votre runtime.

Analysez-vous les dépendances npm ?

Oui. La chaîne d'approvisionnement et les paquets vulnérables font partie de la surface d'attaque.

Avez-vous besoin du code ?

La boîte grise aide sur la prototype pollution et les injections, mais le test boîte noire reste possible.

Audit de code Node.js ou test d'intrusion ?

Les deux se vendent séparément, et se combinent bien. Le test d'intrusion mesure ce qu'un attaquant obtient depuis l'extérieur ; l'audit de code ouvre le dépôt et couvre ce qui n'est pas encore exposé. Sur un budget serré et une application déjà en ligne, je commence par le test.

Comment se passe l'accès au dépôt ?

Un accès en lecture seule sur votre Git, ou une archive. NDA signé avant tout accès, aucune copie conservée après la mission. TypeScript comme JavaScript, monorepo compris.

TypeScript change quelque chose ?

Le typage réduit certains bugs, pas les failles de logique, d'auth ou d'injection. Le test reste tout aussi pertinent.

Le prix dépend-il de la taille du dépôt ?

Du périmètre exposé, surtout : nombre d'écrans, de rôles et d'endpoints. Un gros dépôt avec trois rôles se teste plus vite qu'un petit dépôt qui en compte douze. Forfait fixe, jamais de TJM, validé avant que je commence.

Et après le déploiement des correctifs ?

Je rejoue chaque faille sur la version patchée et je vous dis laquelle tient et laquelle non. Gratuit, sous 30 jours, puis attestation à jour.

Le rapport Node.js,
point par point.

Le correctif cite le paquet, la version et la ligne — vos devs Node.js l'appliquent sans me relancer.

  1. Couverture du rapport de test d'intrusion base16 01 · Couverture
  2. Synthèse exécutive : six vulnérabilités, dont une critique 02 · Synthèse exécutive
  3. Registre des vulnérabilités et méthodologie de test 03 · Registre & méthodo
  4. Fiche de la faille F-01 : accès aux factures d'autres clients, CVSS 9.1 04 · Faille F-01 9.1
  5. Fiche de la faille F-02 : rejeu d'une requête de remboursement, CVSS 8.2 05 · Faille F-02 8.2
  6. Fiche de la faille F-03 : élévation de privilège par mass assignment, CVSS 8.1 06 · Faille F-03 8.1
  7. Contre-test, cadrage et attestation transmissible 07 · Contre-test & attestation

Qui mène votre test.

Saïd, expert en pentest et audit de sécurité

Saïd Mimouni

Pentest & audit de sécurité · applications web & API

Je teste des applications web et des API à la main, en solo, pour des startups et des agences. Vous parlez à la personne qui ouvre le terminal, du premier e-mail au contre-test.

À distance par défaut, sur place si vous préférez : je me déplace dans vos bureaux, partout en France.

Une app Node.js à mettre à l'épreuve ?

Dites-moi le runtime, le framework, le périmètre et votre échéance. Je vous réponds sous 24 h ouvrées avec un périmètre et un prix fixe.

Le cadrage passe par un questionnaire de deux minutes.

  • Ce qu'il faut tester : application, API, périmètre.
  • Votre échéance, même approximative.
  • Le contexte, si vous voulez : stack, certification, audit client.