Предисловие: я студент бакалавриата по компьютерным наукам, готовящийся к выпуску, но у меня практически нет опыта в веб-разработке и PHP в частности. Извиняюсь за отсутствие знакомства.
Предыстория: я пытаюсь создать простую уязвимость DoS на моем собственном локальном PHP-сервере, на котором запущен XAMPP на 64-битной виртуальной машине Linux (18.04). Чтобы убедиться, что я не просто увеличиваю использование ЦП на виртуальной машине за счет локальной активности, я использую другую виртуальную машину, где я использую скрипт Python вместе с библиотекой «запросов» для запроса уязвимой страницы 10000 раз в цикле. На данный момент уязвимая страница (dos.php) запускает цикл, в котором она добавляет случайное число в список, а затем отображает хэш общей текстовой строки, которая совершенно не связана с предположительно интенсивным использованием ЦП.
Проблема: я узнал, что могу вывести память и использование процессора в браузер (через https://devdojo.com/tutorials/how-to-get-memory-and-cpu-usage-in-php). Проблема в том, что я не смог получить загрузку ЦП на сервере выше примерно 4% … Память занимает примерно 30%. Тем не менее, я знаю, что делаю небольшой кусочек правильно, потому что вижу увеличение с 0-1% до 4%, но ничего больше.
Конечной целью является демонстрация концепции, в которой я показываю, что фаззер (SlowFuzz) может найти эту уязвимость, если он указывает на документ PHP. Как только у меня появится уязвимость DoS, я планирую написать очень простую и намеренно нарушенную функцию. Что-то вроде цикла, в котором пользователь определяет верхнюю границу.
Вот изображение PHP на dos.php:
Код PHP
Заранее спасибо за вашу помощь! Надеюсь, это не слишком глупый вопрос.
Apache можно легко сделать DoS, заполнив его очередь запросов медленными клиентами чтения.
В Apache настроено максимальное количество одновременно подключенных клиентов, и по умолчанию не применяется минимальная скорость чтения для клиентов, поэтому чтение ответа со скоростью 1 байт / сек будет держать соединение открытым очень долго и уменьшит количество повторных соединений, необходимых вашему инструменту DoS. в то же время уменьшая шансы для постоянного клиента пройти.
Современные установки Apache отбрасывают клиентов, которые читают слишком медленно, или отклоняют чрезмерные соединения с одного и того же адреса, чтобы предотвратить подобные атаки. Я не уверен, включает ли это стандартная установка XAMPP.
Других решений пока нет …