lost144
Goto Top

Passwortgeschütze Seiten auslesen

Hallo,

Ich möchte gerne eine Webseite die mit einem User und Passwort geschützt ist auslesen. Das heißt das ich in dem Quellcode
die Versionsnummer des Programms auslesen möchte.
Bisher konnte ich es erfolgreich mit diesem Code lösen, aber der ist nur für ungeschützte Seiten:

<php>

		$html = file_get_contents($url);
				

				$posstartTE = strpos($html, "Version:");  
				$posendTE = strpos($html, "Bui");  
				$laengeTE = $posendTE - $posstartTE;

				$versionear = substr($html, $posstartTE, $laengeTE);
				$versionear = substr($versionear, strpos($versionear, "<span "));  
				$versionear = substr($versionear, strpos($versionear, ">"));  
				$versionear = substr($versionear, 1, strpos($versionear, "<")-1);  


				$versionear = strip_tags($versionear);

<?
Er liest mir aus dem Quellcode ab dem Punkt "Version" bis zum Punkt "Bui" alles aus.

Nun die Frage. Gibt es in PHP ne Lösung eine Seite die Passwortgeschützt ist auch auszulesen?
Ich weiß den User und das Passwort.

Vielen Dank

Mit freundlichen Grüßen

Lost144

Content-Key: 237011

Url: https://administrator.de/contentid/237011

Printed on: April 16, 2024 at 13:04 o'clock

Member: wiesi200
wiesi200 May 02, 2014 at 07:45:13 (UTC)
Goto Top
Hallo,

mal ersten's hier gibt's eine Codeformatierung.

Dann also zu meinem Verständnis eines Passwort Schutz gehört eigentlich dazu das man ohne Passwort nicht darauf zugreifen kann.
Oder verstehe ich da was falsch?
Member: colinardo
colinardo May 02, 2014 updated at 07:55:43 (UTC)
Goto Top
Hallo Lost144,
dazu musst du erst mal wissen wie die Seite passwortgeschützt ist. Wenn der Login über ein Formular geschieht geht dies ähnlich wie hier, mit einem Post-Request::
http://stackoverflow.com/questions/5647461/how-do-i-send-a-post-request ...

Wenn es sich um HTTP Basic Auth handelt, z.B: so mit curl:
http://stackoverflow.com/questions/6772536/php-get-content-of-a-protect ...

Grüße Uwe
Member: Lost144
Lost144 May 02, 2014 at 07:58:14 (UTC)
Goto Top
Dies ist eine Webbassierte Seite eines Programmes um die Daten im Web anzeigen zu lassen.
Diese Seite gehört unserer Software daher bin ich berechtigt dies auszulesen
Member: Lochkartenstanzer
Lochkartenstanzer May 02, 2014 updated at 08:57:04 (UTC)
Goto Top
Zitat von @Lost144:

Dies ist eine Webbassierte Seite eines Programmes um die Daten im Web anzeigen zu lassen.
Diese Seite gehört unserer Software daher bin ich berechtigt dies auszulesen

Darum ging es ja nicht, sondern darum auf welche Art und weise das Programm das Paßwort abfragt. Es gibt da sehr unterschiedliche Methoden und dementsprechend muß man der Webanwendung entsprechend vorgekaut Username und Paßwort vorsetzen.

Siehe dazu auch Uwes Links.

lks

PS: Ich werfe dann meistens Wireshark an, um zu schauen, was da die Systme miteinander reden. face-smile
Member: Lost144
Lost144 May 02, 2014 at 08:24:39 (UTC)
Goto Top
Zitat von @colinardo:

Hallo Lost144,
dazu musst du erst mal wissen wie die Seite passwortgeschützt ist. Wenn der Login über ein Formular geschieht geht dies
ähnlich wie hier, mit einem Post-Request::
http://stackoverflow.com/questions/5647461/how-do-i-send-a-post-request ...

Wenn es sich um HTTP Basic Auth handelt, z.B: so mit curl:
http://stackoverflow.com/questions/6772536/php-get-content-of-a-protect ...

Grüße Uwe

Ich habe unten den link von Dir genommen und den Code angepasst und er hat sich leider nicht angemeldet.

Eine Frage zu Deinem ersten Link:
Wo genau packe ich dort den user und das Passwort rein?

$url = 'http://server.com/path';  
$data = array('key1' => 'value1', 'key2' => 'value2');  

// use key 'http' even if you send the request to https://... 
$options = array(
    'http' => array(  
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",  
        'method'  => 'POST',  
        'content' => http_build_query($data),  
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

var_dump($result);
Member: colinardo
colinardo May 02, 2014 updated at 08:40:30 (UTC)
Goto Top
Zitat von @Lost144:

Eine Frage zu Deinem ersten Link:
Wo genau packe ich dort den user und das Passwort rein?
wie bereits von lks gesagt musst du den login analysieren, entweder mit wireshark oder den Entwicklertools der Browser (F12)
Dann musst du herausfinden wie die Parameter für Username und Passwort heißen, und dann so eintragen:
 $data = array('username' => 'userxyz', 'password' => 'geheim');  
Da du aber nichts weiter über deine Seite erwähnst, ist das hier nur Spekulation mit der Glaskugel. Einen einheitlichen copy n' paste Weg für alle Loginvarianten gibt es nicht !!

Grüße Uwe
Member: Lost144
Lost144 May 02, 2014 at 08:41:43 (UTC)
Goto Top
Die Parameter heißen j_username und j_password

Habe den Code so angepasst
<?php
$url = 'test';  

$data = array('j_username' => 'test', 'j_password' => 'geheim');  

// use key 'http' even if you send the request to https://... 
$options = array(
    'http' => array(  
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",  
        'method'  => 'POST',  
        'content' => http_build_query($data),  
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

var_dump($result);
?>

Als Ausgabe bekomme ich:
string(5479) "inhalt"
Aber leider der Inhalt mit dem Anmeldeformular
Member: colinardo
colinardo May 02, 2014 updated at 08:49:39 (UTC)
Goto Top
es könnte auch sein das hier mit GET gearbeitet wird(eher unwahrscheinlich), oder das Formular schickt die Anmeldung an eine andere URL ...wie gesagt die Möglichkeiten sind hier vielfälltig
Member: Lost144
Lost144 May 06, 2014 at 07:39:04 (UTC)
Goto Top
So habe es eingesehen das ich es mit dieser Variante nicht auslesen kann.
Aber trotzdem vielen Dank für Eure Hilfe