IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Création d'un reconstructeur de page web depuis un fichier pcap


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut Création d'un reconstructeur de page web depuis un fichier pcap
    Salut tout le monde!!!

    J'aimerais faire un soft qui permette de reconstruire les pages web visitées à partir d'un fichier pcap.

    Donc j'ai le début : filtrer mon fichier pcap pour ne garder que les trames tcp sur le port 80.
    Ensuite il faut les classer pour le moment rien de bien compliquer.

    là ou ca se complique c'est comment est ce que je peux faire pour depuis une trame savoir s'il s'agit de la trame d'une page web et non d'une image. Enfin je pense qu'en lisant dans la trame si j'ai quelque chose comme .html ou .php ou .asp à la fin du lien ca voudra dire que c'est une page. Mais ou est cette info? dans la payload ou ailleurs?

    Ensuite reste plus qu'à mettre le tout dans un fichier.htm ou .php c'est du pareil au même je pense.

    il y a Chaos reader qui fait ca, mais c'est super long. Donc j'essaie d'en écrire un en C.

    j'espère que vous pourrez m'éclairer sur le sujet.

    Merci d'avance

  2. #2
    vic
    vic est déconnecté
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Par défaut
    Hello,

    Tu peux faire ça avec Ethereal : clic droit sur un paquet puis "Follow TCP stream"

    Si tu veux le faire "à la main", l'info se trouve dans le header HTTP Content-type. Par exemple pour cette page du forum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HTTP/1.1 200 OK
    .
    .
    .
    Content-Type: text/xml; charset=ISO-8859-1
    Pour une image, tu auras "Content-Type: image/gif" ou image/png, image/jpg, etc ...

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    Ah ok d'accord .
    Donc en gros après je peux rediriger les flux par suivi de trame direct c'est bien ca?

    Dans le cas d'une image, est ce que champ doit être retiré du fichier pour avoir l'image bien comme il faut?

    Autre question juste pour etre sûr, est ce qu'en ethernet les en tête sont de taille fixe? en regardant avec wireshark, la taille des en tête et de 56 octets sur les 1500 de la MTU.
    est ce que je me trompe ou pas?

    Merci

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    La taille d'une entête ethernet est fixe et est de 14 octet.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    Ok merci.

    Donc je prend les paquets qui contienne une en-tête content type=...
    Et ensuite je cherche les suivant (les continuation data). Mais heu comme savoir si ces paquet sont bien ceux de la page Web?

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Pour ce genre de problèmatique, il faut une bonne conception :
    ce que tu récupères, ce sont des trames ethernet, donc il faut
    - vérifier que la couche supérieure est bien IP et non ARP par exemple (champs "type")
    - vérifier que la couche supérieure est bien TCP (champs "protocol")
    - vérifier que la couche supérieur est bien HTTP, là tu n'as plus le choix, il faux analyser le contenu et pas seulement l'entête, le plus simple est quand même de partir d'une nouvelle connexion en cherchant un "3 way handshake" (SYN), ensuite tu reconstruit ta requête en te basant sur les numéro de séquence TCP jusqu'à la fin de la connexion. Autant le dire tout de suite, c'est lourd et c'est pour ça que d'ordinaire c'est fait en kernel space.

Discussions similaires

  1. Création de page web depuis un fichier XML
    Par hoshizora dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 06/06/2012, 08h33
  2. Piloter une page Web depuis Excel en VBA
    Par ilcocodrillo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/08/2008, 16h57
  3. [VB6] Piloter une page web depuis VB
    Par GnarlyYoyo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 14/04/2007, 00h00
  4. appler une page web depuis un script cgi
    Par Bestop dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 26/08/2006, 11h09
  5. Javascript pour charger une page web depuis un menu déroulan
    Par tomguiss dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/10/2005, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo