Нарушение целостности структуры SQL-запроса. Внедрение SQL-кода (SQL injection) один из распространённых способов взлома ПО, работающего с базами данных,

Презентация:



Advertisements
Похожие презентации
SQL-injections for dummies. Что это? Способ несанкционированного доступа к данным, хранящимся в БД, основанный на внедрении в запрос произвольного SQL-
Advertisements

Тестирование безопасности или Security and Access Control Testing.
Тамбовский государственный университет имени Г.Р. Державина Институт математики, физики и информатики Кафедра информатики и информационных технологий Иванова.
НАЗНАЧЕНИЕ СИСТЕМ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ Реляционные СУБД Реляционные БД СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ (СУБД) – это программное обеспечение, предназначенное.
Обнаружение уязвимостей в web- приложениях, написанных на Python, средствами динамического анализа исходных кодов Заливин Д.А. Козлов Д.Д. Петухов А.А.
Базы данных. Введение Базы данных обеспечивают хранение информации. Доступ к базе данных осуществляется через специальную программу - систему управления.
Практические аспекты сетевой безопасности Уязвимости в веб-приложениях Часть I: SQLi.
Корпоративные системы Лекция 5. Механизмы доступа к БД через Web-интерфейс.
Основные понятия БД Сама по себе БД не может обслужить запросы пользователя на поиск и обработку информации, т.е. БД – это «информационный склад». Обслуживание.
ОСНОВНЫЕ ВИДЫ И ПРИЕМЫ ХАКЕРСКИХ АТАК Свидетель 3.
PL/SQL Взаимодействие с СУБД. Специальные типы Имя_таблицы.имя_столбца%TYPE Имя_таблицы%ROWTYPE; Имя_курсора%ROWTYPE;
Администрирование и безопасность MySQL. Создание и удаление пользователей Под учетной записью пользователя MySQL подразумевается строка в таблице user.
Создание безопасных Веб-приложений Алексей Кирсанов ведущий разработчик компании «Битрикс»
Работа с БД в Zend Лекция 4 1.Модель 2.Классы Zend_Db_Table и Zend_Config 3.Запросы 4.Свойства и методы таблицы.
Клиент банка под атакой © 2009, Digital Security.
База данных и СУБД: основные понятия. База данных: общее понятие База данных: хранилище информации отражает объект реального мира имитирует деятельность.
Лекция 15 Лекция 15 Управление реляционными базами данных. Языки определения данных и языки манипулирования данными. Способы выражения запросов: процедурный.
Автоматическое построение профилей нормального поведения веб-приложений Гамбаров Эльдар, группа 522 Научные руководители: Петухов А. А., д. ф.-м. н. профессор.
БАЗЫ ДАННЫХ ( ВВЕДЕНИЕ ). База данных это информационная модель, позволяющая упорядоченно хранить данные о группе объектов, обладающих одинаковым набором.
Получение контроля над объектом атаки Местонахождение атакующего В разных сегментах с объектом атаки Используемые уязвимости Цель Ошибки реализации Степень.
Транксрипт:

Нарушение целостности структуры SQL-запроса

Внедрение SQL-кода (SQL injection) один из распространённых способов взлома ПО, работающего с базами данных, основанный на внедрении в запрос произвольного SQL-кода. Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере. Атака типа внедрения SQL может быть возможна из-за некорректной обработки входных данных, используемых в SQL-запросах. Разработчик прикладных программ, работающих с базами данных, должен знать о таких уязвимостях и принимать меры противодействия внедрению SQL. Внедрение SQL-кода (SQL injection) один из распространённых способов взлома ПО, работающего с базами данных, основанный на внедрении в запрос произвольного SQL-кода. Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере. Атака типа внедрения SQL может быть возможна из-за некорректной обработки входных данных, используемых в SQL-запросах. Разработчик прикладных программ, работающих с базами данных, должен знать о таких уязвимостях и принимать меры противодействия внедрению SQL.

... $id = $_REQUEST['id']; $res = mysql_query("SELECT * FROM news WHERE id_news = $id"); WHERE id_news = $id");... SELECT * FROM news WHERE id_news = 5 Если злоумышленник передаст в качестве параметра id строку -1 OR 1=1 id = -1 OR 1=1 SELECT * FROM news WHERE id_news = -1 OR 1=1 SELECT * FROM news WHERE id_news = 5 Если злоумышленник передаст в качестве параметра id строку -1 OR 1=1 id = -1 OR 1=1 SELECT * FROM news WHERE id_news = -1 OR 1=1

Error-based SQL injection Инъекция заведомо некорректного запроса с целью получения ошибки для определения типа и версии используемой СУБД. 1.Определение уязвимостей, специфичных для данной версии. 2.Определение особенностей СУБД. 3.Определение дальнейшего вектора атаки

$res = mysql_query("SELECT id_news, header, body, author FROM news WHERE id_news = ". $_REQUEST['id']); -1 UNION SELECT 1, username, password, 1 FROM admin -1 UNION SELECT 1, username, password, 1 FROM admin SELECT id_news, header, body, author FROM news WHERE id_news = -1 UNION SELECT 1, username, password, 1 FROM admin $res = mysql_query("SELECT id_news, header, body, author FROM news WHERE id_news = ". $_REQUEST['id']); -1 UNION SELECT 1, username, password, 1 FROM admin -1 UNION SELECT 1, username, password, 1 FROM admin SELECT id_news, header, body, author FROM news WHERE id_news = -1 UNION SELECT 1, username, password, 1 FROM admin

Stacked queries SQL injection Если веб-приложение поддерживает последовательные запросы - в уязвимый параметр HTTP-запроса добавляется точка с запятой (;) и следом внедряемый SQL- запрос. SELECT id_news, header, body, author FROM news WHERE id_news = -1; SELECT username,password FROM admin