Möjliga attacker: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Rad 2: Rad 2:
Att använda PHP som ett CGI-binär är ett alternativ för installationer som av någon anledning inte vill integrera PHP som en modul i serverprogramvara (som Apache), eller kommer att använda PHP med olika typer av CGI-omslag för att skapa säkra chroot- och setuid-miljöer för skript. Denna installation innebär vanligtvis att man installerar en exekverbar PHP-binär i webbserverns cgi-bin-katalog. CERT-rådgivning [https://www.cert.org/historical/advisories/CA-96.11.html CA-96.11] rekommenderar att man inte placerar några tolkare i cgi-bin. Även om PHP-binären kan användas som en fristående tolk, är PHP utformad för att förhindra de attacker som denna installation möjliggör:
Att använda PHP som ett CGI-binär är ett alternativ för installationer som av någon anledning inte vill integrera PHP som en modul i serverprogramvara (som Apache), eller kommer att använda PHP med olika typer av CGI-omslag för att skapa säkra chroot- och setuid-miljöer för skript. Denna installation innebär vanligtvis att man installerar en exekverbar PHP-binär i webbserverns cgi-bin-katalog. CERT-rådgivning [https://www.cert.org/historical/advisories/CA-96.11.html CA-96.11] rekommenderar att man inte placerar några tolkare i cgi-bin. Även om PHP-binären kan användas som en fristående tolk, är PHP utformad för att förhindra de attacker som denna installation möjliggör:


* Åtkomst till systemfiler:** `http://my.host/cgi-bin/php?/etc/passwd` Den frågeinformationen i en URL efter frågetecknet (?) skickas som kommandoradsargument till tolken av CGI-gränssnittet. Vanligtvis öppnar och exekverar tolkar den fil som anges som det första argumentet på kommandoraden. När PHP anropas som ett CGI-binär vägrar PHP att tolka kommandoradsargumenten.
* Åtkomst till systemfiler: `http://my.host/cgi-bin/php?/etc/passwd` Den frågeinformationen i en URL efter frågetecknet (?) skickas som kommandoradsargument till tolken av CGI-gränssnittet. Vanligtvis öppnar och exekverar tolkar den fil som anges som det första argumentet på kommandoraden. När PHP anropas som ett CGI-binär vägrar PHP att tolka kommandoradsargumenten.


* Åtkomst till valfritt webb dokument på servern:** `http://my.host/cgi-bin/php/secret/doc.html` Den sökvägsinformationen i URL:en efter PHP-binärens namn, `/secret/doc.html`, används konventionellt för att ange namnet på filen som ska öppnas och tolkas av CGI-programmet. Vanligtvis används några webbserverkonfigurationsdirektiv (Apache: Action) för att omdirigera förfrågningar till dokument som `http://my.host/secret/script.php` till PHP-tolken. Med denna installation kontrollerar webbservern först åtkomstbehörigheterna till katalogen `/secret` och skapar därefter den omdirigerade förfrågan `http://my.host/cgi-bin/php/secret/script.php`. Tyvärr, om förfrågan ursprungligen ges i denna form, görs inga åtkomstkontroller av webbservern för filen `/secret/script.php`, utan endast för `/cgi-bin/php`-filen. På detta sätt kan alla användare som kan komma åt `/cgi-bin/php` få tillgång till vilket skyddat dokument som helst på webbservern. I PHP kan körningskonfigurationsdirektiven `cgi.force_redirect`, `doc_root` och `user_dir` användas för att förhindra denna attack, om serverns dokumentträd har några kataloger med åtkomstbegränsningar. Se nedan för en fullständig förklaring av de olika kombinationerna.
* Åtkomst till valfritt webb dokument på servern: `http://my.host/cgi-bin/php/secret/doc.html` Den sökvägsinformationen i URL:en efter PHP-binärens namn, `/secret/doc.html`, används konventionellt för att ange namnet på filen som ska öppnas och tolkas av CGI-programmet. Vanligtvis används några webbserverkonfigurationsdirektiv (Apache: Action) för att omdirigera förfrågningar till dokument som `http://my.host/secret/script.php` till PHP-tolken. Med denna installation kontrollerar webbservern först åtkomstbehörigheterna till katalogen `/secret` och skapar därefter den omdirigerade förfrågan `http://my.host/cgi-bin/php/secret/script.php`. Tyvärr, om förfrågan ursprungligen ges i denna form, görs inga åtkomstkontroller av webbservern för filen `/secret/script.php`, utan endast för `/cgi-bin/php`-filen. På detta sätt kan alla användare som kan komma åt `/cgi-bin/php` få tillgång till vilket skyddat dokument som helst på webbservern. I PHP kan körningskonfigurationsdirektiven `cgi.force_redirect`, `doc_root` och `user_dir` användas för att förhindra denna attack, om serverns dokumentträd har några kataloger med åtkomstbegränsningar. Se nedan för en fullständig förklaring av de olika kombinationerna.


= Sidslut =
= Sidslut =

Versionen från 1 september 2024 kl. 06.02

Möjliga attacker ¶

Att använda PHP som ett CGI-binär är ett alternativ för installationer som av någon anledning inte vill integrera PHP som en modul i serverprogramvara (som Apache), eller kommer att använda PHP med olika typer av CGI-omslag för att skapa säkra chroot- och setuid-miljöer för skript. Denna installation innebär vanligtvis att man installerar en exekverbar PHP-binär i webbserverns cgi-bin-katalog. CERT-rådgivning CA-96.11 rekommenderar att man inte placerar några tolkare i cgi-bin. Även om PHP-binären kan användas som en fristående tolk, är PHP utformad för att förhindra de attacker som denna installation möjliggör:

  • Åtkomst till systemfiler: `http://my.host/cgi-bin/php?/etc/passwd` Den frågeinformationen i en URL efter frågetecknet (?) skickas som kommandoradsargument till tolken av CGI-gränssnittet. Vanligtvis öppnar och exekverar tolkar den fil som anges som det första argumentet på kommandoraden. När PHP anropas som ett CGI-binär vägrar PHP att tolka kommandoradsargumenten.
  • Åtkomst till valfritt webb dokument på servern: `http://my.host/cgi-bin/php/secret/doc.html` Den sökvägsinformationen i URL:en efter PHP-binärens namn, `/secret/doc.html`, används konventionellt för att ange namnet på filen som ska öppnas och tolkas av CGI-programmet. Vanligtvis används några webbserverkonfigurationsdirektiv (Apache: Action) för att omdirigera förfrågningar till dokument som `http://my.host/secret/script.php` till PHP-tolken. Med denna installation kontrollerar webbservern först åtkomstbehörigheterna till katalogen `/secret` och skapar därefter den omdirigerade förfrågan `http://my.host/cgi-bin/php/secret/script.php`. Tyvärr, om förfrågan ursprungligen ges i denna form, görs inga åtkomstkontroller av webbservern för filen `/secret/script.php`, utan endast för `/cgi-bin/php`-filen. På detta sätt kan alla användare som kan komma åt `/cgi-bin/php` få tillgång till vilket skyddat dokument som helst på webbservern. I PHP kan körningskonfigurationsdirektiven `cgi.force_redirect`, `doc_root` och `user_dir` användas för att förhindra denna attack, om serverns dokumentträd har några kataloger med åtkomstbegränsningar. Se nedan för en fullständig förklaring av de olika kombinationerna.

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/security.cgi-bin.attacks.php
PHP
Säkerhet


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.