Skip to content Skip to sidebar Skip to footer

sql injection cheat sheet pentest lab

SQL Injection Cheat Sheet для Pentest Lab: Уязвимости и Использование

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

1. Определение типа ошибок базы данных

Первым шагом является определение типа ошибок, который возвращает сервер при попытке SQL инъекции. Это поможет выбрать правильные атаки:

— MySQL: Ошибки типа You have an error in your SQL syntax
— PostgreSQL: Ошибки с сообщениями ERROR: parser:
— Microsoft SQL Server: Сообщения об ошибках, начинающиеся с Incorrect syntax near

2. Проверка уязвимости

Для проверки на уязвимость можно использовать простые инъекции:

— `1′ OR ‘1’=’1` — если результат меняется, вероятно, запрос уязвим.
— `’ AND 1=2` — позволяет определить, ведёт ли база данных запрос к нулевому содержанию.

3. Типы SQL инъекций

Управляемые ошибками
Используются для получения информации о структуре базы данных через специальные знаки, вызывающие ошибки:

— `1′ UNION SELECT NULL—`: Позволяет определить возможность объединения запросов.
— Использование комментариев: `’); DROP TABLE users; — `

Безуправляемые
Атаки без явного использования ошибок, используют условные операторы:

— `1′ AND 2=2`: Проверка на вероятность успешной инъекции.
— Использование псевдонима таблиц: `UNION SELECT username, password FROM users—`

4. Взлом паролей и чтение данных

После установления возможности SQL инъекций следует попытаться прочитать данные из базы:

— Получение списка таблиц: `UNION SELECT table_name, NULL FROM information_schema.tables—`
— Чтение конкретных столбцов: `UNION SELECT column1, column2 FROM tablename WHERE condition`

5. Использование алиасов

Для успешного объединения запросов используйте псевдонимы:

— Определение количества колонок: `ORDER BY 1—`, `ORDER BY 2—` и так далее.
— Проверка с использованием алиасов: `UNION SELECT username AS a1, password AS a2 FROM users—`

6. Подъём привилегий

Если удастся получить доступ к данным пользователя, попробуйте поднять свои права:

— `’; EXEC xp_cmdshell ‘dir’ —`: Используется для запуска команд на Windows.
— Вызов процедур: `’); EXEC master..xp_dirtree ‘//.’;—`

7. Заключение

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

Таким образом, SQL инъекции являются ключевым элементом любого пентеста баз данных, и знание способов их использования необходимо для эффективного тестирования безопасности.