[php] inkomende sockets aanvaarden (en bekijken)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik met php een pagina probeer te fetchen, krijg ik volgende boodschap:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
HTTP/1.1 400 Bad Request

Content-Type: text/html

Date: Wed, 22 Jun 2005 18:02:20 GMT

Connection: close

Content-Length: 42



<h1>Bad Request (Invalid Header Name)</h1>

En omdat ik maar niet kan vinden wat ik verkeerd typ, zou ik graag eens met mezelf "fsockopen()'en" :) om te kijken welke headers nu daadwerkelijk verstuurd worden (kan ze dan vergelijken met deze die firefox zou sturen met de "live http headers" plugin)
Bestaan hiervoor programma'tjes of andere simpele manieren?


PS: moest iemand zich geroepen voelen:
de code is
PHP:
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
<?php
$cookie_PHPSESSID=$_GET['a'];
$mail2="bg%40hotmail.com";
$password2="porsche";
$postdata = "mail2=$mail2&password2=$password2&submitt=Verzenden"; 

$request = "POST /mm/bende/password.php HTTP/1.1\r\n";
$request .= "Host: gradict.kahosl.be\r\n";
$request .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL; rv:1.7.8) Gecko/20050511 Firefox/1.0.4\r\n";
$request .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$request .= "Accept-Language: nl-NL,nl;q=0.7,en;q=0.3\r\n";
$request .= "Accept-Encoding: gzip,deflate\r\n";
$request .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
$request .= "Keep-Alive: 300\r\n";
$request .= "Connection: keep-alive\r\n";
$request .= "Referer: http://gradict.kahosl.be/mm/bende/index.php\r\n";
$request .= "Cookie: PHPSESSID=$cookie_PHPSESSID\r\n";
$request .= "Content-Type: application/x-www-form-urlencoded\r\n";
$request .= "Content-Length: ".strlen($postdata)."\r\n";
$request .= "$postdata\r\n";
$request .= "\r\n";


$fs = fsockopen("gradict.kahosl.be", 80, $errno, $errstr, 20);
$buffer="";
if (!$fs) {
    echo "$errstr ($errno)<br>\n";
} else {
  fputs($fs, $request);
  //echo $request;
  while (!feof($fs)) {
    $buffer .= fgets($fs, 4096);


}
  fclose ($fs);


$filename = 'password.tmp'; 
if (is_writable($filename)) { 
   if (!$handle = fopen($filename, 'w')) { 
         print "Kan het bestand niet openen ($filename)"; 
         exit; 
   } 
   if (!fwrite($handle, $buffer)) { 
       print "Kan niet schrijven naar bestand ($filename)"; 
       exit; 
   } 
   //print "Succes, geschreven ($buffer) naar bestand ($filename)"; 
   fclose($handle); 
} else { 
   print "Het bestand $filename is niet schrijfbaar"; 
}


}
preg_match_all("/cookie_pc=([\s\S]*?);/im", $buffer, $matches);
$cookie_pc=$matches;
print_r($cookie_pc);
?>

[ Voor 65% gewijzigd door Verwijderd op 29-12-2010 17:21 ]


Acties:
  • 0 Henk 'm!

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 20-09 00:06
Regel 20 en 21 omdraaien?

Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

In een client request? Nee, dat moet allemaal ondermekaar en na een lege regel stuurt de server je pas data.

Voor de TS.. Je zou een packetsniffer kunnen gebruiken.

Acties:
  • 0 Henk 'm!

  • PowerFlower
  • Registratie: Juni 2001
  • Laatst online: 20-09 21:00

PowerFlower

être diable et jouer fleur

Radiant schreef op woensdag 22 juni 2005 @ 20:47:
Voor de TS.. Je zou een packetsniffer kunnen gebruiken.
Is een request niet veel makkelijker te "oefenen" door gewoon te telnetten naar poort 80 van de server waar je wat van wil? Kun je net zo lang proberen tot het werkt en je ziet álles.

Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

PowerFlower schreef op woensdag 22 juni 2005 @ 21:39:
[...]


Is een request niet veel makkelijker te "oefenen" door gewoon te telnetten naar poort 80 van de server waar je wat van wil? Kun je net zo lang proberen tot het werkt en je ziet álles.
Ik dacht juist dat hij graag wou zien wat er nou precies naar de server verstuurt werd.. Maar ik kan het verkeerd begrepen hebben.. Als hij dat bedoelt is dat een betere optie inderdaad.

[ Voor 3% gewijzigd door Radiant op 22-06-2005 21:47 ]


Acties:
  • 0 Henk 'm!

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 20-09 00:06
Radiant schreef op woensdag 22 juni 2005 @ 20:47:
[...]

In een client request? Nee, dat moet allemaal ondermekaar en na een lege regel stuurt de server je pas data.
Het moet toch echt zo hoor, kijk ook maar eens naar de foutmelding van de server: "Invalid Header Name".
Voor de TS.. Je zou een packetsniffer kunnen gebruiken.
Zoals bijvoorbeeld www.ethereal.com

Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Ah ja je hebt gelijk, ik was in de war met iets anders (output in PHP :z )
http://developers.sun.com...lity/midp/ttips/HTTPPost/

Acties:
  • 0 Henk 'm!

  • mr_star
  • Registratie: Maart 2003
  • Laatst online: 16-05 13:15
Wat ik altijd gebruik om de headers te controleren is HTTP viewer. Dit werkt imho veel overzichtelijker dan telnetten o.i.d.
Pagina: 1