Bekijk Volledige Versie : Beveiligingslek: Open Basedir
Mede WHT-ers. Zojuist kom ik diverse malen al tegen dat er een lek is binnen dit control panel. Ik heb het ook getest.
Via http://ip-server/~user is het mogelijk om bestanden van andere userse te zien. De restricties worden normaal toegepast via domain.httpd.conf maar via deze optie wordt de standaard httpd.conf gebruikt en gelden de restricties niet. Dit houdt in dat men via de /~user een "include" kunnen doen naar de /home/user/ en zo verder.
Zonder open_basedir restricties is het mogelijk om via een php script in de files van andere gebruikers te kijken.
Het is aan te bevelen om deze optie uit te zetten via:
"PHP SafeMode Configuration" onder Admin Level.
dus met openbase dir uit lukt dat niet? Klinkt vaag...
<?php
$user = "user";
$domain = "domain";
if(isset($_GET['file']))
{
$file = $_GET['file'];
}
else
{
$file = "index.html";
}
$filename = "/home/".$user."/domains/".$domain."/public_html/".$file;
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
echo highlight_string($contents,true); // true om voor te zorgen dat er geen getal achter komt te staan.
?>
Test het uit, pas de variabele maar aan :-) En zie de broncode.
Dit werkt dus alleen via http://server-ip/~user/
Dit was bij ons allang bekend, en uitgeschakeld. :-)
Nadat ik dit over MSN had gemeld.
PerryKniest
05/03/07, 12:10
Dit was bij ons allang bekend, en uitgeschakeld. :-)
Is deze bug bij DA ook al bekend? Het lijkt me dat zij dit op gaan lossen?
Open_basedir is niet iets wat je uit zou moeten zetten aangezien het juist extra beveiliging is.
Och:) staat al een week bij ons op de site http://www.x-hosted.nl/news/nieuws/news.php?id=25
Heb het overigens nog niet aan DA gemeld, een klant van ons had het ontdekt ;) (stebows had het van mij.. anyway, had iemand het al aan DA gemeld?)
Meerdere problemen ondervonden op een aantal die werken met DirectAdmin. OpenBaseDir was inderdaad het probleem. DirectAdmin is hier al van op de hoogte, zal snel een fix voor komen.
Ik heb openbase dir ON , + php safe mode aan. Heb het script gebruikt @ me server en kan het via http://www.mijndomein.nl/bestandje.php zo alsnog de bron van scripts van andere users bekijken.
Weet iemand hoe ik dit nou precies kan oplossen? kom er even niet uit.
EDIT //
Laat maar hier ook al opgelost :)
is niet echt een bug lijkt me.. openbase dir wordt ge-applied in the virtualhost, en als je gewoon via /~user/ opent wordt de virtual host niet ge-applied.. hiermee kun je nog wel meer dingen ontlopen ;)
MartijnRSD
05/03/07, 14:52
Dit is totaal geen DA bug en is zeker niets nieuws. Het is de manier waarop je je virtual hosts configureert de ~user maakt gebruik van de standaard virtual host in de httpd.conf en zoals je zelf had kunnen weten staat hier standaard niets over safe mode en open base in.
Ik wou al zeggen, dit is toch al eeuwen oud nieuws?
Totaal irrelevant aan DA.
moet je dus wel net weten hoe een domein op een server gemapped is naar een username...
Trouwens is het bij elke versie of bij een bepaalde..
waar zit de ophef, je draait toch nog steeds als de user (als je mod_ruid of suphp of suexec of wat dan ook hebt geinstalleerd --- je hebt toch wel zo iets draaien toch zeker??)
en het is nog uit te zetten ook
moet je dus wel net weten hoe een domein op een server gemapped is naar een username...
Dat mag je normaal gesproken wel weten als je een server beheert.
Trouwens is het bij elke versie of bij een bepaalde..
Het is geen beveiligingslek. Dus zo werkt het bij elke versie. UserDir zou ik gewoon uitgeschakeld laten trouwens.
Dat mag je normaal gesproken wel weten als je een server beheert.
uhm, als je een server in beheer heb kan je sowieso al overal bij toch ;) ik doel juist op anderen..
TotallyHosted
05/03/07, 20:04
Aangezien DirectAdmin de httpd-setup doet, mag je toch ook verwachten dat daar niet zo'n grote fout in zit. Vind het bijzonder slordig.
Wat er gebeurd is dat hij de restricties niet uitleest en als je aardig bent kun je een dir laten opzoeken :) Dus elke keer een map verder, zodra je maar een user bent van een bepaalde server.
Directadmin gaf door dat hetvolgende "mogelijk" zou kunnen verhelpen.
Zoals in de /etc/httpd/conf/httpd.conf
<VirtualHost 1.2.3.4:80>
ServerAdmin webmaster@localhost
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /var/www/html
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
php_admin_flag safe_mode ON
CustomLog /var/log/httpd/homedir.log homedir
</VirtualHost>
Laat het nou eens een les zijn dat beveiliging op bestandsniveau wordt gedaan, en niet door een of ander software pakketje dat er boven draait (php in dit geval).
Kijk ook even of programma's zoals cgi shell en php shell werken. :)