Комментарии 61
Тогда бы уж и
while ( -1 < pcntl_fork() );
while ( -1 < pcntl_fork() );
Малопопулярно, имхо.
По дефолту вырублено же, и не встречал пакетов где стоит флажок.
По дефолту вырублено же, и не встречал пакетов где стоит флажок.
Или если уж через system то странный код какой-то.
Лучше уж классический вариант
Лучше уж классический вариант
system("x(){ x|x& };x")
Какими должны быть действия опытного админа?
На шаред хостингах эти функции должны быть запрещены.
Неправильный ответ.
Лучше править "/etc/security/limits.conf".
Достаточно добавить всего одну строчку.
Лучше править "/etc/security/limits.conf".
Достаточно добавить всего одну строчку.
Главное, чтобы скрипты при этом не от рута работали :)
заинтриговали. А сама строчка где?
Не всегда помогает. Оно трогает только пользователя, а не процесс. Через ulimit ограничения на процесс надо ещё добавлять.
ulimit выставлять.
Для начала установить ulimit по числу процессов на процессы веб-сервера. И тогда можно будет разбираться, кто гадит.
в php.ini что-то типа этого:
disable_functions = dl, exec, passthru, pcntl_exec, pfsockopen, popen, posix_kill, posix_mkfifo, posix_setuid, proc_close, proc_open, proc_terminate, shell_exec, system, ftp_exec, leak, posix_setpgid, posix_setsid, proc_get_status, proc_nice, show_source, escapeshellcmd
disable_functions = dl, exec, passthru, pcntl_exec, pfsockopen, popen, posix_kill, posix_mkfifo, posix_setuid, proc_close, proc_open, proc_terminate, shell_exec, system, ftp_exec, leak, posix_setpgid, posix_setsid, proc_get_status, proc_nice, show_source, escapeshellcmd
А вот нам, когда говорят — вот наш сайт — доработайте что-нибудь и дают доступ только по фтп — запрет таких вот функций принесёт один гемор. Например, вызвать tar и mysqldump через exec уже не получиться, и придётся реально файлик за файликом по фтп сливать, а он может и прерватья загрузка на каком-нибудь 10 000чном файле и каких битых файлов ещё заодно переслать.
Так что, надеюсь, таким способом не будут сражаться с нарастающей угрозой форк бомб.
Так что, надеюсь, таким способом не будут сражаться с нарастающей угрозой форк бомб.
Это да, но можно через php создавать архивы сайтов и дампы БД — а их уже сливать.
Вот так я делаю архивы:
Требуется pclzip.lib.php
Вот так я делаю архивы:
<?php
require_once('pclzip.lib.php');
$archive = new PclZip('archive.zip');
$v_dir = getcwd();
$v_remove = $v_dir;
$v_list = $archive->create($v_dir, PCLZIP_OPT_REMOVE_PATH, $v_remove);
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}
?>
Требуется pclzip.lib.php
Спасибо за ссылку. Осталось полбеды — дамп базы :) а здесь… ничего лучше mysqldump не придумали. Всё что сливается другими способами имеет склонность глючить.
Phpmyadmin весьма не плох и установлен почти везде.
Фактически — стандарт.
Фактически — стандарт.
Отчасти его я и имел в виду, когда писал про «имеет склонность глючить».
Иногда приходится руками влазить в дампы, что-нибудь подправлять и т.п.
Не говоря уже про базы данных по-больше, которые бэкапятся вечность (пхпмайадмином, хайди и т.п.), а потом ещё и обрывается что-нибудь где-нибудь. И приходится смотреть, для каких таблиц может и структуры хватит :)
Иногда приходится руками влазить в дампы, что-нибудь подправлять и т.п.
Не говоря уже про базы данных по-больше, которые бэкапятся вечность (пхпмайадмином, хайди и т.п.), а потом ещё и обрывается что-нибудь где-нибудь. И приходится смотреть, для каких таблиц может и структуры хватит :)
Антивирус (win) не давал зайти в пост. Ругался на PHP-Shell :)
Аха, сам удивился что меня avast в топик не пускает ) пришлось в исключения добавлять
Выложил скрипт на пасту, pastebin.com/NQvszGFq Поправил топик.
На моё удивление, скрипт работал на 90% протестированных мною компаний.Для полноты картины хотелось бы узнать сколько было протестировано компаний и даже если без имен, то хотя бы услышать их уровень — школоло / ооо / зарубежные.
Протестировано было около 20 серверов, компании были разные. Небольшая часть (2-3 компании были зарубежные), на всех них скрипт работал. Около 5 было школоло-хосты, парочку серверов знакомых, остальные — довольно крупные компании России/Украины. Ссылки не буду разглашать по понятным причинам.
Разгласите тех, где не работал.
вы же понимаете, что без названий вполне можно утверждать, что вы ничего не тестировали а просто написали код.
Ок, скрипт работает. Я думаю, что это скорее хорошо. Хостер вам дает мого возможностей.
Вы же хотели найти уязвимость, при которой произошел бы отказ в обслуживании не только вас, но и других пользователей рядом. Как вы поняли, что всь сервер недоступен, а не только ваши ресурсы?
Одно дело, когда когда сосед Вася запустил ваш прекрасный скрипт, и у вас ничего не работает. Другое дело, когда вы запустили скрипт, у вас все лимиты кончились, сервер больше на запросы, исполняемые от вашего юзера не отвечает. А соседу Васе все равно — у него все работает.
Вы же хотели найти уязвимость, при которой произошел бы отказ в обслуживании не только вас, но и других пользователей рядом. Как вы поняли, что всь сервер недоступен, а не только ваши ресурсы?
Одно дело, когда когда сосед Вася запустил ваш прекрасный скрипт, и у вас ничего не работает. Другое дело, когда вы запустили скрипт, у вас все лимиты кончились, сервер больше на запросы, исполняемые от вашего юзера не отвечает. А соседу Васе все равно — у него все работает.
«Внимание, Все операции вы выполняете на свой страх и риск! Статья написана для ознакомительных целей.»
Спасибо, в процессе ознакомления.
Спасибо, в процессе ознакомления.
Проверил, отлично работает. Сервер перезагружается :)
На днях занимался поиском подобного плагина (в том числе читал вашу предыдущую статью). В итоге, остановился на chosen:
harvesthq.github.com/chosen/
harvesthq.github.com/chosen/
Словно вы открыли людям америку, давно эта статья лежит на википедии, с примерами на разных языках ru.wikipedia.org/wiki/Fork-%D0%B1%D0%BE%D0%BC%D0%B1%D0%B0
is_resource
Да, ключевая функция для форк-бомбы…
Еще, кстати, бывает proc_open и pcntl_(exec|fork). Подозреваю, что есть еще варианты
В закрытый блог, пожалуйста, иначе сейчас все шаред-хосты лягут.
НЛО прилетело и опубликовало эту надпись здесь
О чем статья?
Если вы хотели рассказать о форк бомбе, ссылки на википедию достаточно.
Вы изобрели новый вид форк-бомб? Вроде нет.
Где описание того, как с этим бороться, что в конфигах PHP/Apache менять?
Где описание метода поиска такого чуда при загрузке?
Где хоть грамм полезной информации которую нельзя узнать читая википедию?
P.S.
Для защиты от fork-бомб нужно установить лимит на nproc (http://www.cyberciti.biz/tips/linux-limiting-user-process.html)
P.P.S.
При чем тут информационная безопасность?
Если вы хотели рассказать о форк бомбе, ссылки на википедию достаточно.
Вы изобрели новый вид форк-бомб? Вроде нет.
Где описание того, как с этим бороться, что в конфигах PHP/Apache менять?
Где описание метода поиска такого чуда при загрузке?
Где хоть грамм полезной информации которую нельзя узнать читая википедию?
P.S.
Для защиты от fork-бомб нужно установить лимит на nproc (http://www.cyberciti.biz/tips/linux-limiting-user-process.html)
P.P.S.
При чем тут информационная безопасность?
Причём тут fork? Это не fork-бомба.
НЛО прилетело и опубликовало эту надпись здесь
Ну и пост… :)
Быстрый патч на текст поста:
sed 's/.+/Даёшь доступ на сервак — поставь лимиты./'
Быстрый патч на текст поста:
sed 's/.+/Даёшь доступ на сервак — поставь лимиты./'
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Вешаем сервер через PHP