Skocz do zawartości
user1

Jak Zabezpieczyć: Readfile("/etc/group");

Polecane posty

Jak się zabezpieczyć przed następującym kodem:

 

<?php

readfile("/etc/group");

?>

 

w php.ini blokowałem funkcję readfile lecz nie pomogło

 

---------------------------------------------------------------------------

Odświerzam temat, tym razem jest coś "ciekawszego"

 

<?php

readdir("/etc");

?>

 

funkcja wymagana w wielu skryptach jednak potrafi również odczytać /etc

Edytowano przez user1 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

możesz też dodatkowo pobawić się uprawnieniami tak by user, pod którym działa serwer nie miał praw dostępu do ważnych plików :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

zbyt biegły w tym nie jestem :P mógłbym poprosić o konkretniejsze odnośniki do danych plików na serwie :)

 

ok open_basedir pomogło :) jednak poproszę coś więcej od riklaunim-a :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
w php.ini blokowałem funkcję readfile lecz nie pomogło

 

disable_functions = readfile, shell_exec, exec;

i możesz coś tam jeszcze dodać wedle uznania. A najlepiej, jeśli nie jesteś obeznany w kwestiach bezpieczeństwa, włącz safe_mode i będziesz miał spokój.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
disable_functions = readfile, shell_exec, exec;

Tylko jaki jest sens wylaczania reafile skoro zostaje: fopen, fread, fgets, file, file_get_contents i masa innych PHP'owych wynalazkow do odczytywania pliku? :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja zawsze wrzucam do disabled_functions coś takiego:

 

php_uname, putenv, getmyuid, passthru, leak, listen, diskfreespace, tmpfile, link, ignore_user_abord, shell_exec, popen, dl, set_time_limit, exec, system, highlight_file, source, show_source, fpaththru, virtual, posix_ctermid, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix_getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_times, posix_ttyname, posix_uname, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate

 

;-) Pozdr.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy ktos z Was uzywa Suhosin?

Dosc ciekawy projekt, widze ze daje duzo mozliwosci zabezpieczenia wyknywania php. Mam jednak obawy, czy nie spowoduje to niepoprawnego dzialania niektorych aplikacji - phpbb, gallery2, joomli etc. Czy mial ktos moze z tym doczynienia i wie cos wiecej na ten temat?

 

Dzieki

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

ja na localhoście wrzuciłem moduł i problemów nie ma (punbb i php-fusion sprawdzane). Suhosin chroni przed lukami bardziej "systemowymi" niż lukami samego skryptu dotyczących tego skryptu :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Odświerzam temat, tym razem jest coś "ciekawszego"

 

<?php

readdir("/etc");

?>

 

funkcja wymagana w wielu skryptach jednak potrafi również odczytać /etc

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

chmod 754 /etc

:)

 

A tak na powaznie, to:

man 2 chroot
man 8 chroot

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

hmm precyzyjniej ?

 

open_base dir jako funkcja php jest zablokowana natomiast jako dyrektywa w konfigu apacha wygląda po prostu: ";open_basedir = " zmieniałem wartość na On / Off a readdir nadal mógł odczytywać foldery systemowe. Gdzieś się pogubiłem :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Naprawde nie powinienem, bo to juz szczyt lenistwa, ale masz tu pierwszy(!) link z google: klik

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

no właśnie siedzę nad nim od kilkudziesięciu sekund :) ok postaram się czegoś doczytać

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

z readdir(); jakoś sobie poradziłem. Ale z open_basedir niestety nie tym razem funkcja is_dir(); teoretycznie jeśli dobrze zrozumiałem konfigu apacha mogę umieścić coś takiego: open_basedir = /home/user1 ale wtedy dla każdego innego użytkownika (np /home/user2) będzie to również tak rozumiane że nie może wyjść poza /home/user1 pewnie prosty błąd popełniłem ale jaki ?

 

idę dalej przeszukiwać googla :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Coś ala php_admin_value open_basedir /home/user/:/tmp:/usr/local/lib/php/

Poza tym poradź sobie sam, bo szkoda słów. Pozdr.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×