Tout d'abord, toute la Team Hackademy vous souhaite une année 2008 pleine de bonnes choses !

Pour débuter cette année, nous sommes heureux de vous annoncer que le Ezine commence à prendre forme (surtout l'équipe qui dirigera celui-ci) et devrait apparaitre sur le Web début Avril. Cela peut paraitre loin mais nous voulons vraiment faire un Ezine de qualité, cela demande donc beaucoup de préparation.

Pour ceux qui aimeraient publier dans le premier numéro il est encore temps d'envoyer vos articles (au pire il seront pour le prochain numéro) directement à redaction@thehackademy.net.

Autre annonce importante, le premier meeting HZV aura lieu le 16 Février 2008 sur Paris (dans les locaux de Sysdream). Celui-ci sera mensuel et aura pour concept de dispenser une formation d'environ 4h sur divers thèmes choisi par la communauté. Le premier thème abordé sera la sécurité VoIP et sera dispensé par CrashFr. Il vous est possible de réserver vos places en formulant votre demande sur meeting@thehackademy.net. Les meeting sont aussi l'occassion pour ceux qui n'auront pas la chance d'assister à la formation de faire des rencontres avec les autres membres de la communauté. Biensur ce meeting est ouvert à tous et gratuit (seul la limite de place disponible peut vous empecher l'accès; alors faites vite !).

Bonne année et n'oubliez pas: HZV will never die !

 FAQ - Rechercher  

Forcer le nom d'un fichier

 
The Hackademy Forum Index du Forum -> Unix & GNU/Linux Poster un nouveau sujet   Répondre au sujet
Page 1 sur 1
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Apophis1988



Inscrit le: 05 Aoû 2007
Messages: 69

Message Posté le: Dim Jan 13, 2008 10:43 pm  |   Sujet du message: Forcer le nom d'un fichier Répondre en citant
Salut. Est-il possible de forcer le systeme à autoriser la creation d'un fichier avec un "/" dans le nom?
Exemple: je veux creer un fichier ayant pour nom
Code:
marley<script>alert()<script>.mp3
Twisted Evil
J'ai deja essayer de coder un petit truc pour le faire et je le lance (meme avec les droits root) mais ca semble impossible
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Lun Jan 14, 2008 1:41 am  |   Sujet du message: Répondre en citant
Tu voulais sûrement dire avec un </script>.
Non c'est impossible, et si jamais tu y arrives (parce que c'est pas techniquement complètement impossible), tu vas simplement niquer le système de fichier. Pour y arriver il faudrait écrire directement sur le disque.
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Apophis1988



Inscrit le: 05 Aoû 2007
Messages: 69

Message Posté le: Lun Jan 14, 2008 2:50 pm  |   Sujet du message: Répondre en citant
Ah mince alors. Serait-il possible de mettre alors des guillemets autour. du genre
"<script>alert()<script>".mp3
PS: oui il y'a bien un slash mais j'ai un problème qui fait que je ne pas utiliser de slash quand j'envoie des messages (tout comme je ne peux telecharger de .torrents). tout une histoire que je vous epargnerai
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Lun Jan 14, 2008 4:00 pm  |   Sujet du message: Répondre en citant
Il n'y a aucune limitation du système quant-à la création de fichiers avec des ".
Code:
$ touch '"<script>alert()<script>".mp3'
$ ls
"<script>alert()<script>".mp3
Si encore une fois tu voulais dire "<script>alert()</script>".mp3 non c'est impossible. Quelque soit la manière dont tu t'y prend, le driver va te jeter quand tu vas essayer de mettre un caractère '/'. D'ailleurs si il est possible de mettre des guillemets dans un nom de fichier, c'est parce qu'ils n'ont aucun sens pour le driver du système de fichier. Ce ne sont pas des délimiteurs ou quoi que ce soit d'autre. Par contre dans le programme hôte ça peut avoir un sens (bash, ou php par exemple).

Je vois bien que tu essaye d'exploiter une xss via les noms de fichier, mais il va falloir trouver sans </script>. Une image avec un attribut onload ?
Enfin moi je dis ça, je dis rien...
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Apophis1988



Inscrit le: 05 Aoû 2007
Messages: 69

Message Posté le: Lun Jan 14, 2008 5:27 pm  |   Sujet du message: Répondre en citant
Vas y tu peux developper un peu ta theorie pour les attributs des images?
J'ai deja eu vent des headers mal formés d'images pour l'injection de javascript mais je n'ai pas du tout entendu parler de ta methode (ou peut etre que je me trompe).
Sinon dans mon cas tu as bien deviné, il s'agit bien d'une XSS, le truc etant un script d'upload de mp3. Le programmeur a eu la malheureuse idée d'afficher le nom du fichier uploadé après le telechargement et par dessus tout, le script est mal codé. Par conséquent j'ai pu saisir que la première moitié du nom est interpreté par le navigateur mais malheureusement le fait de ne pas pouvoir utiliser de slash reduisait mon champ d'action (de plus le magic_quote est activé).
Alors j'essayais de voir s'il etait quand meme possible de mettre un nom de fichier corrompu avec du JS, avant de prevenir le webmaster (qui se trouve etre une connaissance) d'une potentielle faille non exploitable (mais malheureusement tes declarations cassent tout mon delire Mad ).
D'un autre coté j'avais aussi pensé à exploiter une faille de type NULL BYTE mais quelque peu modifiée:
la verification du fichier ne se faisant que sur l'extension et non le MIME type (encore une erreur du webmaster), j'avais pensé à un nom de fichier de ce type:

fichier.php%00.mp3

Il se trouve malheureusement que ca ne passe pas non plus

PS: [HS] sinon on peut continuer la discussion soulevée par ce topic? sujet palpitant je trouve. Malheureusement, il semblerait que l'auteur nous ait abandonné[/HS]
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Mar Jan 15, 2008 6:37 am  |   Sujet du message: Répondre en citant
Apophis1988 a écrit:
la verification du fichier ne se faisant que sur l'extension et non le MIME type (encore une erreur du webmaster), j'avais pensé à un nom de fichier de ce type:

fichier.php%00.mp3
Au contraire, c'est se baser sur le type mime qui est une erreur. Cette en-tête est une méta information, c'est à dire une information à propos de l'information contenu dans le fichier. Et une en-tête http ça se fake.
Par contre, étant donné que apache se base sur l'extension pour savoir si il doit exécuter un fichier comme du php ou non, il faut tester l'extension du fichier uploadé pour être sûr que apache ne tentera pas d'exécuter son contenu.

Par contre pour ce qui est de mettre un caractère nul dans la chaîne, ça peut peut-être passer, mais il faut y mettre un vrai caractère nul. Pour mettre un vrai caractère nul il va falloir faire la requête http à la main (ou presque).
D'ailleurs c'est assez intéressant parce que php permet d'avoir n'importe quel caractère dans une chaîne de caractère, y compris le caractère nul. Mais il n'y a visiblement aucune vérification de la part de php avant d'appeler les fonctions C derrière. Du coup les tests en php portent sur le nom complet qui ne correspond pas forcément au nom du fichier créé.
Il me semble que ce bug est connu depuis longtemps, je me demande pourquoi ce n'est toujours pas corrigé (du moins dans php5 pour ce que j'ai testé).


