Site partenaire
 IP Scan :
Home
  Accueil
SH en favoris
- FORUMS -
Livre d'Or
- CHAT -
NewsLetter
Suggestions
La Team du Site
Accès Team SH
Faites un don !
Contacts
 
Services
  Liens
Source HTML viewer
DownLoad
Mail Anonyme
 
Les Articles
  Cracking
Théorie
Programmation
Failles [techniques]
Les Adresses IP
FingerPrinting
Utilisation de proxy
Divers
 
WallPapers Galerie
   
Partenaires
  The Hackademy Web, Journal et School

 
 Main Message
 
Le recrutement au sein de la Team SH est suspendu pour une durée indéterminée...

Pour surfer sur ce site, vous devez accepter le disclaimer.

Vous pouvez contribuer au développement du site en faisant un don. SecurityHack a besoin de vous !

 
 Faille NULL Byte [Description]
 
Faille NULL Byte

La finalité de cette faille est la même que pour la faille include() de PHP, c'est-à-dire voir la source d'un script interprété côté serveur, donc normalement inaccessible pour l'internaute moyen.

 

Bon, comment ça marche?

 

En fait, cette faille repose sur le fait que les langages interprètent différemment une parcelle de  code. Les langages comme Perl, PHP ou ASP interprètent le NULL byte (%00, interprété en tant que \0) en tant que donnée dans leur variable, tandis que le serveur lui-même l'interprète en tant que fin d'un string.Bon, ça à l'air un peu barbare au premier abord, mais c'est en fait très simple. Passons donc à la pratique...

 

Imaginons un site (http://www.site.com) conçu en PHP. La page index.php a en tant que variable l'affichage des différentes pages du site, par exemple la page images (index.php?page=images). En remplaçant 'images' par index.php%00.txt, la page index.php va être interprétée en tant que fichier texte! Donc toute la source de l'index sera en clair en format txt! Nous ne parlons ici que de l'index, donc imaginez ce qui pourrait être fait sur d'autres pages bien plus importantes... En fait, la page est un script PHP interprété en txt. On peut changer l'extension en htm ou html également.

 

http://www.site.com/index.php?page=index.php%00.txt

                                      |_________|
                                       fichier php
                                                                  |________________|
                                                        interprétation du serveur (=index.txt)

 

Comment remédier à cette faille?

 

Et bien c'est très simple: il faut annuler l'exécution de NULL dans notre code.

- Perl

introduisez tout simplement cette ligne: $insecure_data=~s/\0//g;

 

- PHP

ajouter cette ligne sur vos variables: $var=addslashes($var);Ceci aura pour effet de rajouter un backslash(\) devant tous les simple et double guillemets (' et "), les backslashes et les NULL. Cette technique permet également d'éviter la faille SQL injection que je traiterai dans un autre article.Une autre solution est celle d'utiliser la fonction file_exists(). Cette fonction prend en compte le NULL byte. Ainsi, si on reprend l'exemple donné précédemment, la requête va chercher le fichier index.php.txt qui bien évidemment n'existe pas.

 

-ASP

utilisez la fonction replace comme suit:

'Déclaration des fonctions
var remplace, aremplacer;
'Mettez ici votre nom de variable à la place de x
var valeur = x ;
'L'élément à remplacer est le NULL byte
aremplacer = /\0/i;
'Mettez la chaîne de caractère que vous voulez à la place de y
remplace = valeur.replace(aremplacer, "y");

 

P41f0x -:- Team SH Member

Welcome To SecurityHack.net Articles catalogue

securityhack.net v 4_2
 
Les Sous-domaines
  Projet JackShell
+ Challenge BigContest +
JackTrojan
Forums
Chat IRC
 
Chat Box
 
Up Down
Pseudo :
Message :

 
Box News !
 
 

01 visiteur(s) online
© 2003, 2004 www.SecurityHack.net | Admin : Shad0w ; Webmasters : P41f0x, Dark-Jedi