Vulnérabilités du moteur PHP

Magazine
Marque
MISC
Numéro
47
Mois de parution
janvier 2010
Domaines


Résumé

Du point de vue d'un auditeur, PHP n'est finalement qu'un vecteur d'entrée parmi d'autres. Un attaquant vise, une fois l'exécution de code PHP arbitraire obtenue, à progresser dans le système d'information (vers le noyau pour élever ses privilèges, vers d'autres applications, vers le réseau interne, ...). Pour cette raison, le moteur PHP s'est doté au fil des ans de divers moyens de protection et de cloisonnement. Pour peu qu'elles soient correctement configurées, ces options peuvent empêcher toute progression vers le système d'exploitation sous-jacent. Cependant, le moteur PHP contient une classe de vulnérabilités inhérente à son architecture. Pire, exploiter ces vulnérabilités permet de s'affranchir de toutes ces protections...


1. Introduction / Contexte

1.1. Vulnérabilités d'interruption

Concernant la sécurité du moteur PHP, Stefan Esser est une référence incontestable. En charge du Hardened PHP Project [HPP], auteur du patch Suhosin [SUHOSIN] (qui renforce la sécurité du moteur PHP) et initiateur du Month Of PHP Bugs [MOPB], Stefan Esser repousse constamment les limites de la sécurité de PHP. Dans une récente présentation intitulée « State of the Art Post Exploitation in Hardened PHP Environment », Stefan détaille une classe de vulnérabilités à part entière, qu'il a nommée « Interruption Vulnerabilities » et qui peut se traduire par « vulnérabilités induites par les interruptions ».

Ce type de vulnérabilités provient des oscillations qu'il est possible de faire, entre le code compilé du moteur PHP et le code PHP interprété. Ces oscillations peuvent se faire de plusieurs manières :

- Définir un gestionnaire d'erreurs, puis provoquer une erreur ;

- Utiliser...

Cet article est réservé aux abonnés. Il vous reste 94% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Spectre, 3 ans après

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines
Résumé

Spectre, et son pendant Meltdown, est une faille qui repose sur l’architecture moderne de nos processeurs. Dans cet article, nous verrons l’impact que cette vulnérabilité a eu sur le développement d’applications web.

Zerologon pour les (mots de passe) nuls

Magazine
Marque
MISC
Numéro
113
Mois de parution
janvier 2021
Domaines
Résumé

ZeroLogon est LA vulnérabilité de septembre 2020 qui expose de nombreux domaines Windows à une compromission totale via un scénario d’exploitation réaliste et fiable. Mais ce qui donne à Zerologon ses lettres de noblesse c’est qu’elle repose essentiellement sur la mauvaise utilisation d’un algorithme cryptographique permettant de réaliser une attaque à clair choisi particulièrement astucieuse. Zoom sur la vulnérabilité la plus passionnante de la rentrée 2020 !

CVE-2020-3433 : élévation de privilèges sur le client VPN Cisco AnyConnect

Magazine
Marque
MISC
Numéro
112
Mois de parution
novembre 2020
Domaines
Résumé

Cet article explique comment trois vulnérabilités supplémentaires ont été découvertes dans le client VPN Cisco AnyConnect pour Windows. Elles ont été trouvées suite au développement d’un exploit pour la CVE-2020-3153 (une élévation de privilèges, étudiée dans MISC n°111). Après un rappel du fonctionnement de ce logiciel, nous étudierons chacune de ces nouvelles vulnérabilités.

Return oriented programming 101

Magazine
Marque
MISC
HS n°
Numéro
22
Mois de parution
octobre 2020
Domaines
Résumé

Le Returned Oriented Programming (ou ROP) est une technique permettant d'exploiter des programmes disposant de la protection NX (No eXecute) ou DEP (Data Execution Prevention). L'objectif de cet article est de vous présenter les bases du ROP, ainsi que l’exploitation pas-à-pas d’un programme d’entraînement via l'utilisation de la bibliothèque python pwntools [1]. Dans un souci de simplicité, la démonstration sera réalisée sur un programme s'exécutant sur un système Linux 64 bits. Bien entendu, cette démonstration reste applicable sur d'autres architectures (ARM, MIPS, etc.).