Que fait prototype-pollution-advanced ?
Playbook avancé sur la pollution de prototype — RCE côté serveur, gadgets côté client, contournements de filtres et techniques de détection. Compagnon des bases pour ../prototype-pollution/. À utiliser une fois la pollution confirmée pour escalader vers l'exécution de code ou trouver des gadgets spécifiques aux frameworks.
Techniques couvertes
RCE côté serveur
- Node.js :
__proto__pour injecter des propriétés dans des objets système. - Express : Pollution de
res.*oureq.*pour exécuter du code personnalisé. - Lodash / Handlebars : Templates vulnérables avec
Handlebars.compile.
Gadgets côté client
- React : Pollution de
stateoupropsvia des composants contrôlés. - Vue.js : Modification de
$dataou$optionspour exécuter des expressions. - Angular : Gadgets basés sur
$scopeou des expressions template.
Contournements de filtres
- JSON.stringify → parse : Exploiter les différences de traitement.
- Objets symboliques : Utiliser des clés spéciales comme
__defineGetter__. - Bypass de regex : Encodage, échappement, ou clés alternatives.
Détection
- Vérification manuelle :
obj.__proto__.test = 'vuln'puis lecture de{}.test. - Automatisation : Scripts YAK pour scanner les surfaces d'attaque.
Exemples de commandes
yak -f advanced-pp-scan.yak --target http://example.com
yak script:
- name: Detect PP
proto:
path: "/api/v1/update"
payload: {"__proto__": {"isAdmin": true}}
Prérequis
- Pollution de prototype confirmée sur la cible.
- Connaissance des bases : vues dans ../prototype-pollution/.