[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Tentatives possible réussies attaque serveur



Sylvain L. Sauvage wrote on Fri, Oct 09, 2015 at 03:39:57PM +0200
> Le vendredi 9 octobre 2015, 14:47:01 andre_debian@numericable.fr 
> a écrit :
> > Merci de la piqûre de rappel ci-dessous concernant les
> > langages dynamiques Web.
> > 
> > Les documents sur la sécurité abondent en ce sens,
> > dont surtout la réinjection de codes dans les pages Web.
> > 
> > La question initiale était :
> > /index.php?rev=../../../../../../../../../etc/passwd
> > HTTP Response 200, possible tentatives avec succès..."
> > 
> > Mais rien n'empêche de taper directement ceci :
> > "www.monsite.com/../../../../... /etc/passwd
> > 
> > Le fait d'avoir une page d'index ou non,
> > "/index.php?rev=../../../../../../../../../etc/passwd"
> > ne doit pas changer grand chose...
> 
>   Ok, donc, malgré tout ce qui a été dit dans ce fil, tu n’as 
> pas compris le protocole HTTP : ces requêtes ne sont pas 
> équivalentes.
> 
>   Passer par un fichier PHP mal écrit qui va pouvoir lire 
> n’importe quel fichier sur ta machine si on lui passe un chemin 
> dans le bon paramètre n’est pas équivalent à faire une requête 
> que le serveur va savoir refuser. À moins que celui qui a écrit 
> le fichier PHP moisi soit aussi celui qui a écrit le serveur 
> HTTP, ce dernier n’acceptera pas d’aller remonter plus haut que 
> sa racine (p.ex. /var/www).
> 
>   La requête '/index.php?rev=../../etc/passwd' signifie 
> « exécuter le script 'index.php' en lui passant la variable 
> 'rev' à '../../etc/passwd' ». Le script fait ce qu’il veut avec 
> son paramètre 'rev'. Un script moisi va s’en servir pour aller 
> ouvrir le fichier et l’inclure dans la réponse sans 
> vérification. Un script moins moisi va vérifier la valeur du 
> paramètre et ne pas s’en servir.
>   D’un point de vue réponse HTTP, ces deux scripts vont générer 
> un 200 de la part du serveur HTTP : le fichier 'index.php' a été 
> exécuté et renvoie un contenu.

Un script peut tout à fait retourner une réponse HTTP autre que 200.
C'est ce que je fais lorsqu'on demande une ressource qui n'existe pas
ou qui n'est pas autorisée pour la requête.

Quant aux scripts qui font des includes sur des fichiers dont
l'adresse est passée en paramètre et sans vérification...  ça me
laisse pantois.  Il y en a même qui laissent faire des includes sur
des URL...  Ce qui permet à un spameur de faire tourner un moulin à
spams chez vous avec votre bande passante et surtout votre
responsabilité.

Faire vraiment attention aux gentils scripts qui veulent vous rendre
mille services sans vous dire ce que fait le mille et unième.

dom

> 
>   La requête '/../../../etc/passwd', en général, n’est pas 
> valide, et va donc générer une réponse 404.
> (On peut avoir un serveur web qui renvoie toutes ou certaines 
> URL comme paramètre à l’exécution d’un script, lequel peut être 
> plus ou moins moisi, mais il faut lui demander.)
> 
>   Il est beaucoup plus fréquent de trouver un script PHP moisi 
> que de trouver un serveur web qui va aller chercher n’importe 
> quel fichier sur la machine, ne serait-ce que parce qu’il y a 
> beaucoup plus de scripts PHP que serveurs web…
> 
> -- 
>  Sylvain Sauvage
> 

-- 


Reply to: