Ответ
Да, есть опыт проведения security-тестирования веб-приложений на наличие уязвимостей SQL Injection (SQLi). Работа включает ручное тестирование и использование автоматизированных инструментов.
Методология и примеры атак:
- Классическая инъекция в поле аутентификации:
- Ввод:
' OR '1'='1илиadmin'-- - Цель: обход проверки логина/пароля.
- Ввод:
- Union-based атака для извлечения данных:
- Ввод:
' UNION SELECT username, password FROM users-- - Цель: получить данные из других таблиц.
- Ввод:
- Blind SQL Injection (логическая/временная):
- Ввод:
' AND SLEEP(5)-- - Цель: подтвердить уязвимость по времени отклика сервера.
- Ввод:
Объекты тестирования: проверяются не только текстовые поля форм, но и:
- URL-параметры (
/user?id=1') - HTTP-заголовки (Cookie, User-Agent, X-Forwarded-For)
- JSON/XML тела запросов в REST API.
Основные методы защиты, которые также проверяются:
- Использование параметризованных запросов (Prepared Statements) — основной метод.
- Валидация и экранирование пользовательского ввода.
- Принцип минимальных привилегий для учетной записи БД.
- Регулярное обновление СУБД и библиотек.
Инструменты: для автоматизации разведки и эксплуатации использовал sqlmap. Пример базовой команды для проверки параметра:
sqlmap -u "http://example.com/page?id=1" --dbs
Тестирование проводится на изолированных стендах (не в production).