Sinon, pour les images, je pensais à un fichier qui s'appel : <img src="image.png" onload="alert()">.mp3

Mais avec les magic quotes ça va être difficile. À moins de ne pas mettre de guillemets et se baser que l'interprétation du code crado par les navigateurs. Cela dit, note que aux dernières nouvelles, seul IE accepte de n'avoir aucun paramètre à la fonction alert, pour firefox il faut au moins une chaîne vide. Mais bon, y'a des tas de manière de générer des chaînes de caractère sans un seul guillemet.
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Apophis1988



Inscrit le: 05 Aoû 2007
Messages: 69

Message Posté le: Mar Jan 15, 2008 10:53 am  |   Sujet du message: Répondre en citant
je pense qu'on ne s'est peut etre pas compris. Selon moi, une verification correcte repose sur la verification de l'extension et la verification du type MIME. Maintenant si je comprend ce que tu veux dire: le type MIME peut etre falsifié. Maintenant je ne pige pas quand tu dis que c'est par une en-tete http. Je me trompe peut etre mais cette entete se falsifie dans le html?
Ensuite, pareil: quand tu dis qu'il faut faire la requette à la main pour le caractere nul, ca signifie coder sa propre page html qui envoie le fichier par post?

Ah et finalement je suis tres interessé par savoir comment tu t'y prend pour generer une chaine sans un guillemet. Au risque de paraitre pour un fainéant qui n'attend que des reponses toutes faites (oh oui je sais à quel point cela t'irrite, vu le temps que j'ai passé ici à observer les fils de discussion sans intervenir Very Happy), j'ai pensé à concat() mais je ne sais pas s'il a un equivalent autre qu'en SQL et de plus il faudrait l'appeler depuis des guillemets deja, je pense.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Mar Jan 15, 2008 5:19 pm  |   Sujet du message: Répondre en citant
Citation:
Selon moi, une verification correcte repose sur la verification de l'extension et la verification du type MIME.
Le type MIME, bof bof. Généralement le navigateur va se contenter associer le type MIME à l'extension du nom du fichier trouvé. Et il suffit que la table d'association extension -> type MIME soit différente entre le client et serveur pour que tu détecte un "truc louche".

Citation:
Maintenant je ne pige pas quand tu dis que c'est par une en-tete http. Je me trompe peut etre mais cette entete se falsifie dans le html?
Ensuite, pareil: quand tu dis qu'il faut faire la requette à la main pour le caractere nul, ca signifie coder sa propre page html qui envoie le fichier par post?
Non
et Non.
Tu trouveras facilement des tutos sur le protocole HTTP sur le web. Cela dit, j'ai été un peu rapide ce matin, le type MIME n'est pas dans une en-tête, mais dans le corps de la requête HTTP.


Pour générer une chaîne de caractère, sans guillemets, apprends javascript.
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Apophis1988



Inscrit le: 05 Aoû 2007
Messages: 69

Message Posté le: Mar Jan 15, 2008 10:22 pm  |   Sujet du message: Répondre en citant
Merci Celibi, j'avance à grands pas.
Il se trouve que comme je le disais tantot, concat() existe aussi en javascript et comme tu me l'as suggeré, il semble bien que le navigateur (firefox) gobe l'image passée en parametre à <img src=> meme sans les guillemets. Maintenant je suis dans la partie de generation de la chaine sans guillemet.
Comme tu l'a indiqué, j'aimerai bien pouvoir faire un truc du type
Code:

onload=alert(concat(char(39),char(32),char(84),char(32),char(109),char(111),char(114),char(116), char(39)))

Mais je pense pas que char() existe en JS (ou du moins je n'ai trouvé que CharAt() mais qui ne fait pas mon affaire)
Existe-t-il une methode telle que char() qui retourne le caractere ascii du code passé en parametre en Javascript?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Mer Jan 16, 2008 12:45 am  |   Sujet du message: Répondre en citant
Oui ça existe, et c'est une méthode de l'objet String.
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Apophis1988



Inscrit le: 05 Aoû 2007
Messages: 69

Message Posté le: Mer Jan 16, 2008 2:55 pm  |   Sujet du message: Répondre en citant
Edit: Merci bien. Et au plaisir
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
The Hackademy Forum Index du Forum -> Unix & GNU/Linux Poster un nouveau sujet   Répondre au sujet

 
Sauter vers:  

Powered by phpBB
Theme modified by mOg & CrashFr
Traduction par : phpBB-fr.com