Серия веб-безопасности — инъекционная атака
Серия веб-безопасности — инъекционная атака

Предисловие

существуют разработки веб-приложений, самые основные требования безопасности и защиты от SQL-инъекции. Фактически, помимо SQL-инъекции, Есть много других инъекционных атак. Атаки с внедрением — одна из наиболее распространенных атак на веб-приложения.

В этой статье будут представлены понятия, типы, принципы инъекционных атак и способы защиты от них.

Что такое инъекционная атака

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

Атаки с внедрением — один из наиболее распространенных типов атак на веб-приложения, и успешная атака приведет к риску конфиденциальности, целостности и доступности приложения.

Виды инъекционных атак

Распространенные типы инъекционных атак включают в себя:

  • SQL-инъекция: в SQL Заявления об инъекции вредоносного кода для выполнения ненадежных операций с целью получения конфиденциальной информации или подделки ее.
  • введение команд: Злоумышленник сможет выполнять недоверенные операции по внедрению. команду в приложение.
  • LDAP-инъекция: использовать LDAP Запросите уязвимости, чтобы получить конфиденциальную информацию или изменить поведение приложения.
  • Инъекция ОС: использовать Операционная уязвимость системы, ввод недоверенных данных на сервер для использования Операционная ошибка в системе для выполнения подозрительных операций.
  • XML-инъекция: использовать XML Уязвимость в редакторе создает вредоносный XML кодовая атака

SQL-инъекция

Что такое SQL-инъекция-атака

SQL-инъекция — это место, где злоумышленник существующего приложения получает входные параметры инъекции вредоносного оператора SQL с целью получить конфиденциальную информацию и подделать ее.

В веб-приложениях вводимые пользователем данные часто используются в качестве условий запроса к базе данных и заполняются операторами SQL.

Дайте каштан:

Предположим, существует форма входа, где пользователи могут войти в систему, введя свое имя пользователя и пароль.

Обычная команда SQL может выглядеть так:

SELECT * FROM users WHERE username = 'Windeal' AND password = '123456'

Если пароль 123456 является неверным, пользователь не сможет войти в систему.

Однако злоумышленник может внедрить вредоносный код «' OR 1=1» в параметр имени пользователя, например:

SELECT * FROM users WHERE username = 'Windeal' OR 1=1--' AND password = 'mypassword'

В результате, несмотря на неправильный пароль, злоумышленник успешно использовал SQL-инъекцию, чтобы обойти проверку входа в систему (часть запроса, подтверждающая ключевой пароль, была закомментирована).

Распространенные типы/методы SQL-инъекций атак

Вот некоторые распространенные типы SQL-инъекций:

  1. на основеSQL-инъекция сообщений об ошибках

SQL-инъекция на основе ошибок обычно встречается в сообщениях об ошибках приложения. Злоумышленник может изменить формат команды SQL, чтобы приложение сгенерировало сообщение об ошибке, содержащее конфиденциальную информацию о внутренней базе данных, используемой приложением.

  1. Впрыск на основе временной задержки

Злоумышленники используют чувствительные ко времени команды SQL, чтобы определить, успешно ли выполнен внедренный оператор SQL, тем самым увеличивая вероятность успеха собственного внедрения. Злоумышленники добавляют временные задержки к написанным ими операторам SQL, чтобы определить, соответствуют ли результаты их ожиданиям, что позволяет им в дальнейшем использовать скомпрометированные приложения и ресурсы сервера.

  1. слепая нота

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

  1. Внедрение запроса на объединение

Внедрение запроса объединения — это метод выполнения двух или более запросов к базе данных в одном запросе SQL. Злоумышленники часто используют команду UNION SELECT для добавления новых операторов запроса к запросам SQL. Этот метод внедрения позволяет объединить данные из двух или более таблиц в один ответ, предоставляя злоумышленнику доступ к данным, которые не возвращаются приложением.

  1. Внедрение хранимой процедуры

Хранимая процедура — это предварительно скомпилированный блок кода SQL, который может быть выполнен в рамках транзакции. Злоумышленник может использовать внедрение хранимых процедур для внедрения команд SQL и выполнения вредоносного кода в базе данных для выполнения несанкционированных действий и/или загрузки дополнительного вредоносного кода.

  1. Внедрение на основе стековых запросов

Стекированные запросы позволяют выполнять несколько запросов в одном запросе. Злоумышленник может использовать методы внедрения многоуровневых запросов для выполнения команд запросов на серверах баз данных и манипулирования данными в приложении.

Предотвращение и защита от атак SQL-инъекций

  1. Строгая проверка входного параметра: Серверная часть службы выполняет строгую проверку параметров для всех полученных параметров запроса и строго ограничивает длину, формат и наличие недопустимых символов во входных параметрах.
  2. Параметризованный запрос: Используйте параметризованные запросы и подготовленные инструкции вместо конкатенации строк, чтобы повысить надежность приложения.
  3. Ограничить доступ к базе данных и таблицам: Чтобы ограничить доступ пользователей и приложений, разработчикам и администраторам приложений следует пользователям данных предоставляются минимальные права пользователя. Возможность ограничения отчетов о существующих данных в виде открытого текста не повлияет на нормальную работу приложения.
  4. Ограничить время работы Ограничьте (уменьшите) максимальное время выполнения запроса, чтобы злоумышленники не могли определить логику фонового выполнения на основе времени ответа.
  5. Не предоставляйте слишком подробные сообщения об ошибках: Уровень детализации сообщения об ошибке предоставит злоумышленнику информацию о том, что делает приложение. Большая часть информации на платформе данных.
  6. Многоуровневые меры защиты: использовать Web Настройте несколько уровней защиты с помощью таких методов, как брандмауэры приложений, инструменты предотвращения сканирования и регулярные проверки кода.
  7. Принудительно сократить набор функций базы данных SQL: Максимально сократить базу Набор функций данных,Это может эффективно уменьшить поверхность потенциальных атак. Например включить режим только для чтения,Отключить управление сеансами,Проверка значения силы и т. д.

