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

Langage PHP Discussion :

Simuler une identification via un script


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Par défaut Simuler une identification via un script
    Bonjour tout le monde,
    Je ne post pas souvent, donc c'est normal si vous ne me connaissez pas
    Bref, passons à ma question :

    Je cherche à extraire les informations d'une page, necessitant d'être identifié pour y accéder.
    Mon problème étant que pour accéder à cette page, il faut que je m'identifie
    (Je préviens d'avance, CE N'EST EN AUCUN CAS POUR FAIRE QUELQUE CHOSE D'ILLEGAL, je possède un login et un mot de passe valide, bref, c'est juste pour s'identifier automatiquement), sauf que j'aimerai faire ça à partir d'un script, j'ai donc commencé à sniffer les packets post envoyés au serveur lors de mon identification au site via le formulaire, mais je n'arrive pas à reconstituer la procédure complète, je comptais reproduire cette procédure d'identification dans le script et envoyer les packets grâce à un socket.
    Mon second problème est de récupérer l'id session après identification pour pouvoir accéder à la page en question.

    Merci d'avance.

    Coma.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par Comawhite
    Mon second problème est de récupérer l'id session après identification pour pouvoir accéder à la page en question.
    Tout dépend de la configuration du serveur en question, généralement il s'agit d'un cookie de session (détruit par le navigateur lorsque vous le fermez) ou bien cet identifiant figure sur la page (configurations standards).

    Pour renvoyer des données par un script avez-vous vu que vous pouviez utiliser fsockopen ou encore faire plus simple avec l'extension curl ?


    Julp.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Par défaut
    Oui j'utilise justement fsockopen, le problème étant que j'aimerai récupérer le contenu entier des packets reçus par le navigateur, et non juste le HTML comme cURL fait.
    Avec fsockopen je n'arrive pas non plus à récupérer le packet en entier. Peut-être que je m'y prends mal.
    Ensuite le problème vient du fait que je n'arrive pas à reconstituer la phase d'identification : validation du formulaire, envoie des données du post, récupérer l'id session.

    Merci d'avance !

    Coma.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Curl vous permet également de récupérer les en-têtes HTTP. Mais ni Curl ni fsockopen ne vous permettront de récupérer les paquets TCP/IP : c'est trop bas niveau pour eux. Vous pouvez très bien envoyer des données POST (simulation de validation de formulaire) avec fsockopen comme avec curl (ce dernier étant indéniablement plus simple à utiliser dans ce cas). Un exemple ici.

    Récupérer l'id de session n'est pas très simple ni fiable surtout si le site en question est protégé contre le vol (il suffirait que vous changiez de navigateur pour annuler la session). J'ignore si deux appels successifs de pages sur le même serveur avec le même script (Curl) correspondent à la même session.


    Julp.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Par défaut
    D'accord je vais essayer, merci !

    Coma.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Par défaut
    [Edit] J'ai finalement trouvé comment faire, tout fonctionne, j'arrive à récupérer l'IDSESSION, etc...
    Je nettoie un peu ma source et je post mon code pour ceux que ça intéresserais !

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?
    /*
    ** SendPacket
    */
    function SendPacket($Str_URL,$Str_Post=false,$Str_Cookie=false){
    	//Initialise l'objet cURL
    	$cURL=curl_init();
     
    	//Configure l'URL
    	curl_setopt($cURL,CURLOPT_URL,$Str_URL);
     
    	//Inclue le header dans la source
    	curl_setopt($cURL,CURLOPT_HEADER,true);
     
    	//Renvoie la source dans une variable
    	curl_setopt($cURL,CURLOPT_RETURNTRANSFER,1);
     
    	if($Str_Cookie){
    		//Envoie les informations de cookie
    		curl_setopt($cURL,CURLOPT_COOKIE,$Str_Cookie);
    	}
     
    	if($Str_Post){
    		//Prépare l'envoie d'une requête POST
    		curl_setopt($cURL,CURLOPT_POST,1);
     
    		//Contenu de la requête POST
    		curl_setopt($cURL,CURLOPT_POSTFIELDS,$Str_Post);
    	}
     
    	//Exécute la requête
    	$Str_Source=curl_exec($cURL);
     
    	//Ferme l'objet cURL
    	curl_close($cURL);
     
    	//Renvoie le packet reçu
    	return $Str_Source;
    }
     
    /*
    ** FindCookie
    */
    function FindCookie($Str_Header,$Str_Name,$Int_Length=32){
    	//Taille du nom de la propriété du cookie
    	$Int_NameLen=strlen($Str_Name);
     
    	//Renvoie le résultat sous la forme "Nom=Valeur"
    	return substr($Str_Header,strpos($Str_Header,$Str_Name),$Int_Length+$Int_NameLen);
    }
     
    //Envoie une requête POST
    SendPacket("http://www.sg-univers.fr/login_redirige.php","univers=http://ns21345.ovh.net/uni5/&login=xxx&password=xxx&mail=cache");
     
    //Envoie une requête POST
    $Str_Source=SendPacket("http://ns21345.ovh.net/uni5/login_action.php","login=xxx&passs=xxx&mail=cache");
     
    //Récupère l'ID Session dans les cookies
    $PHPSESSID=FindCookie($Str_Source,"PHPSESSID=");
     
    //Récupère la valeur de "wtf_powa" dans les cookies
    $WTF_POWA=FindCookie($Str_Source,"wtf_powa=");
     
    //Envoie une requête GET
    $Str_Source=SendPacket("http://ns21345.ovh.net/uni5/prod.php",false,"$WTF_POWA; $PHPSESSID");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<title>Script d'identification</title>
    	</head>
    	<body>
    		<h3>http://ns21345.ovh.net/uni5/prod.php</h3>
    		<code><pre><?=htmlentities($Str_Source);?></pre></code>
    	</body>
    </html>
    Bien-sûr j'ai enlevé mon login et mon mot de passe, mais si vous en avez, vous pouvez essayer, ça fonctionne sans problèmes !

    A bientôt !

    Coma.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Simuler une identification HTTP
    Par AnkyFive dans le forum Web
    Réponses: 7
    Dernier message: 21/11/2006, 11h07
  2. Passer une variable dans une image via un script
    Par Lomig dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2006, 17h10
  3. Ouverture d'une image via un script PHP
    Par passie dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 24/01/2006, 17h10
  4. Exporter une variable via un script sous KSH
    Par Snivel dans le forum Linux
    Réponses: 4
    Dernier message: 09/12/2005, 16h44
  5. Ajout de champs à une table via un script ?
    Par mathias dans le forum Access
    Réponses: 1
    Dernier message: 05/12/2005, 23h02

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