Gå til innhold

[Løst] Lese data bak HTTP authentication


Anbefalte innlegg

Hvordan kan jeg lese en side som er beskyttet bak HTTP authentication med PHP?

 

For alle dere som har små, trådløse basestasjoner fra Telenor, har et eksempel her.

 

Jeg prøver å lese siden på accespointet mitt som lister aktive klienter, for å lage en log over hvem som er/var koblet til. Jeg har funnet adressen direkte til oversiktssiden, men som resten av konfigurasjonssystemet, er den beskyttet av admin/admin. (skal endre dette så snart jeg får loggføringen til å funke)

Endret av Kagee
Lenke til kommentar
Videoannonse
Annonse

Se http://www.php-mysql-tutorial.com/php-tuto...remote-file.php

De to første eksemplene har ikke mulighet for å sende med brukernavn/passord, men de to siste har.

 

I tillegg kan du, avhengig av serverkonfigurasjonen, bruke det eksterne programmet wget (standard på linux, se http://www.gnu.org/software/wget/) til å lagre nettsiden lokalt, og så åpne den som en vanlig lokal fil.

Altså noe sånt som exec('wget --username=blah --password=foo http://10.0.0.1/foo'); file_get_contents('lokalfil.htm'); (sikkert helt feil syntaks på alt sammen, du får slå det opp selv :)

Lenke til kommentar

Supert!! Tenkte ikke på wget - trodde ikke engang det ville funke når du skrev det. Men det funket perfekt. Jeg kan vel i teorien sende data til stdout og få det rett inn i PHP?

 

Skal se litt på koden, men wget ligger i PATH, og var enkelt nok.

 

EDIT: Linkene viste meg til HTTP Live Headers for FireFox, som var lettere å lese enn Wireshark. Da fant jeg ut at dette var alt jeg trengte.

PHP
<?

$fp fsockopen("10.0.0.140"80$errno$errstr30);

if (!$fp) {

echo "Error: $errstr ($errno)<br />";

} else {

$out "GET /wlstatbl.asp HTTP/1.1";

$out .= "Host: www.example.com";

$out .= "Connection: Keep-Alive: 300";

            //En slags kryptert versjon av admin/admin. 

            //fant den med Wireshark og Live HtTP Headers for FireFox

$out .= "Authorization: Basic YWRtaW46YWRtaW4=";

fwrite($fp$out);

while (!feof($fp)) {

  echo fgets($fp128);

}

fclose($fp);

}

?>

 

Hvordan får man PHP-fargekoding her på forumet? Har sett det noen ganger.... :hmm:

Endret av Kagee
Lenke til kommentar
Supert!! Tenkte ikke på wget - trodde ikke engang det ville funke når du skrev det. Men det funket perfekt. Jeg kan vel i teorien sende data til stdout og få det rett inn i PHP?

 

Skal se litt på koden, men wget ligger i PATH, og var enkelt nok.

 

EDIT: Linkene viste meg til HTTP Live Headers for FireFox, som var lettere å lese enn Wireshark. Da fant jeg ut at dette var alt jeg trengte.

<?php
$fp = fsockopen("10.0.0.140", 80, $errno, $errstr, 30);
if (!$fp) {
echo "Error: $errstr ($errno)<br />\n";
} else {
$out = "GET /wlstatbl.asp HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Keep-Alive: 300\r\n";
           //En slags kryptert versjon av admin/admin. 
           //fant den med Wireshark og Live HtTP Headers for FireFox
$out .= "Authorization: Basic YWRtaW46YWRtaW4=\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
 echo fgets($fp, 128);
}
fclose($fp);
}
?>

 

Hvordan får man PHP-fargekoding her på forumet? Har sett det noen ganger.... :hmm:

8011421[/snapback]

Fant et eksempel i php manualen, der så det ut som at det ble brukt base_64_encode av brukernavn og passord.

de hadde en slik linje:

$out .= "Authorization: Basic ".base64_encode(x401_user.":".x401_pass)."\r\n";

Lenke til kommentar
Spørs hvor mye det hjelper, men en gyldig URL kan se slik ut: http://brukernavn:[email protected]

8013528[/snapback]

 

Når jeg bruker: http://admin:[email protected], ber Opera fortsatt om passord, mens IE7 klager på en ugyldig adresse. Jeg vet dette funker på FTP, men på HTTP?

 

Det var vanskelig å redigere PHP-koden etter at man hadde fått den fargekodet. Fin med muligheten, :thumbup: men dårlig implementert. :thumbdown:

 

base64_decode('YWRtaW46YWRtaW4='); ble admin:admin :cool:

Lenke til kommentar
Spørs hvor mye det hjelper, men en gyldig URL kan se slik ut: http://brukernavn:[email protected]

8013528[/snapback]

 

Når jeg bruker: http://admin:[email protected], ber Opera fortsatt om passord, mens IE7 klager på en ugyldig adresse. Jeg vet dette funker på FTP, men på HTTP?

 

Det var vanskelig å redigere PHP-koden etter at man hadde fått den fargekodet. Fin med muligheten, :thumbup: men dårlig implementert. :thumbdown:

 

base64_decode('YWRtaW46YWRtaW4='); ble admin:admin :cool:

8017188[/snapback]

Vel, da kan man ikke si de kan ta inn en gyldige HTTP-url. Utgangspunktet er nemlig http://<host>:<port>/<path>?<searchpart>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...