vulnerabilites PHP

vulnerabilites PHP - PHP - Programmation

Marsh Posté le 06-04-2004 à 00:29:45    

(la fonction recherche n'est pas diposnible au moment ou j'ecris ces lignes)
 
Bonjour,
Je voudrais faire une petite application  (php + mysql) qui montre les vulnerabilites  les plus communes en PHP.
Pour cela je vais developper pour chaque vulnerabilite 2 scripts :
 
- Script version non secure  
- Script version secure
 
Ces scripts vont aller de difficultes croissantes.
 
Quels sont pour vous les  vulnerabilites les plus courantes ?
 
De la plus simple a mettre en valeurs a la plus complexe ?
 
Merci de votre aide.
 
Ps: Je ne suis pas expert en php, si je veux faire ca, c'est dans un but pedagogique.
 
 

Reply

Marsh Posté le 06-04-2004 à 00:29:45   

Reply

Marsh Posté le 06-04-2004 à 00:36:40    

:heink:
Vulnérabilité dans PHP ? Ou dans les applications PHP (le code) ?

Reply

Marsh Posté le 06-04-2004 à 00:38:04    

les plus courantes, c'est tout ce qui concerne le non test des arguments passés en paramètre, cela va de la page d'inclusion à l'injection de SQL en passant par l'exécution de javascript.
une autre source de failles, ce sont les fichiers accessibles directement sur le serveur (un répertoire d'include non protégé par exemple)
un troisième type de faille, c'est le non-traitement des cas d'erreurs. beaucoup se contentent de laisser le message d'erreur de php s'afficher, ce qui renseigne l'attaquant sur la manière de réagir du script et l'architecture du site.

Reply

Marsh Posté le 06-04-2004 à 00:40:41    

je parle bien entendu des vulnerabilites dans les scripts.
 
- Deny of service
- XSS
- injection SQL
 
et j aurai besoin d'autres idees ou d'expemples.
 
merci :)

Reply

Marsh Posté le 06-04-2004 à 00:49:14    

Pour éviter les erreurs, il vaut mieux activer le niveau d'alerte maximum.
error_reporting(E_ALL);

Reply

Marsh Posté le 06-04-2004 à 00:57:28    

Hmm ok !
Mais dans un premier temps je suis plus interesse sur les differentes vulnearbilite et la facon de les coder. Comment les eviter est une 2eme etape.

Reply

Marsh Posté le 06-04-2004 à 01:51:45    

peemousse a écrit :

Hmm ok !
Mais dans un premier temps je suis plus interesse sur les differentes vulnearbilite et la facon de les coder. Comment les eviter est une 2eme etape.  


on ne code pas une vulnérabilité. c'est le fait de ne pas coder qui est en une.
 

Reply

Marsh Posté le 06-04-2004 à 09:46:24    

c' est fou comme tout le monde joue sur les mots ....
 
je demandais juste des renseignements assez simple.
 
tant pis.

Reply

Marsh Posté le 06-04-2004 à 10:07:19    

bin c'est vrai pourtant, c'est le fait de vouloir éviter une vulnérabilité qui exige du code supplémentaire et non l'inverse [:spamafote]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 06-04-2004 à 10:09:08    

pour éviter l'injection SQL, tu dois implémenter du code pour vérifier chaque input utilisateur: si tu t'attends à recevoir une information numérique, tu dois vérifier que tu reçois bien du numérique. Si tu reçois du texte, tu dois t'assurer que les guillemets que l'utilisateur aurait encodés sont bien échappés.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 06-04-2004 à 10:09:08   

Reply

Marsh Posté le 06-04-2004 à 10:58:31    

ok ok merci !
Je pense que je dois m'exprimer assez mal en fait ....
 
Je demandais juste une liste de probleme liee a la securite concernant le php. Pas trop la facon de les resoudre.
 
probleme concernant les script :
 
- SQL Injection
- Escqpe shell
- Deny of Service
- Cross Site Scripting
- Faille Include
- Parametre invalide
 
Certain point se rejoigne ....
 
