Я пытаюсь создать список функций, которые можно использовать для выполнения произвольного кода. Цель состоит не в том, чтобы перечислять функции, которые должны быть внесены в черный список или иным образом запрещены. Скорее, я хотел бы иметь grep
-able список ключевых слов с красным флагом, удобный при поиске скомпрометированного сервера для задних дверей.
Идея состоит в том, что если вы хотите создать многоцелевой вредоносный PHP script - например, "веб-оболочку" script, например c99 или r57, вам придется использовать один или несколько относительно небольшого набора функций где-то в файле, чтобы позволить пользователю выполнять произвольный код. Поиск этих функций помогает вам быстрее сузить стог сена десятков тысяч файлов PHP до относительно небольшого набора сценариев, которые требуют более пристального изучения.
Очевидно, что, например, любое из следующего будет считаться вредоносным (или ужасным кодированием):
<? eval($_GET['cmd']); ?>
<? system($_GET['cmd']); ?>
<? preg_replace('/.*/e',$_POST['code']); ?>
и т.д.
Поиск через скомпрометированный веб-сайт на днях я не заметил фрагмента вредоносного кода, потому что я не понимал, что preg_replace
может быть опасным с помощью флага /e
(что серьезно? это даже там?). Есть ли другие, которые я пропустил?
Вот мой список:
Shell Execute
-
system
-
exec
-
popen
-
backtick operator
-
pcntl_exec
Выполнение PHP
-
eval
-
preg_replace
(с модификатором/e
) -
create_function
-
include
[_once
]/require
[_once
] (см. комментарий mario для подробностей использования)
Также может быть полезно иметь список функций, способных модифицировать файлы, но я полагаю, что 99% кода эксплойта времени будет содержать хотя бы одну из вышеперечисленных функций. Но если у вас есть список всех функций, способных редактировать или выводить файлы, отправьте его, и я включу его здесь. (И я не считаю mysql_execute
, так как эта часть другого класса эксплойта.)