[PHP] beveiligde website openen

Pagina: 1
Acties:

  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Jongens ik zit met een vraag en kan me niet voorstellen dat niemand op GOT dit kan oplossen.

Probleem: Ik wil dat php een beveiligde pagina inleest en echo't.

code om een NIET-beveiligde code te bekijken:
PHP:
1
<?$fp = fsockopen("www.yes2web.nl", 80, $errnum, $errstr);if ($fp) {    $brrr = "GET / HTTP/1.1\r\nHost: www.yes2web.nl\r\nConnection: close\r\n\r\n";    fputs ($fp, $brrr);    while (!feof($fp)) {        echo fgets ($fp,128);    }    fclose ($fp);} else {    echo "fuck";}?>

ECHTER, als ik nu een beveiligde directorie in $brrr invoer krijg ik naar behoren een 401 melding.(BV. $brrr = "GET /admin HTTP/1.1\r\nHost: www.yes2web.nl\r\nConnection: close\r\n\r\n";)

Nu moet daar volgens http://www.faqs.org/rfcs/rfc2617.html een authorisation header meegestuurd worden van de volgende vorm:
"Authorisation: Basic ".base64_encode("user:pass")."\r\n"

Nu is mijn vraag: Waar en hoe moet ik die in $brrr zetten? Iedere plek die ik probeer krijg ik nog steeds een 401 melding.

edit:
Sorry, topic vergeten!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

a) Waarom doe je het niet als fopen("http://www.mompel.nl/", "r");
b) Dan kan je ook fopen("http://a:b@www.mompel.nl/", "r"); doen

Rustacean


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Bij je headers natuurlijk, dus waarschijnlijk net na je 'Host: ...\r\n'

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

titel bijgewerkt

  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Op dinsdag 04 juni 2002 11:06 schreef ACM het volgende:
Bij je headers natuurlijk, dus waarschijnlijk net na je 'Host: ...\r\n'
Werkt dus niet. Dit leek mij ook logisch... ik heb het volgende:

$brrr = "GET /admin HTTP/1.1\r\nHost: www.yes2web.nl\r\nAuthorisation: Basic $shit\r\nConnection: close\r\n\r\n";

waarbij $shit de encoded user:pass is...

Verwijderd

Op dinsdag 04 juni 2002 10:57 schreef Bruk het volgende:
Jongens ik zit met een vraag en kan me niet voorstellen dat niemand op GOT dit kan oplossen.
wat een vertrouwen...
je kunt het ook altijd nog met curl proberen..

  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
CURL heb ik nie meegecompiled

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Moet je user en pass niet los encoden omdat anders de : ook wordt omgezet?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Volgens het voorbeeld op http://www.faqs.org/rfcs/rfc2617.html niet.
To receive authorization, the client sends the userid and password,
separated by a single colon (":") character, within a base64 [7]
encoded string in the credentials.

basic-credentials = base64-user-pass
base64-user-pass = <base64 [4] encoding of user-pass,

except not limited to 76 char/line>
user-pass = userid ":" password
userid = *<TEXT excluding ":">
password = *TEXT

Userids might be case sensitive.

If the user agent wishes to send the userid "Aladdin" and password
"open sesame", it would use the following header field:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Je hebt gelijk :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Op dinsdag 04 juni 2002 11:06 schreef Manuzhai het volgende:
a) Waarom doe je het niet als fopen("http://www.mompel.nl/", "r");
b) Dan kan je ook fopen("http://a:b@www.mompel.nl/", "r"); doen
Als ik dit probeer krijg ik de volgende waarschuwing:

Warning: fopen("http://www.yes2web.nl/admin", "r") - Success in /var/www/www.brocker.nl/check2.php on line 68

Wat doe ik fout? ik heb de volgende code geprobeerd:
PHP:
1
<?if ($fp2 = fopen("http://www.yes2web.nl/admin","r")) {    echo fgets($fp2, 128);    close ($fp2);}?>

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

trailing slash wellicht?

owja, en die close zou ik maar fclose() noemen ;)

  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Krijg ik als output:

Resource id #3

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op dinsdag 04 juni 2002 11:55 schreef Bruk het volgende:
Krijg ik als output:

Resource id #3
Echo je dan de $fp ofzo :?
PHP:
1
<?$fp = fopen($bla, 'r');$out = '';while(!feof($fp))   echo $out .= fread($fp, 4096);fclose($fp);?>

Doet het bij mij altijd prima hoor :)

  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Bij mij ook... :)

Maarrrr, nu krijg ik de header die de server terugstuurd niet te zien... :(
En dus kan ik niet checken of ie een 404 of een 302 terugstuurt. En dat was in eerste instantie de achterliggende bedoeling...

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
Dien je bij beveiligde sites niet gebruik te maken van https ipv http?

  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Nee, het is geen ssl...

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op dinsdag 04 juni 2002 12:16 schreef SONiCB00M het volgende:
Dien je bij beveiligde sites niet gebruik te maken van https ipv http?
Neehoor, hoeft niet perse.

Verwijderd

Bij POST's:
code:
1
2
3
4
5
6
7
8
9
$request = "POST <URI> HTTP/1.0\n". 
"Host: <URL>\n". 
"User-Agent: <blaat 1.0>\n". 
"Connection: close". 
"Content-Type: application/x-www-form-urlencoded\n". 
"Authorization: Basic ".base64_encode"$username:$password")."\n". 
"Content-Length: <length of body>\n\n". 
"<request body>\n"; 
$socket = fsockopen($this->url, 80, &$errno, &$errstr);

Bij GET's gewoon met iets als http://username:password@www.domain.com/

Zoals al eerder aangegeven kun je ook cURL gebruiken. Als je hem niet meecompileerd hebt kun je hem ook nog als standalone aanroepen. cURL is perfect voor dit soort dingen en helemaal als je SSL POST's moet doen ofzo.

  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Goed, ik heb een server gevonden met cURL, ergens een handleiding?

  • Glock
  • Registratie: November 2001
  • Niet online
bij basic authentication moet je eerst werkelijk het request van de server ontvangen dat je moet authenticaten. In diezelfde connectie moet je na dit ontvangst pas de authenticate header meesturen, anders ga je rare dingen krijgen.
zelf heb ik dit nml ook is gemaakt, ik heb de source thuis liggen dus die post ik dan ook wel even als het niet is gelukt nog ;)

  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Als dat zou kunnen heel graag, ik ben nu met curl aant klooien.

Weet iemand waarom ik een 301 - Moved Permanently respons krijg als ik een beveiligde pagina opvraag en user/pass meestuur? Is dit altijd het geval bij een beveiligde pagina?

  • Glock
  • Registratie: November 2001
  • Niet online
Op dinsdag 04 juni 2002 14:18 schreef Bruk het volgende:
Als dat zou kunnen heel graag, ik ben nu met curl aant klooien.

Weet iemand waarom ik een 301 - Moved Permanently respons krijg als ik een beveiligde pagina opvraag en user/pass meestuur? Is dit altijd het geval bij een beveiligde pagina?
voor zover ik me weet te herrineren is dit niet standaard bij .htaccess beveiligde pagina's. Het script dat ik toen d'r tijd had gemaakt was gemaakt voor het authenticeren van het 'Microsoft Exchange' Webmail gedoe :)
ik ga zo ff de source opzoeken ;)

  • Glock
  • Registratie: November 2001
  • Niet online
Langzamerhand begint alles een beetje terug te komen :)
Het authenticatie systeem hierboven is in principe goed, alleen doen sommige sites af en toe een beetje lullig door cookies te gaan zetten voor sessies ;) Na het inloggen moest je sessie eruit filteren en nog een keer inloggen met sessie erbij. Mijn eerste verhaal klopte dus niet helemaal *D (foutje bedankt 8-))

Maar hoe dan ook, mijn gebruikte source voor het inloggen bij 'Microsoft Exchange Webmail' (of hoe je het ook mag noemen)
PHP:
1
<?$fs = fsockopen("www.host.com", "80");$request = "GET /securemap/ HTTP/1.0\r\n";$request .= "Host: www.host.com\r\n";$request .= "User-Agent: PHP/".phpversion()."\r\n";$request .= "Authorization: Basic ".base64_encode($user.":".$pass)."\r\n";$request .= "\r\n";fputs($fs,$request);$response = fread($fs, 10000000);preg_match("!ASPSESSIONID([^;]*);!i",$response,$match);$cookie = $match[0];fclose($fs);$request  = "GET /securemap/ HTTP/1.0\r\n";$request .= "Host: www.host.com\r\n";$request .= "User-Agent: PHP/".phpversion()."\r\n";$request .= "Authorization: Basic ".base64_encode($PHP_AUTH_USER.":".$PHP_AUTH_PW)."\r\n";$request .= "Cookie: $cookie\r\n";$request .= "\r\n";$fs  = fsockopen("www.host.com", 80);$put = fputs($fs, $request);$response = fread($fs, 10000000);echo nl2br($response."     \nEND");fclose ($fs);?>

Hopelijk heb je er wat aan ;)

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 06-09 21:14

TheDane

1.618

Op dinsdag 04 juni 2002 17:27 schreef Glock het volgende:
Langzamerhand begint alles een beetje terug te komen :)
Het authenticatie systeem hierboven is in principe goed, alleen doen sommige sites af en toe een beetje lullig door cookies te gaan zetten voor sessies ;) Na het inloggen moest je sessie eruit filteren en nog een keer inloggen met sessie erbij. Mijn eerste verhaal klopte dus niet helemaal *D (foutje bedankt 8-))

Maar hoe dan ook, mijn gebruikte source voor het inloggen bij 'Microsoft Exchange Webmail' (of hoe je het ook mag noemen)
[ cooode ]
Hopelijk heb je er wat aan ;)
woei, hier heb ik zelfs wat aan , hopelijk :)

thanks, was dus zelf ook al aardig deze richting op; dat inloggen werkte alleen niet helemaal (wist niet goed wat voor data ik moest sturen .. hmm, ff wat proberen :)
Pagina: 1