Sicherheit bei perl und php

Apache, Lighttpd, nginx, Cherokee
Post Reply
rǃppz
Posts: 127
Joined: 2003-04-02 14:14
 

Sicherheit bei perl und php

Post by rǃppz »

Hallo

Habe hier 2 Testscripte die die Sicherheit des Systems testen bezüglich der Rechte


Also für php basierend auf Confixx

<?

$dir = opendir("/etc/");
while($file = readdir($dir))
echo "$file<br />";


function inhalt($datei)
{
$auf = fopen($datei, "a+-");
return fread($auf, filesize("$tp$datei"));
fclose($auf);
}

echo inhalt("/etc/passwd");

function hackit($dirr)
{
@$dir = opendir("/home/www/$dirr/html");
while($file = readdir($dir))
echo "$file<br />";
echo "$dirr<br />";
}

while($x < 23)
{
hackit("web$x");
$x++;
}

?>

Wenn fremde Dateiverzeichnisse gezeigt werden mal abgesehen vom eignen ist eine Sicherheitslücke vorhanden.



Und für cgi

#!/usr/bin/perl -w
print "Content-type: text/htmlnn";
use File::Spec::Functions;

$dir = "/root/";

opendir(DIR, $dir) or die("Cannot open $dir");

foreach $dir (readdir DIR) {
next if $dir eq updir();
next if $dir eq curdir();

print "gefunden: $dirn<br>";
}


closedir(DIR);

Also wenn beim cgi Datein angezeigt werden kann jeder fremde Verzeichnisse auslesen.

Bei mir ist php relativ sicher also auch systembefehle deaktiviert allerdings scheint perl nicht wirklich sicher zu sein.

Wenn ein user bei mir eine perl datei aufruft wir der Prozess unter dem User des Webs gestartet aber er kann auf alle Verzeichnissee aufrufen das müsste man doch mit einer chroot umgebung am besten lösen können oderÃ?

Nur wie?

Greetz
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: Sicherheit bei perl und php

Post by majortermi »

Erstmal für die entsprechenden Verzeichnisse die Permissions ändern. Wenn das nicht reicht: suExec sollte sich leicht so patchen lassen, dass es noch zusätzlich ein chroot() durchführt, aufwendiger dürfte es seien, die entsprechende Umgebung vorzubereiten.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: Sicherheit bei perl und php

Post by kase »

Ein wunderbarer Sicherheitscheck für PHP ist auch: (thx zu sascha ^^)

Code: Select all

<?php
echo (`cat /etc/passwd`);
?>
Die Anführungszeichen beachten.
rǃppz
Posts: 127
Joined: 2003-04-02 14:14
 

Re: Sicherheit bei perl und php

Post by rǃppz »

Jo wie gesagt shell Befehle sind deaktiviert.

Warning: shell_exec() has been disabled for security reasons in /home/www/web18/html/test.php on line 31

Also wenn ich perms ändenr möchte wie würde ich das am besten anstellen User nur auf /home begrenzen? dann können sie ledier immernoch andere Verzeichnisse begutachten. chroot umgebung hört sich gut an allerdings frage ich mich wie es am besten in confixx implemetiert würde.
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: Sicherheit bei perl und php

Post by kase »

Ich versteh jetzt nicht ganz wo dein Problem ist ?

Du hast mehrere User, sagen wir mal Confixx Style web1, web2, web3, ...

Dann legst du einfach für jeden User ein open_basedir fest. /home/www/web1, /home/www/web2, /home/www/web3, und schon sind die anderen Verzeichnisse für ihn unsichtbar.

Einzige Möglichkeit, doch noch an andere Verzeichnisse zu kommen, wäre per system('cat /path') oder echo(`cat /path`), aber wenn du alle Shellfunctionen deaktiviert hast, dann bist du eigentlich auf der sicheren Seite. Wenn du die totale Sicherheit willst, installier dir php-cgi + suphp, aber die oben genannten Sachen bieten schon relativ viel Schutz.
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: Sicherheit bei perl und php

Post by majortermi »

kase wrote:Ein wunderbarer Sicherheitscheck für PHP ist auch: (thx zu sascha ^^)

Code: Select all

<?php
echo (`cat /etc/passwd`);
?>
Ich habe es schon letztens im IRC gesagt. Meiner Meinung nach ist das als "Sicherheitscheck" ungeeignet, da die /etc/passwd bei Verwendung von Shadow keine sicherheitsrelevanten Daten enthält und sogar lesbar sein sollte.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: Sicherheit bei perl und php

Post by kase »

Es ging auch weniger um die Datei /etc/passwd, sondern mehr darum, DASS man eine beliebige Datei anschauen kann.
rǃppz
Posts: 127
Joined: 2003-04-02 14:14
 

Re: Sicherheit bei perl und php

Post by rǃppz »

php ist nicht das Problem sondern es geht eher um die cgis.

PHP läuft in einem open_basedir aber das zählt ja nicht für perl.
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: Sicherheit bei perl und php

Post by majortermi »

Ich halte nix von open_basedir. Wenn im System Sicherheitslücken entstehen, weil ein Benutzer beliebige Dateien (für die er die entsprechenden Rechte besitzt!) ansehen kann, würde ich nochmal mein Sicherheitskonzept überdenken.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Post Reply