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 :

Valider formulaire web avec fsockopen


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    décembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : décembre 2005
    Messages : 159
    Points : 108
    Points
    108
    Par défaut Valider formulaire web avec fsockopen
    Bonjour,

    Je souhaite valider un formulaire web via la fonction fsockopen (pour faire passer le mot de passe avec la requete au lieu que ce soit l'utilisateur qui le fasse à chaque fois).

    J'ai donc fait la manip "normalement" en tapant le mot de passe, pour récupérer la requete avec wireshark :
    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
    POST /admin/npvr_schedule_recs.php HTTP/1.1
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, */*
    Referer: http://10.0.1.100/admin/npvr_schedule_recs.php
    Accept-Language: fr
    Content-Type: application/x-www-form-urlencoded
    UA-CPU: x86
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)
    Host: 10.0.1.100
    Content-Length: 343
    Connection: Keep-Alive
    Cache-Control: no-cache
    Cookie: PHPSESSID=6e2c3d719690cb07a296ef4b50e0daac
    Authorization: Basic YWRtaW46cGFyaXM=
    path_mode=list&disk_path=disk3&name=1_1_29022008_180000&multicast=1&dest_ip=225.7.90.23&dest_port=1234&start_year=2008&start_month=02&start_day=29&start_hour=18&start_minute=00&start_second=00&end_year=2008&end_month=02&end_day=29&end_hour=20&end_minute=00&end_second=00&each=&request=schedule&button_schedule_rec.x=11&button_schedule_rec.y=13
    et je l'ai transformé en ça :
    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
    $data = "POST /admin/npvr_schedule_recs.php HTTP/1.1\r\n
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, */*\r\n
    Referer: http://10.0.1.100/admin/npvr_schedule_recs.php\r\n
    Accept-Language: fr\r\n
    Content-Type: application/x-www-form-urlencoded\r\n
    UA-CPU: x86\r\n
    Accept-Encoding: gzip, deflate\r\n
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)\r\n
    Host: 10.0.1.100\r\n
    Content-Length: 343\r\n
    Connection: Keep-Alive\r\n
    Cache-Control: no-cache\r\n
    Cookie: PHPSESSID=6e2c3d719690cb07a296ef4b50e0daac\r\n
    Authorization: Basic YWRtaW46cGFyaXM=\r\n
    path_mode=list&disk_path=disk3&name=1_1_29022008_180000&multicast=1&dest_ip=225.7.90.23&dest_port=1234&start_year=2008&start_month=02&start_day=29&start_hour=18&start_minute=00&start_second=00&end_year=2008&end_month=02&end_day=29&end_hour=20&end_minute=00&end_second=00&each=&request=schedule&button_schedule_rec.x=11&button_schedule_rec.y=13\r\n
    \r\n \r\n
    ";
     
    $result = request("10.0.1.100", 80, $data);
    print_r($result);
     
    function request($ip, $port, $data){
    	$result = "";
    	$fp = fsockopen($ip, $port, $errno, $errstr, 30);
    	if ($fp) {
    		fwrite($fp, $data);
    		stream_set_timeout($fp, 15);
    		$result = fread($fp, 2000);
    		$info = stream_get_meta_data($fp);
    		fclose($fp);
    		if ($info['timed_out']) $result = "Time Out";
    		return $result;
    	}
    	else return "";
    }
    Il me renvoit une erreur 400 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HTTP/1.1 400 Bad Request Date: Fri, 29 Feb 2008 15:04:08 GMT Server: Apache Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 143 
    Bad Request
    Your browser sent a request that this server could not understand.
    client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /admin/npvr_schedule_recs.php
     
    0

    Quelqu'un voit où est l'erreur?
    Quelqu'un a une autre méthode ? Je cherche a envoyer des variables post sur le serveur, sachant que je connais le mot de passe bien sur.

    Merci d'avance

  2. #2
    Expert confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 999
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 999
    Points : 5 672
    Points
    5 672
    Par défaut
    Citation Envoyé par madislak Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $data = "POST /admin/npvr_schedule_recs.php HTTP/1.1\r\n
    Accept: image/gif, image/x-xbitmap, ...\r\n
    Referer: http://10.0.1.100/admin/npvr_schedule_recs.php\r\n
    Accept-Language: fr\r\n
    ...
    Donc là concrètement tu envoies ceci au serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    POST /admin/npvr_schedule_recs.php HTTP/1.1
     
    Accept: image/gif, image/x-xbitmap, ...
     
    Referer: http://10.0.1.100/admin/npvr_schedule_recs.php
     
    Accept-Language: fr
     
    ...
    La requête est mal formée.
    Bref, construis ta requête de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $post = "POST ...\r\n"
          . "Accept: image/gif, ...\r\n"
          . "Referer: http://10.0...\r\n"
          . "... \r\n"
          . "\r\n" ;
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

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

Discussions similaires

  1. Envoie de formulaire web avec C#
    Par neylud dans le forum C#
    Réponses: 7
    Dernier message: 21/06/2010, 21h59
  2. validation formulaire js avec vbs
    Par fab! dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/03/2010, 14h43
  3. Formulaire web avec aspx
    Par jkamelin dans le forum Débuter
    Réponses: 1
    Dernier message: 22/07/2009, 12h07
  4. valider un formulaire WEB avec Entrée
    Par quelcun.max dans le forum W4 Express
    Réponses: 1
    Dernier message: 19/03/2008, 11h30
  5. remplir un formulaire Web avec delphi
    Par lassmust dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/04/2006, 19h36

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