Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
ситуация:
fp->offset = offset
fp->end = end
fp->len = end-offset (Отрицательная)
Заключенная в цикл инструкция по сборке фрагментов выглядит следующим образом:
memcpy((ptr+fp->offset), fp->ptr, fp->len),
где: ptr+fp->offset - смещение фрагмента в буфере; fp->ptr - область данных фрагмента; fp->len - длина
Копируемого блока данных.
Попытка скопировать блок данных отрицательной длины (что равносильно копированию очень большого
блока данных) приводит к затиранию достаточно большого участка памяти и к <зависанию> или перезаг-
Рузке компьютера.
Таким образом, для реализации данной атаки пакеты формируются по следующему правилу (рассмотрим
атаку из двух пакетов):
1. Посылается пакет, предполагающий фрагментацию (флаг MF = 1), со смещением фрагмента 0, блоком
Данных длиной N.
2. Посылается последний фрагмент сообщения (флаг MF = 0) с положительным смещением фрагмента
offset < N и блоком данных, длина которого меньше N-offset.
Последовательная передача таких пакетов приводит к возникновению рассмотренной выше ситуации,
Когда копирование блока отрицательной длины вызывает выход компьютера из строя.
Для NT существуют две похожие программы, которые реализуют этот механизм, связанный с наложением
IP-фрагментов: teardrop и newtear (с несущественными отличиями в константах). Пакеты посылаются с лю-
Дата публикования: 2014-11-04; Прочитано: 319 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!