Спецификации формата пользователя могут привести к переполнению буфера. В некоторых случаях для переполнения буфера злоумышленник может воспользоваться функцией sprintfQ, если в программе не наложено никаких ограничений на длину строк, передаваемых небезопасной функции. Ограничения на длину используемых строк не позволят злоумышленнику воспользоваться слишком длинной форматирующей строкой или строкой чрезмерно большого размера, соответствующей спецификации формата %5 при обращении к функции sprintfQ.

Если в программе допускается вставка данных пользователя в форматирующую строку

- первый параметр функции sprintfQ, то размер выводимой строки может быть увеличен при задании в спецификации преобразования ширины поля. Например, если атакующий включит в форматирующую строку спецификацию вывода целого десятичного числа со знаком %100i, указав при этом ширину поля равной 100 символам, то сформированная строка будет не менее чем на 100 байт больше, чем ожидалось. Задание ширины поля позволит сформировать строки, которые при их записи в буфер приведут к переполнению буфера. В этом случае ограничения, наложенные на длину отформатированной строки, не спасут от переполнения буфера и позволят злоумышленнику выполнить подготовленный им программный код.

Далее этот способ атаки рассматриваться не будет. Хотя подобные атаки, используя спецификации формата, позволяют перезаписать содержимое памяти, тем не менее они используются только для увеличения размера строк до длины, достаточной для переполнения стека. А эта глава посвящена атакам, основанным исключительно на применении спецификаций формата без использования уязвимостей, основанных на ошибках программирования, например таких как переполнение буфера. Более того, описанная ситуация может быть вызвана присущими форматирующей строке уязвимостями при использовании спецификаций записи в память.

Уязвимость форматирующей строки | Защита от хакеров корпоративных сетей | Отказ в обслуживании


Защита от хакеров корпоративных сетей



Новости за месяц

  • Июнь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс