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

Web Perl Discussion :

Authentificatrion d'un bot à un site internet


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut Authentificatrion d'un bot à un site internet
    Bonjour à tous,

    Je tente vainement de construire un bot en perl capable de se connecter à ce site : 178.33.132.12
    A l'appel du site, je reçois un cookie PHPSESSID et une variable infolog est générée.
    Je récupère la valeur de infolog et je reconstruis le lien de connexion que je passe à l'user agent.
    Mais je suis systématiquement jeté et reste vainement sur la page de log

    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
    #!/usr/bin/perl -w
        use strict;
        use LWP::UserAgent;
        use HTML::Form;
        use HTTP::Cookies;
     
    # initialisation de l'agent
        my $ua = LWP::UserAgent->new(
            agent      => 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0',
            cookie_jar => HTTP::Cookies->new(
                file           => 'LWPcookies.txt',
                autosave       => 1,
                ignore_discard => 1,        
            )
        );
     
    # initialisation de la requete
        my $base = 'http://178.33.132.12/';
        my $res  = $ua->request(HTTP::Request->new( GET => $base ));
        my $form = HTML::Form->parse($res->decoded_content,
                base => $res->base,
                charset => $res->content_charset,
        );
     
    # afficher le Infolog
        my $infolog = $form->find_input('infolog')->value;
        print($infolog);
     
    # se logger
        my $user = 'LOGIN';
        my $pass = 'PASSWORD';
        my $loginlink = 'http://178.33.132.12/index.php?infolog=' . $infolog . '&Login=' . $user . '&password=' . $pass . '&btn_login.x=66&btn_login.y=17';
        $ua->request(HTTP::Request->new( GET => $loginlink ));
    Cette solution ne convient pas, comment puis-je procéder ?
    J'ai un outil (Burp) qui me permet d'intercepter l'ensemble des requêtes et réponses mais j'avoue avoir bien du mal à exploiter les infos.

    En vous remerciant.

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 6
    Par défaut Cette demande :
    Il faut considérer que le PERL est un langage mort et passer à autre chose vu le nombre d'intervention ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 87
    Par défaut
    Bonjour,

    Je ne sais pas comment se fait l'auth sur le site, mais parfois une url ne suffit pas, surtout s'il y a un cookie.

    un exemple ci dessous avec un seul champ dans le formulaire, qui correspond au password
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    my $req = HTTP::Request->new( GET => "$host" );
     
    # execute la requete et recoit la reponse
    my $res = $ua->request($req);
    die $res->status_line if not $res->is_success;
     
    # le formulaire de login est le premier formulaire de la page
    my $form = ( HTML::Form->parse( $res->content, $host ) )[0];
     
    # on remplit les champs
    $form->find_input('SessionLoginForm')->value($pass);
     
    $ua->request( $form->click );
    Cdlt,

Discussions similaires

  1. [ETUDES] Formation Infographie-Conception de sites Internet
    Par mastercartman dans le forum Etudes
    Réponses: 29
    Dernier message: 13/07/2012, 11h20
  2. Comment identifier le nom du serveur des sites internet ?
    Par Xavier dans le forum Web & réseau
    Réponses: 7
    Dernier message: 24/07/2005, 19h35
  3. site internet en reseau local
    Par faamugol dans le forum Développement
    Réponses: 3
    Dernier message: 21/10/2004, 17h57
  4. connexion a une base de donnée distante mysql(site internet)
    Par rollernox dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2004, 13h14
  5. Pb de connexion sécurisée pour sites Internet et Intranet
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/07/2003, 16h16

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