ZoRaC Skrevet 16. mai 2006 Skrevet 16. mai 2006 (endret) Har oppdaget en alvorlig sikkerhets-svakhet i et script jeg har! :O Jeg setter $path="/full/url/til/scriptet/"; i config.inc.php og kjører i script.php: include('config.inc.php'); include($path.'enfil.php'); Problemet: Om register_globals=off så kan man da kjøre: http://www.minserver.com/script.php?path=h...hackertool.txt? Om da hackertool.txt inneholder PHP-kode blir denne kjørt/parset på serveren min, noe som er absolutt ikke ønskelig! Kan løses med: * .htaccess-fil hvor register_globals settes til "on", men ikke alle hoster støtter slik "overstyring". * Med "open_basedir", men dette må settes i php.ini eller httpd.conf Er det noe jeg kan gjøre i en PHP-fil (ini_set eller noe?) som sikrer meg mot slike "angrep"? Edit: Ser ut til at jeg faktisk har GLEMT å inkludere config.inc.php, og det er det som skaper problemet, da $path ikke er satt i det heletatt... Men, uansett vil jeg beskytte meg mot slike "forglemmelser", tips? Endret 17. mai 2006 av ZoRaC
arnizzz Skrevet 17. mai 2006 Skrevet 17. mai 2006 (endret) Når register_globals er OFF kan man ikke sette en variabel via URLen hvis ikke man har brukt super globals i koden. Noe du ikke har gjort. Du henter jo fra konfigfil. Så denne: http://www.minserver.com/script.php?path=h...hackertool.txt vil ikke fungere med register_globals off. edit; Man vil ikke parse eksterne php-filer på den måten uansett. Man får kun outputen av det php-scriptet. Enten blir det parset på remote server, eller så sender "hackeren" bare kildekoden.. Ikke noe stress. Endret 17. mai 2006 av arnizzz
Ernie Skrevet 17. mai 2006 Skrevet 17. mai 2006 Dette er et problem med at register_global er ON, og du kan gjøre fint lite med det. Dette er kort og greit hvorfor register_global er direkte idioti å ha på.
Magnus Holm Skrevet 17. mai 2006 Skrevet 17. mai 2006 ...Man vil ikke parse eksterne php-filer på den måten uansett. Man får kun outputen av det php-scriptet. Enten blir det parset på remote server, eller så sender "hackeren" bare kildekoden.. Ikke noe stress. 6119993[/snapback] Å joda. Hvis jeg lagrer en .txt fil med: <?php deleteSystem("evilCode"); ?> Og du inkluderer den blir koden kjørt
MC2 Skrevet 18. mai 2006 Skrevet 18. mai 2006 kan ikke dette løses ved å definere en konstant istedet?
ZoRaC Skrevet 18. mai 2006 Forfatter Skrevet 18. mai 2006 MC2: Jo, det kan det vel, blir kanskje det som blir løsningen...
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå