Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тогда при заполнении структуры, описывающей копируемый блок данных, возникает следующая



ситуация:

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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...