Categorieën

Recente berichten

Hoe met PHP de open_basedir map te omzeilen.

open_basedir is een verouderde, niet volledig veilige configuratie optie om uitvoer van PHP script en toegang tot bestanden te beperken tot een bepaalde map. Echter is open_basedir niet volledig waterdicht omdat bepaalde features zoals de opgeslagen sessie’s in PHP buiten de open_basedir moeten werken.
Hier is hoe een PHP script toch bestanden uit een andere map kunt gebruiken. In een shared hosting omgeving waarin openbase_dir de enige beveiliging is, is dit dus als volgt te misbruiken.

ini_set("session.save_path", "/sessions/user2/");
putenv("TMPDIR=/sessions/user2/");
ini_set("session.save_path", "");
@session_start();

Mijn advies voor server administrators is om de webserver te “jailen”,
dit verkomt ook dat met andere scripttalen die onder de webserver process draaien misbruikt kunnen worden om hoster zijn server volledig te hacken.
Verder is het instellen van de juiste bestandspermissies belangrijk, het is ook belangrijk om het gebruik van symbolische bestands links uitschakelen.
Daarnaast kun je nog putenv en ini_set functies aan disabled_functions van php configuratie toevoegen om deze bekende manier van open_basedir restricties te misbruiken te blokkeren.