14 08 2002 à 13:48 |
oooook merci, je vais me pencher sur tout ca asap. mais bon, les caractères spéciaux et tout ca, c'est pas la peine. c'est juste pour un acces à certaines pages réservés aux admins. donc voilà. j'essaierai demain et je verrai. bye. |
|
14 08 2002 à 13:50 |
c'est quoi une injection ???? |
|
14 08 2002 à 14:11 |
Bah euh jvais pas rentrer dans les détails pour ca je te suggere http://www.ouah.org si tu cherches des articles intéressants, mais en gros, ca consiste à injecter du code SQL dans un formulaire : Imaginons une authentificaiton comme nous venons de le voir : $query = "SELECT * FROM admin WHERE login='$login' AND password='$password'"; Maintenant imaginons que nous ayons access à la page d'administration : j'entre mon login/password, la requete deviens : $query = "SELECT * FROM admin WHERE login='medgi' AND password='piregwan'"; Donc apres le script donne access à la page si dans la base de donnée un couple de login/password est bien medgi/piregwan. Maintenant imaginons un vilain monsieur qui tente ceci : login : ' OR ''='' password ' OR ''='' La requete qu'interpretera le script PHP sera alors : $query = "SELECT * FROM admin WHERE login='' OR ''='' AND password='' OR ''=''"; Ainsi il existera deux test pour login et deux tests pour password : WHERE login = '' AND password = '' Cette requete sera un echec puisqu'en général, il n'existe pas de lgin/password vide tout deux. Par contre étudions cette requete : WHERE ''='' AND ''='' Cela revient a dire si vide = vide et vide = vide alors on donne l'acces à la page. Or bien entendu vide est toujours égal a vide... tu peux faire de meme avec une requete comme ca : login : ' OR 'mechant' = 'mechant' password : ' OR 'vilain' = 'vilain' d'ou la requete : $query = "SELECT * FROM admin WHERE login = '' OR 'mechant'='mechant' AND password = '' OR 'vilain'='vilain'"; Je pense qu'ici c'est un peu plus explicite : l'authorisation d'accéder à la page est contourné, et le méchant à acces à la page dadministration. J'avais écrit une petite introduction à la sécurité des scripts PHP si ca peut t'intéresser : [ http://ouah.sysdoor.net/php-securitysub.html ] Mais si tu cherches de la doc plus complete, il va falloir te tourner vers les articles en anglas cya - medgi |
|
14 08 2002 à 14:56 |
Interessant ton article medgi Bien écrit et pas chiant. Certaines failles (je pense à celle de system() + précisemment) ne devrait même pas exister. ce genre de fonctions devraient être désactivées... Pour ce qui est du DoS j'ai une idée non testée mais qui fonctionne peut être (sous linux unqiuement) : avec iptables tu limites le nombre de requêtes sur ton port 80. le problème qui va apparaître c'est le retour au client si ton site reçoit un grand nombre de requêtes. iptables -A INPUT -i ppp0 -p tcp --dport 80 -m limit --limit 3/m -j ACCEPT fait à l'arrache et non testé (conversion d'anti ping flood en fait)... Des commentaires/idées ?? |
|
14 08 2002 à 15:03 |
bah euh j'éai écrit cet article ya un an en à peu pres une nuit donc il n'est plus a jour, et pas très complet. C'était à la demande de qqun donc walla. Mais bon pour le "DoS" le plus simple reste d'envoyer un cookie, et de ne permettre qu'un post par 5minutes par exemple. Mais bon comme dit jpourrait faire de meme sur ce forum donc walla. Reste a savoir qui est assez con pour faire ca (hormis moi pour mes tests, mais j'ai volontairement pas publié le code)... |
|
14 08 2002 à 16:29 |
un cookie bloquant c'est ca ? on avait ca mais 1 fois sur 1000 le cookie se détruisait pas et le visiteur pouvait plus rien poster un peu chiant merci pour les explications et l'article ++ |
|
14 08 2002 à 17:10 |
Je me souviens des cookies fous "La guerre contre les machines a commencé" |
|
14 08 2002 à 18:33 |
excusez moi pour le script rapide que j'ai donné, j'ai pas pensé a la sécurité mais a la simplicité (Mr est un newbie ?). D'autre part je voudrais savoir comment vous feriez pour arriver sur la page d'admin avec le code que j'ai donner sans connaitre ni identifiant ni password ? |
|
15 08 2002 à 17:13 |
|
Pour répondre à ce sujet (et notifier automatiquement son auteur), cliquez sur le bouton REPONDRE A CE SUJET. Si vous voulez en plus avertir de votre réponse une personne qui a participé à ce sujet, cliquez sur le bouton en face de son intervention. Enfin si vous voulez inviter quelqu'un à réagir, utilisez les appeaux ci-dessous. Seuls les membres logués peuvent utiliser les appeaux et seuls les membres actifs peuvent être appeautés ^^. Bonne notification ! Vous n'êtes pas membre ou vous n'êtes pas logué(e) ou les appeaux sont désactivés dans votre profil. Vous ne pouvez pas utiliser les appeaux. |