htaccess+image+php = danger sécurité? - PHP - Programmation
Marsh Posté le 20-04-2005 à 23:30:22
rosco a écrit : Un forumer utilise une méthode détournée pour faire afficher plusieurs avatars à distance en redirigeant l'image .gif ou autre appelée par le forum vers un script php distant grâce à un .htacess ( Redirect /images/avatar.gif http://monsite.com/images/avatar.php ), ceci est utilisable pour n'importe quelle image sans que ce soit détectable si c'est une image statique (pas comme son avatar qui change à chaque F5). |
Bonjour,
Etant un amateur en matière de sécurité informatique, je ne m'atarde que sur la partie gras(se). Pour récupérer l'ip d'une personne(Je ne m'aventure pas dans le domaine des proxy, spoof, etc...) qui accède à n'importe quel type de document, il suffit de regarder les logs d'apaches(on de n'importe quel autre type de server). Suivant la configuration des logs, on peut "aisémment" connaître l'ip, l'user-agent, l'os de quiconque accède à un document par le web.
Pour le reste ...
EDIT : haurtograf
Marsh Posté le 20-04-2005 à 23:34:04
Oui ça je connais, mais les logs c'est bien quand c'est ton serveur perso ou un que tu gères, là c'est du genre un compte FTP sur Free ou Multimania et tu n'as pas accès au log dans ce cas là. Dans le cas présent, il gruge car il utilise un fichier texte qu'il remplit avec les IP et le nombre de vues par exemple.
La question se situe surtout au niveau de ce qu'on peut récupérer de sensible en éxécutant du code distant. Qu'il ait l'user-agent ou l'OS on s'en fout car ca n'apporte rien . Je pense que le PHP est quand même bien foutu (et Apache et consors) et que les gens ont pensé à ce genre de choses mais je voudrais en être sûr car je pense qu'on aurait déjà vu des forums démolis avec ce genre de manipulations par ailleurs d'où mon septicisme sur la récupération de données sensibles mais on ne sait jamais
Marsh Posté le 21-04-2005 à 00:16:44
Il y a le serveur du forum, et le serveur qui distribue l'image. Il s'agit de deux serveurs bien différents, et l'un ne peux pas voir ce que l'autre fait, même au niveau d'un même utilisateur.
Par contre, en ce qui concerne le fait d'obtenir les adresses IP des autres users :
1/ ce que dit Yoyo coupe court à toutes controverses. Du moment que l'avatar est vu sur un serveur autre que le tien (Ex : Multimania, server perso ou mutualisé, dédié...), tu ne peux rien contrôler au niveau confidentialité des IPs (mais ça sert de toutes façons à rien)
2/ Un forum doit héberger l'avatar des utilisateurs (gain de temps au chargement, contrôle des avatars...)
Marsh Posté le 21-04-2005 à 00:27:20
hep hep. Comment le gars arrive a detourner des données avec un simple avatar?
il faisait un truc du genre <img src="image.php" />
merci, j'aimerai bien savoir.
Marsh Posté le 21-04-2005 à 00:29:52
Il met le chemin de son avatar qui pointe vers http://blabla/image.gif , et le htaccess de son site fait une redirection transparente de ce lien vers http://blabla/image.php où il éxécute son code pour faire tourner son image.
Marsh Posté le 21-04-2005 à 00:34:19
Master p > Gain de temps non car les serveurs en face sont aussi rapides, sinon plus que le serveur du forum, sans compter la bande passante non utilisée par des avatars chargés du forum si y a bcp de monde ou si la BP allouée est un peu juste. Le contrôle oui mais c'est en toujours en relation avec la bande passante.
Donc il n'y a pas de risques a priori de détourner des données sensibles, c'est tout ce que je voulais savoir.
Marsh Posté le 21-04-2005 à 00:38:22
ce gars est un dieu. respect.
y'a vraiment des tordus qui sont prêt a exploiter n'importe quoi a mauvais escient.
et comment s'en premunir s'il vous plait?
à mon avis il peut recuperer des données tranquilles alors.
edit:
en fait il fait de l'URL rewriting de son coté, si j'ai bien compris.
Marsh Posté le 21-04-2005 à 00:44:59
Nan à part les IP et autres données bénignes on ne peut rien récup, c'est ce que Master P dit dans son post. S'il a envie d'attaquer ton IP à la recherche de faille il pourra de toute façon puisque n'importe quelle image marchera , m'enfin c'est pas très important.
Le fait que multimania, Free ou autre ait accès aux IP de part les logs on s'en fout car ils l'utiliseront pas, mais un utilisateur (mal intentionné?) c'est pas tout à fait pareil.
C'est pas du rewriting, c'est une simple redirection, et c'est le PHP qui envoie les headers et l'image comme si ca venait du .gif
Marsh Posté le 21-04-2005 à 00:50:50
j'aimerai bien qu'on m'eclaircisse plus en detail s'il vous plait, ça m'inkiète.
en fait, il renvoie sur ton serveur la page imgage.php de son site a chaque fois que ton serveur a toi lui demande son avatar, image.gif, que lui detourne avec son htaccess.
mais en fait dans son fichier image.php, qu'est-ce qu'il y a? le gars fait un rand() pour afficher ses avatars de façon aléatoire? utilise imagecreate() pour je ne sais quoi?
mais a partir du moment où il peut t'envoyer et te faire LIRE un fichier php, il peut très bien mettre n'importe quelle code et te le faire executer non?
genrr si il fait dans son fichier <?php echo "salut c'est moi"; ?> ( ) ça va te l'afficher???
Marsh Posté le 21-04-2005 à 00:56:21
Non car son code sera compris entre les balises IMG de l'avatar sur le forum, y peux pas faire tout ce qui veut. Pour afficher ses images, il regardait si l'IP avait déjà recu tel avatar et si oui y affichait le suivant, et puis ca boucle.
Marsh Posté le 21-04-2005 à 01:00:54
ahhhh. rien de bien mechant.
il s'ennuie un peu ce gars non? il a rien d'autre à coder?
ouep. tu n'aurai pas une idée du code qu'il aurait pu inserer dans son fichier? ça m'impressionne quand même.
c'est "puissant" le fait qu'il puisse recuperer des IP dans une balise <img>
Marsh Posté le 21-04-2005 à 01:04:03
Nan j'ai viré son code, sinon ca va être la foire aux avatars tournants ds tous les sens
L'utilsiateur fait une requête sur le sien (appel d'une supposée image) donc il a accès à certaines infos telles que l'IP, comme les logs apache.
Marsh Posté le 21-04-2005 à 01:06:32
tu veux pas me le faire voir en Message privé?
je suis en train de me documenter sur la redirection avec le htaccess sur apache.faut que j'essaye de comprendre son truc là.
Marsh Posté le 21-04-2005 à 01:11:33
gniark gniark gniark. allez tu t'en souviens très bien de sa manip et du principe.
sinon, je viens d'apprendre u nouveau truc
Code :
|
il faisait à peu près comme ça.
edit: ou plutôt le suivant:
Code :
|
Marsh Posté le 21-04-2005 à 01:12:40
Une page pleine d'avatars qui se chargent au fur et à mesure, parce que les serveurs en face ont des soucis de charge, je trouve ça moyen. Suffit d'aller sur le topic blague voir comment les pages sont ralentis au chargement parce qu'elles attendent les images.
De plus si les images sont sur un serveur distant, rien ne m'interdit à ton insu de changer l'image vers lequel pointe le lien (pas aussi astucieux, mais accessible à tout le monde).
Marsh Posté le 21-04-2005 à 01:15:02
rosco a écrit : Nan j'ai viré son code, sinon ca va être la foire aux avatars tournants ds tous les sens |
Il est ce code?
Il est pas censé être sur le serveur de ton utilisateur-joueur-espiègle-facétieux ?
Marsh Posté le 21-04-2005 à 01:17:03
rosco a écrit : Oui ça je connais, mais les logs c'est bien quand c'est ton serveur perso ou un que tu gères, là c'est du genre un compte FTP sur Free ou Multimania et tu n'as pas accès au log dans ce cas là. |
Sur Free tu as des stats mensuelles (webalizer) qui te donnent les IP de ceux qui font le plus de hits sur ton site...
Marsh Posté le 21-04-2005 à 01:20:52
Master p a écrit : quoi ? |
personne veut me dire comment il a fait le mechant monsieur? et me parler avec du code plutôt qu'avec des mots?
allez je serai sage.
Marsh Posté le 21-04-2005 à 01:26:02
Ben oui, ce que tu as donné plus haut est à peu près bon.
C'est un truc du style
Redirect permanent /le/chemin/vers/image.gif http://autre.site.com/script.php |
Marsh Posté le 21-04-2005 à 01:29:15
oui ça je l'ai bien compris dans la doc Apache mais j'aimerais savoir le code inséré dans son fichier "image.php" ou "script.php", je sais pas comment il a nommé son truc.
merci
Marsh Posté le 21-04-2005 à 10:07:57
Code :
|
Marsh Posté le 21-04-2005 à 10:58:00
Master p a écrit : Il est ce code? |
Me suis mal exprimé, en fait il avait fait un topic descriptif donc j'ai édité son post pour que les autres fassent pareil. J'ai pas accès à son serveur moi. Pour le chargement c'est pas un souci avec plusieurs serveurs au contraire car le nbre de connexions simultanées peut être modifié (Firefox), alors que sur un seul serveur sans pipelining ca va mettre + de temps à s'afficher si toutes les images sont stockées dessus.
Marsh Posté le 21-04-2005 à 11:14:18
Master p a écrit :
|
merci. je comprend très bien maintenant.
edit:
par contre je ne vois tjrs pas comment il a pu recuperer l'IP.
comme ça?
Code :
|
où $contenu correspondrait à qqchose du type:
Code :
|
bon, après surement qu'il se fait une petite bdd pour comparer et envoyer l'image par rapport a si cette IP a dejà recu ou pas.
c'eeyyy juste chef?
Marsh Posté le 21-04-2005 à 12:17:06
rosco a écrit : Me suis mal exprimé, en fait il avait fait un topic descriptif donc j'ai édité son post pour que les autres fassent pareil. J'ai pas accès à son serveur moi. Pour le chargement c'est pas un souci avec plusieurs serveurs au contraire car le nbre de connexions simultanées peut être modifié (Firefox), alors que sur un seul serveur sans pipelining ca va mettre + de temps à s'afficher si toutes les images sont stockées dessus. |
Je pense à un serveur du type imageshack qui est pas super rapide et qui filerait les avatars au compte goutte
pmusa a écrit :
|
Non,
ton navigateur veut aller chercher l'image avatar.jpg, situé sur un serveur quelconque.
Sur ce serveur, le rewrite url va permettre de transformer la requête http://.../avatar.jpg en http://.../avatar.php.
Cette page contient un header pour spécifier qu'il renvoit un jpeg, il choisit le jpeg, il prend ton IP ($_SERVER['REMOTE_ADDR'])... Bref, tout ce que tu peux faire avezc du php, hormis renvoyer un message puisque son contenu est strictement une image.
Marsh Posté le 20-04-2005 à 23:17:21
Un forumer utilise une méthode détournée pour faire afficher plusieurs avatars à distance en redirigeant l'image .gif ou autre appelée par le forum vers un script php distant grâce à un .htacess ( Redirect /images/avatar.gif http://monsite.com/images/avatar.php ), ceci est utilisable pour n'importe quelle image sans que ce soit détectable si c'est une image statique (pas comme son avatar qui change à chaque F5).
Ce code PHP permet d'avoir accès aux IP de tout ceux qui voient cette image par exemple (il a pas à les avoir déjà), mais est ce qu'un programmeur habile pourrait soutirer des infos nettement plus dommageables tel qu'un vol de cookie, de pass, de session et autre "donnée sensible" ? On se rappele de Yvele et de son avatar trafiqué avec du code pour soutirer les pass sur Hfr mais il était stocké sur le serveur Hfr directement donc il avait une marge de maneuvre plus importante. Quels sont donc les risques avec un serveur distant qui éxécute du PHP à l'insu de n'importe quel utilisateur ? Merci
Message édité par rosco le 21-04-2005 à 00:05:43