> Tous les forumsForum des Webmasters

 securité php, a vous de maider :d
Statut du sujet : NON RESOLU Imprimer
 papalover
  Posté le 15/02/2005 @ 20:12  
 Petit astucien

625 Messages
Bonjour, voila j'ai un amie qui m'avais fais un script php il y a lontemp; mais le probleme c'est une personne a reussi a pirater mon site grace a sa :s alor jhe vous soumlet le code source pour m'ai der a trouver l'enventuel faille, je precise que ce fichier permet au utlisateur de mon site a pouvoir envoyé plusieur fichier au format jpg sur mon site, donc :
<?php $style = ($HTTP_GET_VARS['style'] == 'html') ? '?style='.$HTTP_GET_VARS['style'] : ''; if(count($_FILES)) { if(count($_FILES) > 10) { echo "<font color=\"red\"><b>Vous n'avez le droit d'envoyer que 10 fichiers maximum !!</b></font>"; exit; } $erreurs[] = ""; $i = 1; $html_style = ''; foreach($_FILES as $tagname=>$object) { $tempName = $object['tmp_name']; $realName = $object['name']; $new_name = date("YmdHis")."_".$realName; eregi("(.*)\.([0-9a-z]{1,3})$", $new_name, $patterns); $file_name = trim(str_replace(" ", "", $patterns[1])); $file_ext = trim($patterns[2]); if(!$file_name OR !eregi("^(jpg|jpeg)$", $file_ext)) { $erreurs[$i] .= "<font color=red>Le nom du fichier est invalide (".$file_name.") ou l'extension n'est pas supportée (".$file_ext.")</font>"; } else { $target = '../../image/'.$file_name.".".$file_ext; @mkdir('../../image/',0777); @flush(); @move_uploaded_file($tempName,$target); $src_img = @imagecreatefromjpeg($target); $origw=@imagesx($src_img); $origh=@imagesy($src_img); $new_w = '100'; $ratio=$origh*$new_w; $new_h=$ratio/$origw; $dst_img = @imagecreatetruecolor($new_w,$new_h); @imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,$origw,$origh); @imagejpeg($dst_img, "../../image/".$file_name."_min".".".$file_ext); $url_img = "http://jackycaps.com/image/".$file_name.".".$file_ext; $url_min = "http://jackycaps.com/image/".$file_name."_min.".$file_ext; } if(file_exists("../../image/".$file_name.".".$file_ext) AND file_exists("../../image/".$file_name."_min".".".$file_ext) AND !$erreurs[$i]) { //echo "- URL de l'image:<br /><input type=\"text\" name=\"url_img\" size=\"80\" value=\"".$url_img."\"><br />"; //echo "- URL de la miniature :<br /><input type=\"text\" name=\"url_min\" size=\"80\" value=\"".$url_min."\"><br />"; //echo '- Code HTML à insérer :<br /><input type=\\'text\\' name=\\'html_code\\' size=\\'80\\' value=\\'<a target="_blank" href="'.$url_img.'"><img src="'.$url_min.'" border="0"></a>\\'><br />'; echo "[url=".$url_img."][img]".$url_min."[/img][/url]\n"; $html_style .= ' <a target="_blank" href="'.$url_img.'"><img src="'.$url_min.'" border="0"></a>'; } else { echo $erreurs[$i]; } $i++; } $html_style = '<br><input type=\\'text\\' name=\\'html_code\\' size=\\'100\\' value=\\''.$html_style.'\\'>'; if($HTTP_GET_VARS['style'] == 'html') { echo $html_style; } } else { ?> <html> <head> <title>Contrib</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-- .testo { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; } .titolo { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bolder; } --> </style> </head> <body bgcolor=#F5F5F5 text="#666666" link=#003366 vlink=#999999 alink=#FFFFFF leftmargin=0 topmargin=0> <table align="CENTER" width="600" border="0"><tr><td colspan="2"><center> Chargez l'applet Java pour pouvoir uploader plusieurs fichiers d'un seul coup(20 max) (y a pas d'arnaques)<br> Si vous désirez pas la charger, il y a toujours l'ancien bouton...<br> Pour les video, cliquez <a href="http://ezshare.de/en/main.html">ici</a>!</td></tr> <form action="./contrib.php<?php echo $style; ?>" method="post" enctype="multipart/form-data"> <tr><td> <p align="left"> <input name="userfile" type="file" class="testo"> <input name="username" type="hidden" value="<?php print $userdata['username']; ?>"> </p> </td></tr><tr> <td><p align="left"><input name="Submit" type="submit" value="Envoyer l'image !" class="testo"> </p></td> </tr></form> <tr><td> <applet code="JUpload/startup.class" archive="../jupload.jar" width="650" height="400"> <param name="actionURL" value="./contrib.php<?php echo $style; ?>"> <param name="progressbar" value="true"> <param name="boxmessage" value="Loading JUpload Applet ..."> <param name="maxFilesPerRequest" value="10"> <param name="debug" value="false"> Your browser does not support applets. Or you have disabled applet in your options. To use this applet, please install the newest version of Sun's java. You can get it from <a href="http://www.java.com/">java.com</a> </applet></td></tr> <tr> <td height="10" colspan="2"><hr></td> </tr> <tr> <td height="10" colspan="2"></td> </tr> </td> </table> </body> </html> <?php } ?>
voila je vous remerci de votre aide [clindoeil]
 Afficher le profil de papalover Envoyer un message privé à papalover
 
 
Publicité
 ti_ouf  Posté le 16/02/2005 à 14:26  
Astucien


4767 Messages
hi pour suivre
Afficher le profil de ti_ouf Voir la configuration de ti_oufEnvoyer un message privé à ti_ouf
  Revenir en haut de la page
 STAR*PC  Posté le 16/02/2005 à 17:11  
Astucien

1791 Messages
Salut papalover ! J'ai pas regardé tout le code mais le début me rapelle quelque chose, c'est bien le script que je t'avais modifié ? Dans ce cas, il me faudrait savoir exactement quel est le probleme surtout que le script se trouve sur mon serveur donc je pense pouvoir trouver le probleme ... @++
Afficher le profil de STAR*PCEnvoyer un message privé à STAR*PC
 Revenir en haut de la page
 papalover  Posté le 16/02/2005 à 22:40  
Petit astucien

625 Messages
STAR*PC a écrit :
Salut papalover ! J'ai pas regardé tout le code mais le début me rapelle quelque chose, c'est bien le script que je t'avais modifié ? Dans ce cas, il me faudrait savoir exactement quel est le probleme surtout que le script se trouve sur mon serveur donc je pense pouvoir trouver le probleme ... @++
sa fais plaisir de te voir [smile] non non celui marche bien enfin je crois, je demande l'avi des spacialiste, dison qu'une personne malvaillante a reussi a avoir mes code ftp je supose grace a l'encien que moi javais sur mon serveur... le truc c'est que je supose que sa vien de la car le gas avé juste laiser se fichier la sur le serveur. Voila moi je vairé bien un petit faille dans se truc, on demande o php de viré tt se qui n'& pas jpg ! mais avant c'est a dire entre <body> et </body> on devrais faire un truc pour verifier si c'est du jpg. mais la je ne sais pas comment faire [smile] merci Pc stars ;)
Afficher le profil de papalover Voir la configuration de papaloverEnvoyer un message privé à papalover
  Revenir en haut de la page
 STAR*PC  Posté le 17/02/2005 à 11:54  
Astucien

1791 Messages
Salut, Perso je suis désolé si ce code t'a posé des problemes de sécurité mais je vois vraiment pas comment on pourrais avoir tes pass FTP par ce code ... Pour ce qui est de la vérification JPG, elle y est : if(!$file_name OR !eregi("^(jpg|jpeg)$", $file_ext)) c'est un peu du "fait-maison" car il est possible de faire passer n'importe quel fichier juste en le renommant mais en fait j'ai mis cette ligne, simplement pour ne pas avoir d'erreurs lors de la création de la miniature après qui ne fonctionne qu'avec des JPG ($src_img = imagecreatefromjpeg($target); La vérification du JPG ne peux se faire qu'en PHP: dans l'espace "statique" (le html) tu ne peux pas vérifier cela ... @++
Afficher le profil de STAR*PCEnvoyer un message privé à STAR*PC
 Revenir en haut de la page
 papalover  Posté le 17/02/2005 à 21:29  
Petit astucien

625 Messages
ba enfet, deja c'est pas celui la, qui ma cosé souci c'est l'ancien que moi j'avais, ensuit je me pose egalment la question pour c'est histoir de jpg, et comment iil a eu mes pass, j'ai sa : [code]<param name="customFileFilterExtensions" value="gif,jpg,jpeg">[/code] pour verifier le jpg avan le de commencer a le transmetre sur le ftp
Afficher le profil de papalover Voir la configuration de papaloverEnvoyer un message privé à papalover
  Revenir en haut de la page
 STAR*PC  Posté le 18/02/2005 à 12:12  
Astucien

1791 Messages
papalover a écrit : [code]<param name="customFileFilterExtensions" value="gif,jpg,jpeg">[/code] pour verifier le jpg avan le de commencer a le transmetre sur le ftp
Oui mais ça c'est au niveau de l'applet, pas de PHP ...
Afficher le profil de STAR*PCEnvoyer un message privé à STAR*PC
 Revenir en haut de la page
 papalover  Posté le 18/02/2005 à 18:10  
Petit astucien

625 Messages
oui bien sur, car on ne demande pas a l'aplet se qu'il peut l'essai passez, de touste facon je vais faire un test, je vais foutre se script la sur le serveur, s'il mataque c'est qu'il y a une faille, s'il y arive pas c'est qu'il y en a pas. merci
Afficher le profil de papalover Voir la configuration de papaloverEnvoyer un message privé à papalover
  Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Les sujets pertinents liés
scan ports
Menus deroulants ne fonctionnent pas sous IE
Des \ indésirables....
[résolu] Plantage après être passé à php 5 !!
Erreur mySQL pour l'ouverture de session
hébergeur php
[PHP] Les Hackers ?
Vérification sécurité PHP
enorme probleme
cpgnuke c'est super
PhpBB version 2.0.18
PHP- urls(1) et sécurité (2)
Help... Je débute avec PhpMyAdmin/MySQL
NewsletTux, un script de newsletter XHTML et CSS
Solution pour album photos consultable en ligne ?
le slamming ( arnaque )
Faire patienter ...
 
Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !



 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page