Fichier LEGIT SITE image_upload.php code> a été utilisé pour télécharger le fichier 89471928047.php.jpg code> Le formulaire de téléchargement de fichier simple qui copie le fichier TMP sur les mêmes images d'images.
Comment ils ont réussi à l'exécuter et à télécharger d'autres fichiers. Quelqu'un sache comment c'est possible?
la version PHP était 5.1.6 code> qui étant mis à jour il y a exactement l'heure ou après par la planification avec l'hôte à 5.3.8 code> ... Quelle coïncidence? P>
3 Réponses :
en utilisant Vous pouvez tester cela si vous le souhaitez. P> Si tout va comme prévu, "FOO" sera sortie sur votre écran. Vous pouvez développer cette option pour déplacer les fichiers Certainement quelque chose que vous voulez faire très attention à. P> Une autre façon que cela aurait pu être effectué est via un appel à dans le cas ci-dessus (exemple simplifié), le pirate pirate pourrait transmettre un chemin vers son fichier exiger, inclure et leurs méthodes associées ne sont pas les seuls moyens de traiter des scripts externes - malheureusement, vous pouvez utiliser AddType < / Code> Dans votre fichier .htaccess, vous pouvez ajouter de nombreuses autres extensions à partir de laquelle PHP peut être couru. C'est généralement comment .html code> peut être utilisé tout en utilisant PHP en eux-mêmes. Donc, oui, il est possible: p>
AddType Application-X-httpd-php .jpg code> li>
php echo 'foo'; ?> code> li>
/ tmp code> autour de si vous le souhaitez. P> Vérifiez les appels exposés à Inclure / exiger h3>
exiger () code> ou inclure () code> (ou l'un quelconque du code > _ONCE () CODE> Méthodes) Où par le pirate informatique a été capable de charger dans son fichier badfile.php.jpg code> téléchargé sous l'apparence d'une image innocente: p> < pré> xxx pré> .php.jpg code> et avoir son contenu chargé et traité comme php Code. P> Autres idées (effrayantes) h3>
eval ( ) code> aussi. J'espère que vous n'en auriez rien de tout ce que cela se passe. Si vous avez eu des scripts sur votre serveur qui utilisaient l'une des fonctions de fichier pour lire le contenu d'un autre script, puis eval () code> pour évaluer ce contenu en tant que PHP, cela pourrait également fournir un trou de sécurité béant sur votre site web. p> h3>
Je pense qu'il demande comment un pirate informatique pourrait le faire, pas comment il peut le faire. En outre, si vous mappez .jpg Tous les fichiers JPG seront exécutés par PHP, ce qui n'est guère une bonne idée. Mais peut-être, oui, il pourrait vérifier si ses fichiers .htaccess ont été altérés. Je pense que nous avons besoin de plus d'informations. (Commentaire reposé en raison d'une erreur d'orthographe).
Il n'y avait pas .htaccess ils ont géré quelque peu de site de débordement, je pense et le font le processus JPG en tant que PHP ... il n'y avait pas de .htaccess sur place du tout.
@stivlo J'étais simplement montrant une méthode par laquelle un pirate informatique pourrait faire cela. Une correction mineure, tous les fichiers .jpg dans le répertoire du fichier .htaccess affecté seraient traités comme PHP. Espérons que cela aide l'OP à trouver le problème.
@Jonathansampson, oui en fait j'ai ajouté Peut-être, oui, il pouvait vérifier si ses fichiers .htaccess ont été altérés. I>
@stivlo L'inclusion était également ma deuxième idée;)
@Johna Vous devriez vérifier votre site, comme le dit StiVlo, pour des utilisations dangereuses de Inclure code>, nécessite code>, include_once code> et nécessitent_once code> qui accepte l'entrée qui aurait pu être altéré par les utilisateurs.
J'ai retiré cela du commentaire, car comme écrit, il poussait de plus de temps plus long et plus long, donc dans les prochaines minutes, je l'évolue comme une réponse.
"AddType" contrôle le type MIME que Apache répond avec un type de fichier donné. "Addhandler" rend Apache Utilisez php pour gérer les demandes de fichiers .php.
Votre Pour vérifier si c'est une image que vous pouvez exécuter getImagesize sur le fichier, Il retournera false si ce n'est pas une image. P>
Comment regarder les journaux? strong> p>
Vérifiez la date et l'heure du fichier téléchargé et commencez à regarder autour de lui pour une activité suspecte (regardez les paramètres d'URL étranges). Une fois que vous avez trouvé une ou plusieurs adresses IP, faites des choses diaboliques, grep le journal pour cela (ceux) IPS, de voir toute l'histoire. P>
Une autre information importante à savoir est, image_upload.php code> est insécurisé, vérifiez les éléments suivants: p>
Les commentaires incorporés dans les fichiers JPG peuvent toujours se contenter du chèque getImagesize (). Il évaluera comme un JPG légitime mais contient toujours du code.
Utilisation de getimagesize () pour déterminer si son image ou non est vraiment une mauvaise idée car on peut facilement intégrer le code dangereux dans une belle image. Vérifiez ce lien indiquant comment les scripts PHP peuvent être intégrés dans une image. php.webttorc.pl/fr/2011/05/13/...
@Bikalbasnet Comme expliqué dans l'article que vous avez lié le code à l'intérieur d'une image peut être exécuté en raison de l'utilisation inappropriée d'afficher une image, non pas à cause de getImagesize.
@stivlo Vous avez raison que cela soit exploité lors de l'utilisation de requis / incluant, etc. mais indique que vous avez une page appelée index.php, qui charge la page de la valeur transmise dans le paramètre à l'aide d'un paramètre ($ _ obtenir ['Page]] ) Par exemple: index.php? Page = page / abeveus.php. Dans ce cas, que si quelqu'un a téléchargé la mauvaise image dans le téléchargement / Bad.jpg et demandé au serveur d'exécuter index.php? Page = Upload / Bad.jpg. Cette fois, de mauvaises choses peuvent arriver. ne peut-il pas?
Vous ne devriez pas avoir d'exiger comme ça en premier lieu, la faute est là. Toutefois, si vous ne vérifiez pas avec getimagesize () Un script PHP uni avec une extension JPG serait accepté, ce qui est encore pire que de ne pas vérifier. Alors, que suggérez-vous de vérifier plus?
Le problème est causé par votre serveur à l'aide de la valeur par défaut /etc/httpd/conf.d/php.conf:
# # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> # Use of the "ZTS" build with worker is experimental, and no shared # modules are supported. LoadModule php5_module modules/libphp5-zts.so </IfModule> # # Cause the PHP interpreter to handle files with a .php extension. # AddHandler php5-script .php AddType text/html .php
Le contenu de /etc/httpd/conf.d/php .conf est: p> Veuillez noter la dernière ligne addhandler php5-script .php. Cela cause ce problème et doit être remplacé par une configuration plus sécurisée p> Vous pouvez en savoir plus sur et comment appliquer une solution ici (voir la dernière réponse): P> http://core.trac.wordpress.org/ticket/11122 p> Voir aussi: p>
Pourquoi addhandler php5-script .php code> pourrait être exploité pour gérer un fichier .php.jpg? Le simple fait que l'extension de fichier a .php au milieu peut le faire manipuler par l'interprète PHP?
@kaneda Oui L'interprète n'ayant pas d'analyse uniquement pour .php et ignore quoi que ce soit après. Par exemple, vous pouvez utiliser blabla.php.blabla et il l'interprétera toujours comme script PHP.
@kaneda C'est une fonctionnalité de Mod_Mime qui correspondra à l'.php n'importe où dans le nom du fichier. httpd.apache.org/docs/2.2/mod/mod_mime.html# multipleext
Était-ce un piratage? demandez-vous comment prévenir? Que contient 89471928047.php.jpg? Avez-vous essayé de le remplacer par un simple fichier PHP faisant un écho et essayez d'exécuter pour voir ce qui se passe?
La question est de savoir si ils capables de télécharger PHP avec une extension .jpg Comment peut-ils l'exécuter de Maybee extérieur est parce que PHP était v5.1.6
@Johna Cela n'a probablement rien à voir avec la version de PHP que vous utilisez.