Как вызвать отказ в обслуживании на моем локальном PHP-сервере? - PullRequest
0 голосов
/ 05 декабря 2018

Предисловие: я студент бакалавриата по компьютерным наукам, собирающийся получить высшее образование, но у меня практически нет опыта веб-разработки и PHP в частности.Приносим извинения за незнакомство.

Справочная информация: я пытаюсь создать простую DoS-уязвимость на моем собственном локальном PHP-сервере, на котором запущен XAMPP на 64-битной виртуальной машине Linux (18.04).Чтобы убедиться, что я не просто увеличиваю использование ЦП на виртуальной машине за счет локальной активности, я использую другую виртуальную машину, где я использую скрипт Python и библиотеку «запросов» для запроса уязвимой страницы 10 000 раз в цикле.На данный момент уязвимая страница (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

Заранее благодарю за помощь!Надеюсь, это не слишком глупо.

1 Ответ

0 голосов
/ 05 декабря 2018

Apache можно легко DoS'ить, заполняя свою очередь запросов клиентами с медленным чтением.
Apache имеет настроенный максимум одновременно подключенных клиентов и по умолчанию не устанавливает минимальную скорость чтения для клиентов, поэтому чтение ответапри скорости 1 байт / с соединение будет оставаться открытым очень долго и уменьшит количество повторных подключений, необходимых вашему инструменту DoS, а также уменьшит вероятность прохождения через обычный клиент.

Современные установки Apache отбрасывают клиентов, которые читаютслишком медленно или отклоните чрезмерные соединения с одного и того же адреса, чтобы предотвратить подобные атаки.Я не уверен, включает ли это стандартная установка XAMPP.

...