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

Python Discussion :

Affichage de chaine extraite.


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Par défaut Affichage de chaine extraite.
    Bonjour,

    J'utilise scapy depuis peu dans le but de faire un sniffeur pouvant filtrer un certain type de donné (ici http). J'ai réussis à faire le programme ayant pour but d’afficher les données voulu mais je n'arrive pas à extraire une partie d'une chaine affiché. Voici tout d’abord le programme en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/usr/bin/env python
    from scapy.all import *
     
    def parse(pkt):
            if pkt.haslayer(TCP) and pkt.getlayer(TCP).dport == 80 and pkt.haslayer(Raw):
                    pkt.show()
     
    pkt = sniff(iface="eth0", filter = "tcp and port(80)",  prn=parse)
    Donc pour faire simple le programme sniff sur l'interface eth0 avec pour filtre le protocole tcp sur le port 80 ainsi je filtre par "Parse" les données à affiché.

    Le résultat arrive sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    WARNING: No route found for IPv6 destination :: (no default route?)
    ###[ Ethernet ]###
      dst       = mac
      src       = mac
      type      = 0x800
    ###[ IP ]###
         version   = 4L
         ihl       = 5L
         tos       = 0x0
         len       = 515
         id        = 57113
         flags     = DF
         frag      = 0L
         ttl       = 64
         proto     = tcp
         chksum    = 0x13be
         src       = 192.168.1.19
         dst       = 64.14.68.84
         \options   \
    ###[ TCP ]###
            sport     = 53944
            dport     = http
            seq       = 1966110975
            ack       = 3984368862
            dataofs   = 8L
            reserved  = 0L
            flags     = PA
            window    = 913
            chksum    = 0x4813
            urgptr    = 0
            options   = [('NOP', None), ('NOP', None), ('Timestamp', (43050, 1977702657))]
    ###[ Raw ]###
               load      = 'GET /html/demo/hello.html HTTP/1.1\r\nHost: www.december.com\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20100101 Firefox/10.0.12 Iceweasel/10.0.12\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\nIf-Modified-Since: Thu, 29 Jun 2006 17:05:33 GMT\r\nIf-None-Match: "299-4175ff09d1140"\r\nCache-Control: max-age=0\r\n\r\n'
    None
    Le problème arrive maintenant j'aimerais pouvoir n'affichier simplement que ce qu'il se passe dans la partie Raw . J'ai pensé à plusieurs choses notamment transformé le résultat en chaine et tenter de recherche à partir de "###[ Raw ] ###" ainsi que d'afficher à partir de load = mais je doute que ça fonctionne . J'ai recherché s'il y avait un moyen pour extraire via une fonction dans scapy dans ce but sans aucune réponse pour le moment.

    Si quelqu'un aurait une idée .
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Je connais pas scapy, mais dans la doc, j'ai vu une méthode sprintf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkt = sniff(iface="eth0", filter = "tcp and port(80)", prn=lambda x:x.sprintf("{Raw:%Raw.load%\n}")
    À tester...

Discussions similaires

  1. format affichage des chaines de caractères
    Par gorgonite dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 22h14
  2. [Tableaux] Affichage d'un extrait d'un contenu
    Par dedel53 dans le forum Langage
    Réponses: 8
    Dernier message: 18/03/2007, 00h16
  3. Réponses: 4
    Dernier message: 30/09/2006, 12h27
  4. Problème saisie et affichage de chaine
    Par sam.fet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/08/2006, 17h18
  5. [problème] affichage de chaines
    Par 123quatre dans le forum C
    Réponses: 12
    Dernier message: 07/01/2006, 20h47

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