Другие инъекционные атаки

введение команд

определение:

введение команда имеет тип, аналогичный SQL Метод инъекционной атаки. Злоумышленник делает это, вводя в приложение определенную строку команд операционной системы или применяя определенное исправление безопасности приложения для обхода проверок безопасности на входе.

принцип:

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

Пример:

Предположим, мы предоставляем функцию поиска. Нижний уровень предназначен для использования команды grep для проверки наличия определенной строки в файловой системе.

Если мы вводим в поле поиска системные команды, то заполняем

searchterm | rm /f /

тогда выполнение сервера может стать

grep searchterm | rm /f /

Это приводит к удалению файлов на сервере.

Профилактика и защита:

Для эффективной профилактики и защитывведение командная атака,Могут быть приняты следующие меры:

  1. Проверка и фильтрация входных данных
  2. Примените патч безопасности и укрепите пароль пользователя.
  3. Контроль доступа для авторизации исполнения
  4. Установите механизм двусторонней аутентификации между клиентом и сервером.
  5. Максимально стандартизируйте и ограничьте интерфейсы приложений.

LDAP-инъекция

определение:

LDAP-инъекция — метод атаки,Злоумышленник отправляет вредоносные данные или фильтр LDAP на запрос LDAP,Для достижения цели доступа к личным сообщениям.

принцип:

Злоумышленник вводит специально созданные данные в запрос или фильтр LDAP для имитации обычных операций запроса LDAP. Однако после завершения запроса вредоносные данные злоумышленника отображаются службой LDAP, что вызывает проблемы с безопасностью.

Профилактика и защита:

Атаки LDAP-инъекций можно защитить и предотвратить с помощью следующих мер, таких как:

  1. Максимально стандартизируйте и ограничьте клиентские и серверные интерфейсы.
  2. Ограничить авторизацию доступа для учетных записей LDAP
  3. верно Введите данные для проверки и фильтрации
  4. Применяйте исправления безопасности и отслеживайте системные журналы
  5. Авторизация и доступ к запросам управления доступом.

Инъекция ОС:

определение:

OSвведение команда — это тип атаки, при которой злоумышленник отправляет серию вредоносных входных данных в место, где ожидалось ввести только данные. система (ОС) отправляет команды.

принцип:

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

Профилактика и защита:

Чтобы предотвратить атаку с использованием команды внедрения ОС, вы можете использовать следующие решения:

  1. Подтвердить все введенные данные
  2. Примените патч безопасности и нормализуйте все входы.
  3. Ограничить доступ и разрешения для пользователей и связанных учетных записей служб.
  4. Добавьте надежные механизмы проверки на уровне API.
  5. Разработать здоровые программы повышения осведомленности и образования в области безопасности, чтобы персонал стал более сосредоточенным. на Безопасность риска и принять соответствующие меры.

XML-инъекция:

определение:

Атаки с внедрением XML относятся к злоумышленникам, которые используют уязвимости синтаксического анализатора XML для внедрения вредоносного кода во время процесса ввода и анализа XML-данных для достижения цели атаки.

принцип:

Злоумышленники используют уязвимости внедрения XML, внедряя вредоносные данные XML или формата файла XML во входные данные XML, которым не доверяют, или используют операции логического запроса XPath для реализации определенных операций фильтрации. В результате анализатор не может правильно идентифицировать вредоносный код, тем самым выполняя вредоносные операции.

Пример:Вот простой пример,Демонстрирует, как провести атаку XMLинъекция:

Рассмотрим приложение, которое принимает предоставленные пользователем XML-данные и использует эти данные для генерации вывода в формате HTML. Злоумышленник может предоставить следующие вредоносные XML-данные:

Язык кода:javascript
копировать
<user>
  <name>John</name>
  <role>Admin</role>
  <script>alert('XSS Attack')</script>
</user>

Если приложение неправильно обрабатывает входные данные, оно может вставить эти вредоносные данные XML в выходные данные HTML, что приведет к атаке XSS (межсайтовый скриптинг). Вредоносный скрипт злоумышленника выполняется в браузере пользователя.

Профилактика и защита:

Чтобы эффективно предотвратить атаки с внедрением XML и защититься от них, можно использовать следующие решения:

  1. верно Все входные данные для проверки и фильтрации
  2. верно Все приложения и элементы базы данных доступа подлежат жесткому контролю и аутентификации доступа
  3. использовать инструмент сканирует управление на наличие возможных уязвимостей безопасности существования
  4. верно XML-документы ограничены и стандартизированы во избежание внедрения вредоносного кода.
  5. Включить брандмауэр приложений и т. д. Операционная. Уровень системы Механизм безопасности и эксклюзивный XML Парсеры фильтров и другие технические меры для укрепления и улучшения XML из Безопасностьсекс。
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose