Что такое дефекты инъекций?
Уязвимость внедрения — это уязвимость в приложениях, позволяющая злоумышленнику передать вредоносный код через приложение в другую систему. Это позволяет хакерам вводить команды на стороне клиента или сервера. Это недостатки, с помощью которых хакеры могут получить контроль над веб-приложениями. В зависимости от типа уязвимости злоумышленник может внедрить 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-инъекция
Как предотвратить дефекты инъекций:
- Использование подготовленных операторов (с параметризованными запросами)
- Использование правильно построенных хранимых процедур
- Проверка ввода списка разрешений Экранирование всех введенных пользователем данных
- Выполнение проверки ввода разрешенного списка в качестве вторичной защиты
- Используйте надежные брандмауэры веб-приложений, чтобы затруднить эксплуатацию