Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3605 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Apache et arborescence du système

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Apache et arborescence du système

n°220907
kazekami
J'aime pas les gens
Posté le 07-02-2003 à 13:56:03  profilanswer
 

admettons ke je dispose d'une machine faisant tourner Apache 1.3.27, de 2 sites web hébergés en virtual hosting (http://url1 et http://url2).
 
admettons aussi ke ces 2 sites soient stockés dans $CHEMIN/url1 et $CHEMIN/url2.
 
comment éviter qu'une personne tapant dans son navigateur :
 
http://url1/../index_url2.html
 
accède a la page d'accueil du site http://url2 ??  :??:  
 
merci d'avance  :jap:


---------------
Self Destruction Might Be The Answer - http://www.kazekami.org
mood
Publicité
Posté le 07-02-2003 à 13:56:03  profilanswer
 

n°221772
kazekami
J'aime pas les gens
Posté le 09-02-2003 à 12:21:07  profilanswer
 

un tout p'tit up paske c le week end :)


---------------
Self Destruction Might Be The Answer - http://www.kazekami.org
n°221801
unk00
Posté le 09-02-2003 à 13:03:55  profilanswer
 

Si Apache est correctement configuré, ça ne doit pas arriver. Si ça arrive, c'est un bug ou un problème de configuration (et c'est valable quel que soit le serveur Web, IIS, Zeus,...).
 
 Dans chaque directive <VirtualHost url>, il doit y avoir un "DocumentRoot" qui "isole" chaque site Web...
Et bien sûr, il ne doit y avoir aucun site dont le DocumentRoot est la base ($CHEMIN, /usr/www dans l'exemple).
 
 
#>-------- en gros comme ça : -----------------<
...
 <VirtualHost url1>
   ServerName url1
   <Directory "/usr/www/url1">
      Options Indexes -FollowSymLinks  
      AllowOverride None
      Order allow,deny
      Allow from all
   </Directory>
 </VirtualHost>
 
 <VirtualHost url2>
   ServerName url2
   <Directory "/usr/www/url2">
      Options Indexes -FollowSymLinks  
      AllowOverride None
      Order allow,deny
      Allow from all
   </Directory>
 </VirtualHost>
....
#>--------------------------------------<
 
 
 
 Remarque : s'il y a des scripts exécutables sur le serveur (par le biais de Perl, PHP, ASP, JSP, Bash ou autre langage du côté serveur) qui peuvent lire des fichiers à partir de paramètres passés par le client, faut faire attention au traitement de ces paramètres.
 Chtit exemple A NE PAS SUIVRE (en PHP) :
>-------------------------------<
<?php
  //   page.php
  // Cette page est appelée pour charger d'autres fichiers
  $nomfic=$_GET["nomfichier"];
  header("Content-Type: application/octet-stream" );
  header("Content-Length: ".filesize($nomfic));
  $fp = fopen($nomfic, 'r';);
  fpassthru($fp);
  fclose($fp);
?>
>-------------------------------<
 
 Si un comique tape comme url dans son navigateur :
  http://site/page.php?nomfichier=../../etc/passwd
il récupèrera le fichier /etc/passwd du système ! Bon, les droits unix s'appliquent toujours (puisque Apache/PHP ne tourne pas en tant que root) donc il ne sera pas possible de récupérer /etc/master.passwd ou /etc/shadow, mais on peut plutôt chercher à récupérer un .htaccess et un fichier de mot de passe généré par htpasswd...
 Bref bref... J'ai été un peu long, mais je tenais à signaler ce problème quand des scripts sont exécutés sur un serveur. (vécu inside)


Message édité par unk00 le 09-02-2003 à 13:04:55
n°221890
kazekami
J'aime pas les gens
Posté le 09-02-2003 à 15:49:03  profilanswer
 

merci pour ton aide, je verifierai mon fichier de conf demain au taf :jap:
 
(de mémoire il y ressemble bcp, seule l'option followsymlinks diffère je crois)


---------------
Self Destruction Might Be The Answer - http://www.kazekami.org
n°221901
Tomate
Posté le 09-02-2003 à 16:09:50  profilanswer
 

unk00 : le script php ke tu as mis, c est bien du cote server, donc fo etre un peu bete pour faire ca nan ?

n°221919
unk00
Posté le 09-02-2003 à 16:47:15  profilanswer
 

L'option -FollowSymlink (noter le "-" devant) empêche simplement le suivi des liens symboliques. Sinon, par exemple, si un gars fait un lien  
  $> ln -s /usr/www/url1/fichier.html /usr/www/url2/fichier.html
 alors la requête "http://url2/fichier.html" affichera le même fichier que "http://url1/fichier.html". Bon, bien sûr, ça nécessite en général un accès Shell sur la machine.
 
 
(tomate77)
 

Citation :

fo etre un peu bete pour faire ca


 
 Ben oui, mais là, les développeurs n'avaient que peu d'intérêt pour l'aspect sécurité des choses. Le pire, c'est que sur ce projet, j'avais (pour une fois) fait une doc sur la sécurité dont une partie traitait des erreurs de développement à éviter : en gros, il était écrit qu'il fallait contrôler toutes les entrées envoyées par le client du côté du serveur (et pas en Javascript). Il y avait même un exemple (avec un échappement pour SQL).
 Donc, en conclusion, les docs, ça sert à rien, personne ne les lit...  :-/


Message édité par unk00 le 09-02-2003 à 16:49:28
n°221921
Tomate
Posté le 09-02-2003 à 16:49:14  profilanswer
 

ouais mais kan meme faire un truc aussi "bugue" fo le vouloir :D

n°221925
unk00
Posté le 09-02-2003 à 16:56:35  profilanswer
 


 Bah oui... Bon, en réalité, c'était pas un code aussi simple, et c'était sur un serveur IIS/ASP (et je connais pas les ASP), et comme je ne suivais pas le développement, je ne l'ai vu que quand j'ai fait quelques tests une fois que l'appli tournait...

n°221972
asphro
Posté le 09-02-2003 à 19:06:42  profilanswer
 

ben y a aussi des option de securité dans le php.ini c'est po pour rien, je pense !
 
par contre coté perl et cgi ?!

n°222079
unk00
Posté le 09-02-2003 à 23:06:07  profilanswer
 

Citation :

ben y a aussi des option de securité dans le php.ini c'est po pour rien, je pense !


 
 Oui, bien sur, c'était un exemple, qui marche par défaut sur certaines install de PHP. J'ai donné un exemple en PHP parce que c'était plus rapide pour illustrer (c'est ce que je connais le mieux du point de vue developpement).
 
 

Citation :

par contre coté perl et cgi ?!


 
 Mmmh ? C'est à dire ? comment sécuriser ça ?

mood
Publicité
Posté le 09-02-2003 à 23:06:07  profilanswer
 

n°222109
kazekami
J'aime pas les gens
Posté le 10-02-2003 à 09:45:35  profilanswer
 

bon alors ca change rien a mon pb ... :/
 
j'ai meme testé avec un
 
<Directory "/usr/www/url1">
    Options None  
     AllowOverride None
     Order allow,deny
     Allow from all
  </Directory>  
 
<Directory "/usr/www/url2">
    Options None  
     AllowOverride None
     Order allow,deny
     Allow from all
  </Directory>  
 
et j'arrive tjrs a remonter mon arbo... :(


Message édité par kazekami le 10-02-2003 à 09:46:03

---------------
Self Destruction Might Be The Answer - http://www.kazekami.org
n°222118
asphro
Posté le 10-02-2003 à 10:00:56  profilanswer
 

unk00 a écrit :


Citation :

par contre coté perl et cgi ?!


 
 Mmmh ? C'est à dire ? comment sécuriser ça ?


 
oui je vois pas, j'ai lu des truc sur suexec, m 'enfin bon ca ma pas convaincu !

n°222125
unk00
Posté le 10-02-2003 à 10:45:25  profilanswer
 

C'est bizarre... Et il n'y a aucune directive "DocumentRoot /usr/www" ou "<Directory /usr/www>", même hors de la configuration des hôtes virtuels (config initiale) ?
 Je ne vois pas bien la raison de ce comportement... Tiens, quand on fait "http://url1/\.\./index_url2.html", on voit quoi dans le fichier de logs pour l'hôte virtuel url1 ? (un truc du genre <IP> <date> GET /%5C.%5C./index_url2.html HTTP/1.1 ; avec quelque part la valeur de retour) ? Juste pour voir ce que Apache va chercher comme fichier...

n°222129
kazekami
J'aime pas les gens
Posté le 10-02-2003 à 11:00:44  profilanswer
 

la seule directive <DIRECTORY> hors des mes hotes virtuels est :
<Directory />
 Options None
 AllowOverride None
 Order deny,allow
 Allow from all
</Directory>
 
et pas de documentroot défini
 
 
dans le fichier access_log de url1 on voit :
 
url1 - - [10/Feb/2003:10:55:51 +0100] "GET /%5C.%5C./url2/index_url2.html HTTP/1.1" 200 24894
 
 
NB : il y avait une petite erreur dans mon premier post : l'url ke je rentrais etait : http://url1/../url2/index_url2.html et non http://url1/../index_url2.html


---------------
Self Destruction Might Be The Answer - http://www.kazekami.org
n°222134
unk00
Posté le 10-02-2003 à 11:25:47  profilanswer
 


 Bon, je pensais qu'Apache empêchait ça ; et d'ailleurs, je viens de tester sur un serveur, et ici, Apache m'interdit bien de faire ça (erreur 404 : not found).
 Désolé, je ne vois pas pourquoi là ça se comporte comme ça...

n°222144
kazekami
J'aime pas les gens
Posté le 10-02-2003 à 11:47:29  profilanswer
 

oui l'intérêt d'apache c kan meme de pouvoir empêcher ca, mais la je vois pas pkoi ca marche pas :/
 
merci kan meme de ton aide :jap:


---------------
Self Destruction Might Be The Answer - http://www.kazekami.org
n°222199
unk00
Posté le 10-02-2003 à 14:34:20  profilanswer
 


 Au fait, juste une remarque, les directives <Directory> pour chaque hôte virtuel sont définies que dans le bloc <VirtualHost> ou ailleurs dans le fichier ?

n°222202
kazekami
J'aime pas les gens
Posté le 10-02-2003 à 14:38:20  profilanswer
 

uniquement dans le bloc <virtualhost>


---------------
Self Destruction Might Be The Answer - http://www.kazekami.org
n°222218
unk00
Posté le 10-02-2003 à 15:09:16  profilanswer
 

Pareil... Je ne pensais pas que c'était ça, mais bon...
 S'il est pas trop gros, tu peux peut-être poster le "httpd.conf" (en virant les commentaires et les trucs d'indexation -AddIcon*, AddLanguage*, ...- et en remplacant les valeurs sensibles par qqch d'"inoffensif" ). Enfin, je ne sais si c'est judicieux/autorisé de poster un truc de 7-8 ko ici (?)
 Y a ptet un spécialiste d'Apache qui trouvera le pb... Même si je n'ai pas ce problème, ça m'intéresse d'avoir la réponse...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Apache et arborescence du système

 

Sujets relatifs
[Linux] Apache : Support DSO (les modules)pb con avec apache et les rep
OS obscur : le système Pick?Re-Apache
[apache] et phpmyadminSystème de suivi/gestion de bug
Ptite question sur le système APT de debian[apache + tomcat] pb de droits d'execution [Résolu]
[Résolu] Apache ne veut pas se lancerAuthentification apache avec des utilisateur UNIX?
Plus de sujets relatifs à : Apache et arborescence du système


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)