Website laden: GET- und POST-Request

Samstag, 29. Mai 2010, 14:12 Uhr |  Autor:

Es kann verschiedene Gründe geben weshalb der Download einer Website gewünscht wird. Bei mir hat es meist damit zutun dass ich eine Schwachstelle in einer Website gefunden habe und die anfallenden Daten speichern muss , um diese einfacher auswerten zu können.

GET-Request

Eine Website zu laden, deren URL komplett mit allen übertragenen Parametern in der Adresszeile des Browsers angezeigt wird, ist mit PHP sehr einfach möglich.

$seite = file_get_contents('http://sld.tld/?x=1&y=2');
$datei = fopen('file.txt', 'w');
fputs($datei, $seite);
fclose($datei);

Die Website http://sld.tld/?x=1&y=2, bzw. der Quellcode der im Browser angezeigt werden würde, wird in der Datei file.txt gespeichert.

POST-Request

Werden in der Adresszeile allerdings nicht alle übertragenen Parameter angezeigt, dann muss schon etwas mehr Aufwand betrieben werden, um die Seite speichern zu können.

$post = array(
  'var1' => 'a',
  'var2' => 'b',
  'var3' => 'c'
);

$context_options = array (
  'http' => array (
  'method' => 'POST',
  'header' =>
    "Content-type: application/x-www-form-urlencoded\r\n".
    "Content-length: ".strlen(http_build_query($post))."\r\n".
    "Referer: http://sld.tld \r\n".
    "User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)\r\n",
  'content' => http_build_query($post)
  )
);

$context = stream_context_create($context_options);
$seite = file_get_contents(
  'http://sld.tld/page',false,$context
);

$datei = fopen('file.txt', 'w');
fputs($datei, $seite);
fclose($datei);

Auch dieses Beispiel speichert die Website in der Datei file.txt ab. Die einzelnen zu übertragenen Parameter werden in dem Array der Variable $post hinterlegt. Da manchmal der Referer, also die aufrufende Seite, für die korrekte Funktion einer Seite erforderlich ist, kann auch dies hinterlegt werden.

Tags »   

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: myQuellcode

Kommentare und Pings sind geschlossen.