sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 2014
-
24 avril 2008 à 15:00
fetjalal
Messages postés2Date d'inscriptionsamedi 23 août 2008StatutMembreDernière intervention23 août 2008
-
23 août 2008 à 22:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
fetjalal
Messages postés2Date d'inscriptionsamedi 23 août 2008StatutMembreDernière intervention23 août 2008 23 août 2008 à 22:38
et voila mon msn si vous voulez m'envoié un truc
jalal@9.cn
fetjalal
Messages postés2Date d'inscriptionsamedi 23 août 2008StatutMembreDernière intervention23 août 2008 23 août 2008 à 22:37
svp vs pouvais m'expliquez comment je peut l'introduire dans mon site web? et est ce qu'il y a une possibilité de le configuré celant le besoin merci bcps
votre ami du maroc ;)
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 2 mai 2008 à 13:30
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 2 mai 2008 à 13:28
Bonjour,
Merci pour la discussion, la démonstration de la faille est plus qu'intéressante.
Cependant, ne connaissant pas les handlers, auriez-vous des liens ou autres qui seraient susceptibles de m'expliquer la mise en place et le fonctionnement ?
J'avoue: je n'ai pas encore chercher sur le net et sur le forum, je viens juste de lire la discussion et je me dis qu'il vaut mieux demander au cas où vous auriez cela sous le coude.
Je vous remercie par avance,
Très bonne fin de journée,
Billou_13
lakichemole
Messages postés253Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention18 mai 2009 28 avril 2008 à 18:25
A puis une question tu dis "le fichier doit etre sauvegardé avec un nom crepté" pourquoi crypter le nom ? Ça sous entend que tes liens de téléchargement sont liée directement à un fichier en dure et non à un flux? Si c'est le cas je citerais notre amis Coq : "le stockage dans un répertoire inaccessibles à la navigation est indispensable ;-)" et donc nul besoin de crypter le nom des fichiers (en tout cas au niveau sécurité après niveau doublons de nom je dis pas, mais gérer les doublons en cryptant autant utiliser une bombe nucléaire pour tuer une mouche).
lakichemole
Messages postés253Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention18 mai 2009 28 avril 2008 à 09:30
Me faite pas dire se que j'ai pas dis!
De plus un vrai hacker sera toujours meilleur qu'un vrai développeur c'est qu'une question de temps donc d'argent.Un gas qui ve se faire son site pépère sans se prendre la tête avec un site sans données sensible il fera sont site au plus vite.
Perso j'ai jamais eu d'antivirus c'est pas pour ça que j'en ais (des virus).Et mes clefs wifi sont pas les plus sur du monde et pis tant pis elles sont plus facile à retenir quand des amis viennent à la maison :)
Enfin voila quoi chaque niveau de sécurité ajouté à un coup.
La vie n'est qu'une question de priorité!
bensoft2006
Messages postés2Date d'inscriptionsamedi 18 mars 2006StatutMembreDernière intervention27 avril 2008 27 avril 2008 à 15:25
ça c'est un principe et a vous de faire la suite pour un programmeur le fichier doit etre sauvgardé avec un nom crepté et le nom doit etre sauvgarder dans un table .
un hackeur peu faire du male si le programmeur est un newbie .
merci ...
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 27 avril 2008 à 01:52
Salut,
"à la limite dans son code l'utilisateur ne sais pas que son fichier a été uploader dans ce rep :)"
Ne jamais partir du principe que l'utilisateur est intelligent, mais ne pas partir non plus de celui qu'aucun d'entre eux n'est intelligent.
Surtout qu'avec un peu de chance on utilise un nom plus ou moins logique, et donc facile à deviner.
Bref, partir du principe qu'il y en a plus d'un qui l'est plus que nous, et qu'il nous en veux quand même : le stockage dans un répertoire innacessible à la navigation est indispensable ;-)
lakichemole
Messages postés253Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention18 mai 2009 25 avril 2008 à 09:43
Jesusonline t'y va pas avec le dos de la cuillère :).
T'es un peux rude quand même :
"Qu'est-ce qui se passe si j'upload la page "CrashServer.aspx" et que je vais à l'adresse /others/CrashServer.aspx ?" à la limite dans son code l'utilisateur ne sais pas que son fichier a été uploader dans ce rep :)
Sinon chui tout d'accord voir même pire on enregistre les fichier avec un nom et une extention sans rapport avec l'originale genre "FILE02155841.up" et apres grâce un subterfuge stratagémique (une base de donnée) on associe le nom de l'originale avec le nouveau nom.
Et enfin grâce à un Handler (.ashx par exemple) qui va bien on gère le download.
D'ailleur merci a toi jesusonline c'est toi qui ma fait découvrir (et à quelques collègues) les ashx que j'utilise largement :).
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 24 avril 2008 à 15:43
Il s'agit d'une source ASP.net 1.x, avec ASP.net 2.0 il faut mieux utiliser le contrôle <asp:fileupload qui permet de simplifier la plupart des choses.
Ton code dispose d'une ENORME faille de sécurité. Qu'est-ce qui se passe si j'upload la page "CrashServer.aspx" et que je vais à l'adresse /others/CrashServer.aspx ?
Voici quelques règles de base au sujet de l'upload :
- ne jamais faire confiance à l'utilisateur !
- ne jamais stocker les fichiers avec le nom et extensions proposé par l'utilisateur
- si possible :
- ne pas autoriser tous les types de fichier, valider les données avant de les sauvegarder
- ne pas sauvegarder les données dans un repertoire ayant des droits d'execution.
- le top est de stocker les fichiers dans un dossier non accessible via IIS, puis renvoyer le contenu du fichier via un handler dédié.
Au niveau du code, je te conseille d'utiliser un Path.Combine plutot que de la combinaison de string.
Au lieu de faire de faire un extension.toLower() pour comparer les extensions, tu peux utiliser un String.Compare("EXE", "eXe", StringComparison.InvariantCultureIgnoreCase)
Au lieu de faire un if (s != String.Empty) tu peux utiliser la méthode String.IsNullOrEmpty (peut être pas dispo en .net 1.x)
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 24 avril 2008 à 15:00
23 août 2008 à 22:38
jalal@9.cn
23 août 2008 à 22:37
votre ami du maroc ;)
2 mai 2008 à 13:30
http://humann.developpez.com/httphandler/
Bonne journée,
Billou_13
2 mai 2008 à 13:28
Merci pour la discussion, la démonstration de la faille est plus qu'intéressante.
Cependant, ne connaissant pas les handlers, auriez-vous des liens ou autres qui seraient susceptibles de m'expliquer la mise en place et le fonctionnement ?
J'avoue: je n'ai pas encore chercher sur le net et sur le forum, je viens juste de lire la discussion et je me dis qu'il vaut mieux demander au cas où vous auriez cela sous le coude.
Je vous remercie par avance,
Très bonne fin de journée,
Billou_13
28 avril 2008 à 18:25
28 avril 2008 à 09:30
De plus un vrai hacker sera toujours meilleur qu'un vrai développeur c'est qu'une question de temps donc d'argent.Un gas qui ve se faire son site pépère sans se prendre la tête avec un site sans données sensible il fera sont site au plus vite.
Perso j'ai jamais eu d'antivirus c'est pas pour ça que j'en ais (des virus).Et mes clefs wifi sont pas les plus sur du monde et pis tant pis elles sont plus facile à retenir quand des amis viennent à la maison :)
Enfin voila quoi chaque niveau de sécurité ajouté à un coup.
La vie n'est qu'une question de priorité!
27 avril 2008 à 15:25
un hackeur peu faire du male si le programmeur est un newbie .
merci ...
27 avril 2008 à 01:52
"à la limite dans son code l'utilisateur ne sais pas que son fichier a été uploader dans ce rep :)"
Ne jamais partir du principe que l'utilisateur est intelligent, mais ne pas partir non plus de celui qu'aucun d'entre eux n'est intelligent.
Surtout qu'avec un peu de chance on utilise un nom plus ou moins logique, et donc facile à deviner.
Bref, partir du principe qu'il y en a plus d'un qui l'est plus que nous, et qu'il nous en veux quand même : le stockage dans un répertoire innacessible à la navigation est indispensable ;-)
25 avril 2008 à 09:43
T'es un peux rude quand même :
"Qu'est-ce qui se passe si j'upload la page "CrashServer.aspx" et que je vais à l'adresse /others/CrashServer.aspx ?" à la limite dans son code l'utilisateur ne sais pas que son fichier a été uploader dans ce rep :)
Sinon chui tout d'accord voir même pire on enregistre les fichier avec un nom et une extention sans rapport avec l'originale genre "FILE02155841.up" et apres grâce un subterfuge stratagémique (une base de donnée) on associe le nom de l'originale avec le nouveau nom.
Et enfin grâce à un Handler (.ashx par exemple) qui va bien on gère le download.
D'ailleur merci a toi jesusonline c'est toi qui ma fait découvrir (et à quelques collègues) les ashx que j'utilise largement :).
24 avril 2008 à 15:43
Ton code dispose d'une ENORME faille de sécurité. Qu'est-ce qui se passe si j'upload la page "CrashServer.aspx" et que je vais à l'adresse /others/CrashServer.aspx ?
Voici quelques règles de base au sujet de l'upload :
- ne jamais faire confiance à l'utilisateur !
- ne jamais stocker les fichiers avec le nom et extensions proposé par l'utilisateur
- si possible :
- ne pas autoriser tous les types de fichier, valider les données avant de les sauvegarder
- ne pas sauvegarder les données dans un repertoire ayant des droits d'execution.
- le top est de stocker les fichiers dans un dossier non accessible via IIS, puis renvoyer le contenu du fichier via un handler dédié.
Au niveau du code, je te conseille d'utiliser un Path.Combine plutot que de la combinaison de string.
Au lieu de faire de faire un extension.toLower() pour comparer les extensions, tu peux utiliser un String.Compare("EXE", "eXe", StringComparison.InvariantCultureIgnoreCase)
Au lieu de faire un if (s != String.Empty) tu peux utiliser la méthode String.IsNullOrEmpty (peut être pas dispo en .net 1.x)
24 avril 2008 à 15:00