Je voudrais donc avoir d' autres exemple de failles ou de vulnerabilite.
 
merci.
 
on va y arriver :)

Reply

Marsh Posté le 06-04-2004 à 11:08:23    

il y a un topic dédié sécurité PHP sur le forum mais je ne me rappelle plus le lien :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 06-04-2004 à 11:22:08    

http://search.securityfocus.com/cg [...] id&start=0
 
et tu vas trouver des ex du style  
 
 
http://www.example.com/modules.php [...] UTFILE%20'[path/to/site]/vt.txt
 
ca te donnera une idee de ce qu'il faut eviter dans ta future appli ptet ...


Message édité par djobidjoba le 06-04-2004 à 11:25:38
Reply

Marsh Posté le 06-04-2004 à 11:22:45    

> - SQL Injection
Je pense que si tu ne vois pas comment faire ça tout seul, tu devrais commencer par autre chose. :hello:
 
> - Escqpe shell
Utiliser system() ? C'est pas très très courant et pas spécifique à PHP.
 
> - Deny of Service
Rien à voir avec PHP.
 
> - Cross Site Scripting
Ca ne concerne pas le client ça ? Et non PHP ?
(remplacer les caractères < et > par &gt; et &lt; semble être un bon début...)
 
> - Faille Include
Gizmo ta répondu : "une autre source de failles, ce sont les fichiers accessibles directement sur le serveur (un répertoire d'include non protégé par exemple)".
La solution est un .htaccess.
 
> - Parametre invalide
Là aussi tu devrais savoir faire. On va pas te le coder ! ;)


Message édité par kalex le 06-04-2004 à 11:24:06
Reply

Marsh Posté le 06-04-2004 à 11:28:51    

heureusement que google existe pour remplacer le moteur de recherche interne au forum :D


Message édité par drasche le 06-04-2004 à 11:29:00

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 06-04-2004 à 12:55:16    

Bon encore fois merci pour vos reponses mais je pense que certaine personne ne prenne pas le temps de lire l'integralite des posts :)
 
Le probleme n' est pas de savoir si je sais coder ou non , si je sais securiser mes appli. mais juste identifier les erreurs courantes qui menent des a des applis vulnerables.
 
merci drasche et Djobi pour les liens :)
 
 

Reply

Marsh Posté le 06-04-2004 à 15:40:31    

Le problème c'est que si tu ne sais pas comment faire un script qui accepte les paramètres invalides, tu ne vas pas aller bien loin. :/
C'est pour ça que je te dis de commencer par autre chose, ça n'a rien de méprisant. ;)

Reply

Marsh Posté le 06-04-2004 à 22:02:42    

haaa ok .. je vois ce que tu veux dire ... et c'est pas faux :) j'avais pas compris .. desoleeeeeeeeee :)
 
Mais je vais apprendre :)
 
d'ailleurs si quelqu'un a des liens je suis preneur


Message édité par peemousse le 06-04-2004 à 22:03:24
Reply

Marsh Posté le 06-04-2004 à 23:32:54    

Un exemple qui me vient en tête :
 
Sur certain sites les auteur n'hésite pas à montrer leur code avec la fonction show_source(). Elle est pratique car elle fait de la coloration syntaxique.
 
Mais centraliser le show_source() sans failles, ben faut faire gaffe. Il faut faire attention de ne pas accepter n'importe quoi sinon, on risque de montrer des secrets comme des mots de passe pour les BDD.
 
Exemple sur le site de PHP :  
http://www.php.net/source.php?url=/index.php
 
On vois tous les includes fait dans index.php...
 
Et on se dit qu'il y a peut être un moyen de haker le site...
 
Pour se convaicre du contraire, il faut regarder comment est codé  source.php : http://www.php.net/source.php?url=/source.php
 
Là on voit qu'utiliser cette fonction n'est pas sans risque si on ne fait pas très attention :D
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 07-04-2004 à 10:07:57    

Woow ok merci je prends note. Super remarque !
Si tu as d' autres conseils du genre oriente secu ....
 
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed