exemple de defense contre l'injection

WRInaute passionné
bah ça me paraissait clair

c'est un exemple de securisation de server qui empeche une intrusion par php injection de faire des dégats

l'attaquant ne peut même pas voir les sources des fichiers racines

rog
 
WRInaute passionné
c'est clair albert en plus j'ai posté dans administration de site web

pour ceux qui n'auraient pas compris l'importance d'une configuration secure :

microsoft.fr a été hacké recemment et a subi la risée internationale

url : http://experts.microsoft.fr/default.aspx

mirroir : http://www.zone-h.org/index2.php?option ... id=4181592

winrar a été hacké cette semaine

un rootkit est sorti cette semaine qui rooterait tous les kernel 2.6 (pas eu le temps de tester)

un groupe d'étude s'est formé pour rechercher des possibilités de buffer overflow sur les fonctions php (j'ai arreté de les compter apres php3 - + 1600)

ce qui permettrait de lancer une fonction f(string) dont le resultat serait un wget d'un bindroot + execution par l'utilisateur root

pour moi la première contrainte d'un site web est d'éviter potentiellement d'être inscrit sur le tableau de chasse de fatal error crew

lol

rog
 
WRInaute accro
je n'y connais rien en terme de "piratage", mais cela m'interesse !
non pas pour hacker, mais pour connaître les failles en profondeur pour mieux savoir me protéger...

mais j'avoue ne pas savoir comment, par quoi et ou commencer !
 
WRInaute passionné
sois le bienvenu

il y a plusieurs aspects :

dans l'exemple présent on ne traite que de l'intrusion par injection de variable sur un script php/asp qui ne filtre pas suffisamment les variables reçues par formulaire et qui permet générer un bug et executer un code malveillant

il y a des articles intéressants sur madchat.org
une recherche sur php + exploit est cool aussi
pour mysql il y a un article très bien fait en français sur

http://www.phpsecure.info/v2/article/phpmysql.php

c'est un début

rog
 
WRInaute impliqué
vous pensez pas qu'un tel article interesse plus les mecs qui veulent apprendre a hacker plutot que les webmaster qui veulent apprendre a securiser leur scripts ?

Moi je penche plus pour la solution 1 .
 
WRInaute passionné
désolé, mais c'est que tu n'as vraiment rien compris

j'aimerai bien que tu m'expliques comment tu peux sécuriser ton site contre une intrusion si tu ne sais pas ni comment ni par où on y entre

:D

je ne vais pas m'étendre sur le sujet, je pourrai écrire plusieurs livres mais tu peux retenir deux chose :

- ce qui est hermetique aujourd'hui ne le sera peut-être pas demain
- ce qui était vulnérable hier ne l'est peut être plus aujourd'hui

d'où la réelle difficulté d'avoir un contenu protégé sur un réseau

j'ai montré un exemple de securisation simple, tant mieux pour ceux qui ont compris

rog
 
WRInaute impliqué
rog a dit:
dans l'exemple présent on ne traite que de l'intrusion par injection de variable sur un script php/asp qui ne filtre pas suffisamment les variables reçues par formulaire et qui permet générer un bug et executer un code malveillant
on ne filtre jamais assez les variables !
j'ai trouvé d'autres exemples parfaitement similaires sur des sites plus récentes et plus actifs
-http://membres.lycos.fr/imeria/phpBB/latestus.php?selorder=lol
Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /data/members/free/multimania/fr/i/m/e/imeria/htdocs/phpBB/latestus.php on line 113

sinon, y a celui ci qui est plus facile à trouver car le script de MOD est repris (brut de décoffrage et avec des versions anciennes de ce MOD) un peu partout :
-http://www.luttes-etudiantes.com/forum/index.php?glance_recent_offset=lol
Code:
Could not query latest topic information

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'lol, 5' at line 16

SELECT f.forum_id, f.forum_name, t.topic_title, t.topic_id, t.topic_last_post_id, t.topic_poster, t.topic_views, t.topic_replies, t.topic_type, p2.post_time, p2.poster_id, u.username as last_username, u2.username as author_username FROM phpbb_forums f, phpbb_posts p, phpbb_topics t, phpbb_posts p2, phpbb_users u, phpbb_users u2 WHERE f.forum_id NOT IN (043,40) AND t.forum_id = f.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND t.topic_moved_id = 0 AND p2.poster_id = u.user_id AND t.topic_poster = u2.user_id ORDER BY t.topic_last_post_id DESC LIMIT lol, 5

Line : 161
File : glance.php

tout ça reste gentil ...
mais ça montre bien que les variables doivent être vérifiées avant d'être traitées ; parce que entre le "petit malin" qui fait ce genre de recherche ou les éventuelles erreurs de frappe, de casse ou que sais je ...
 
WRInaute accro
pour gérer la reception de valeurs, quel fonction php utilisez-vous le plus:

- htmlentities (pour l'affichage)
- mysql_real_escape_string (pour la bdd)
- rawurlencode/rawurldecode (pour les liens)

mais après je ne vois pas quoi utiliser d'autre ?
 
WRInaute passionné
cool albert

:D

le premier bug permettre le chemin du script courant et est indispensable pour faire une injection de code dans une requete mysql ou l'on exploitera la panoplie de commande du style dump into file

le but étant d'usurper le contenu de la table à dumper par <? exec($_GET[cmd]); ?>

sans le path disclosure, on ne pourrait pas ecrire le fichier dump dans un repertoire accessible a php

le deuxième bug est cool car il nous donne la requête entière et peut nous aider à cibler l'attaque sur un champ précis ou une clause précise

rog
 
WRInaute accro
@ rog (parce que j'ai rien compris de ce que tu as dis)

thierry8 a dit:
pour gérer la reception de valeurs, quel fonction php utilisez-vous le plus:

- htmlentities (pour l'affichage)
- mysql_real_escape_string (pour la bdd)
- rawurlencode/rawurldecode (pour les liens)

mais après je ne vois pas quoi utiliser d'autre ?

< -- en gros c'est ça !?
 
Discussions similaires
Haut