Cross Page Command Execution
Cross Page Command Execution komt er in feite op neer,
dat je, omdat je de sessie niet kan/wil overnemen, de eigenaar van de sessie zelf het commando uit laat voeren.
wordt ook wel session riding genoemd.
Wat betekend dit nou?
stel je voor, ik heb een pagina ban.php.
ban.php checkt keurig of degene die de pagina oproept bevoegt is om de pagina te bekijken.
Omdat ban.php ook moet weten WIE hij moet bannen, geven we hem een parameter mee, doormiddel van een GET variabele.
om klaas te bannen moeten we, als admin zijnde, het volgende adres bezoeken:
ban.php?gebruiker=klaas
Opzich niks mis mee, zou je denken, ban check toch of de gebruiker wel admin is?
Klopt. maar het vervelende met sessies is: ze worden OVERAL meegegeven.
dus ook als de admin een plaatje opvraagt van de server, dan wordt zijn sessie meegegeven.
Hoe combineer ik die twee nou?
Nou, stel je voor, ik heb een forum, waar je plaatjes kan posten.
Als ik nu een plaatje post, met als url ban.php?gebruiker=vulmaarin
en de admin zou de pagina bekijken dan zal hij het plaatje ophalen,
en daarmee de gebruiker verbannen!
Hoe voorkom je dit?
Heel simpel, gewoon POST gebruiken voor al dit soort dingen.
alleen bij zoeken, of bekijken van een bepaalde pagina moet/mag je GET gebruiken.