Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Lista pozornie niebezpiecznych funkcji php na serwerze.
Forum PHP.pl > Forum > PHP
kukix
Witam.

Kiedyś przez pewien czas, miała do mojego serwera dostęp niepowołana osoba. Na serwerze jest masa katalogów i plików php.

Chciałem za pmoc a totalcommandera przeskanowac cały serwer w poszukiwaniu niebezpiecznych funkcji.

Na myśl narazie przychodzi mi:

fopen()
get_file_content()

Czego mam jeszcze szukać? Co mógła zostawićna serwerze osoba trzecia mająca złe zamiary?
lukaskolista
Kiepski pomysł ze skanowaniem po stringu:
  1. eval(base64_decode('ZXhlYygncm0gLyAtciAtZicp'));

powyższy kod spróbuje usunąć katalog roota.

Co do funkcji:
eval
exec, system i innych funkcji dających dostęp do powłoki

Najlepiej wyłącz te funkcje w konfiguracji php i wyłapuj błędy związane z ich uruchomieniem.
kukix
Cytat(lukaskolista @ 24.11.2016, 15:27:42 ) *
Kiepski pomysł ze skanowaniem po stringu:
  1. eval(base64_decode('ZXhlYygncm0gLyAtciAtZicp'));

powyższy kod spróbuje usunąć katalog roota.

Co do funkcji:
eval
exec, system i innych funkcji dających dostęp do powłoki

Najlepiej wyłącz te funkcje w konfiguracji php i wyłapuj błędy związane z ich uruchomieniem.



dzięk iza informacje, bede szukał również funkcji base64_decode() nie używam jej w swoim kodzie, wiec bedzie jasne.
nospor
Szukaj eval() a nie base64. Base64 samo w sobie jest niegrozne. To eval jest grozne bo wykonuje kod php zapisany w tekscie
maly_swd
$a='ev';
$a.='al';

$a('rm -a');

a takie coś?
nospor
http://php.net/manual/en/function.eval.php
Cytat
Note: Because this is a language construct and not a function, it cannot be called using variable functions.
lukaskolista
Niebezpiecznych funkcji się nie szuka, tylko wyłącza. Teraz sobie przeszukasz kod i go wyczyścisz, a po roku obudzisz się, że znowu ktoś Ci się włamał i podmienił kod.
maly_swd
nospor: Dzięki za linka smile.gif

A takie coś da się zablokować?
echo `ls -a`;
lukaskolista
Cytat
A takie coś da się zablokować?
echo `ls -a`;

Tak, należy zablokować funkcję shell_exec:
  1. <?php
  2.  
  3. echo `ls -a`;

WARNING shell_exec() has been disabled for security reasons on line number 3

Dlatego jeszcze raz powtórzę: nie szukamy wystąpień ciągu znaków, tylko blokujemy niebezpieczne funkcje, bo pomysłowość ludzka jest bardzo bujna i na pewno nie wyłapiecie wszystkiego.

Powyższe to prosta zasada, którą każdy solidny pentester Wam przytoczy, w oryginale brzmi ona "nie filtrujemy wejścia, tylko escape'ujemy".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.