Что такое дефекты инъекций?

Опубликовано: 26 Сентября, 2022

Уязвимость внедрения — это уязвимость в приложениях, позволяющая злоумышленнику передать вредоносный код через приложение в другую систему. Это позволяет хакерам вводить команды на стороне клиента или сервера. Это недостатки, с помощью которых хакеры могут получить контроль над веб-приложениями. В зависимости от типа уязвимости злоумышленник может внедрить SQL-запросы, команды javascript или os и т. д.

Последствия дефектов инъекций:

  • Позволяет злоумышленнику скомпрометировать систему жертвы.
  • Позволяет хакерам выполнять вредоносные коды.
  • Позволяет злоумышленникам проводить атаки с подделкой запроса на межсайтовые атаки (веб-сайт не видит, что запрос на самом деле исходит от хакеров или сам по себе).
  • Позволяет хакерам компрометировать базы данных.
  • Уязвимость произвольной загрузки файлов может привести к компрометации всей базы данных.
  • Потеря конфиденциальности, целостности и доступности.

Неправильная санация ввода:

Хакер использует веб-приложение с помощью вредоносных команд, кодов или токенов и т. д., а веб-приложение передает и выполняет эти данные, введенные хакером, без очистки. Это позволяет хакерам получить доступ к приложению.

Давайте посмотрим на пример ниже,

Web Application                                                         Application Server

login page(hacker enters malicious code here)—–> malicious code entered into the server                                                    

Вот как хакер вводит вредоносный код в веб-приложение, мы всегда должны дезинфицировать запросы перед их отправкой на сервер.

Меры предосторожности от неправильной дезинфекции ввода:

  • Дезинфицировать ввод после его получения от пользователя.
  • Используйте соответствующий фильтр на стороне сервера.
  • Ввод должен быть проверен как на стороне клиента, так и на стороне сервера.

Неправильная дезинфекция вывода?

Хакер использует веб-приложение, внедряя вредоносные команды, коды или токены и т. д., а приложение внедряет эти данные без дезинфекции. Это позволяет хакерам контролировать ответы HTTP/HTML.

Давайте посмотрим на пример ниже:

         Web Application                    Application Server

                   Hacker   <—————-Response to user input

Это позволяет хакерам анализировать запросы и ответы.

Как исправить неправильную очистку вывода:

  • Дезинфицируйте вывод, прежде чем вставлять его в ответ HTML/HTTP.
  • Кодировать все специальные символы.

Применить наименьшую привилегию:

Это будет эффективно. поскольку веб-приложение работает только с теми привилегиями, которые ему необходимы для выполнения своей функции. использование root-доступа может нанести вред вашему устройству. Как суперпользователь, у вас есть все привилегии. Это может быть возможностью для хакера.

Типы инъекционных атак:

Существует так много типов инъекционных атак. некоторые из них,

  • SQL-инъекция
  • Межсайтовый скриптинг
  • фаззинг
  • Уязвимость загрузки произвольных файлов
  • HTML-инъекция

Как предотвратить дефекты инъекций:

  • Использование подготовленных операторов (с параметризованными запросами)
  • Использование правильно построенных хранимых процедур
  • Проверка ввода списка разрешений Экранирование всех введенных пользователем данных
  • Выполнение проверки ввода разрешенного списка в качестве вторичной защиты
  • Используйте надежные брандмауэры веб-приложений, чтобы затруднить эксплуатацию