Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1

SQL-иньекция


Первичная защита в QP7

Что это такое


Первичная защита представляет собой удаление некоторых опасных SQL-конструкций, например UPDATE, DELETE, UNION:

Где она поддерживается

  • Стандартный функционал фильтрации и сортировки Publishing Container (защита осуществляется в Run-Time, а не на этапе сборки, поэтому работает как для статических параметров Publishing Container, так и для динамических)

  • GetContentData (Прямой вызов из DBConnector Cnn.GetContentData не защищен)

Поддерживается в следующих версиях QP:

    1. ASP – c версии 7.1

    2. ASP.NET ­­– во всех (так как данный тип сборки появился только в версии 7.2)

    3. ASP.NET (like ASP) – отсутствует

Также с версии 7.1 появились рекомендуемые для использования в фильтрах функции NumValue и StrValue.

Где она не поддерживается


В общем случае, это любой код, работающий с базой данных и не использующий стандартный функционал Publishing Container или страничного метода GetContentData

Код, в котором отсутствует первичная защита:



  • GetData

  • GetPageData

  • Cnn.GetContentData (страничный метод GetContentData защищен)

  • cnn.Execute

  • API-функции QP7

  • Пользовательский код, устанавливающий собственные соединения с базой данных

Код, в котором отсутствует защита можно искать в

  • форматах и шаблонах QP (поиск с помощью like по базе)

  • .inc-файлах (для ASP-сайтов) (поиск по файлам через UltraEdit или Total Commander)

  • .dll-cборках (для ASP.NET сайтов) (поиск по файлам соответствующего проекта через Visual Studio)

Текущая ситуация


На cluster.quantumart.ru сейчас стоит модифицированная версия 6.7.2.7, в которую включены упомянутые в этом разделе Security фиксы. Основную проблему представляют сервера клиентов, на которых стоит QP версии до 7.1 и на которых первичная защита отстутствует.

Рекомендации


Следует помнить, что первичная защита НЕ ГАРАНТИРУЕТ полную защиту от SQL-инъекции. Это просто была попытка создания быстрой защиты от наиболее часто используемых методов атаки без переработки сайтов. Для защиты от SQL-инъекции нужно осуществлять валидацию входных параметров. Для Publishing Container справедливы следующие рекомендации

  • для написания фильтров для Publishing Container нужно использовать безопасные конструкции “[content_item_id] = ” & NumValue(“id”), “[name] = ‘” & StrValue(“name”) & “’”.

  • для динамических значений в полях Start From и Сount рекомендуется использовать функцию NumValue

  • выражения динамической сортировки и содержимое переменных для динамического изменения контента рекомендуется проверять на допустимые значения по принципу “белого списка”

При написании кода доступа к базе данных не через Publishing Container нужно быть осторожнее вдвойне, так как первичная защита отсутствует.

Уязвимости, найденные в текущей версии QP7


Vote.inc . На американских серверах необходимо проверить, что данный файл не скопирован в папку сайта, а используется централизованно из виртуальной папки Include. Файл vote.inc заменен на qa-qp2.quantumart.com и cluster.quantumart.ru, но необходимо заменить файл у американских клиентов (целевая группа – ASP-сайты, использующие функционал vote.inc для организации голосования (можно искать по базе в текстах форматов строчку “vote.inc”). По результатам исследования именно через функционал vote.inс был осуществлен последний по времени взлом клиентского сайта.

Хранимая процедура qp_fullTextSiteSearch. Фикс применен на qa-qp2.quantumart.com и cluster.quantumart.ru на уровне базы данных. Также фикс добавлен в fix_dbo.sql


Автоматизированное тестирование сайта на наличие SQL-иньекций


Полноценную проверку сайта на уязвимости могут дать только специализированные утилиты тестирования. Из того, что мы пробовали, нам больше всего понравилась коммерческая утилита XSpider. Стандартная лицензия на 1 год с ограничением в 4 тестируемых IP адреса, стоит около 500$. Есть пробная версия, но она основана на старом ядре и не выводит подробности о найденных уязвимостях. https://www.ptsecurity.ru/xs7.asp

Из бесплатных утилит тестирования неплохой вариант ­­­– Paros Proxy. http://download.quantumart.com/injectionTest/paros.exe

Для работы требует Java Runtime Envirionment 6: http://download.quantumart.com/injectionTest/JRE.exe



Список сканеров безопасности:

http://forum.antichat.ru/showpost.php?p=141796&postcount=2

Sql-иньекция

Первичная защита представляет собой удаление некоторых опасных sql-конструкций, например update, delete, union

29.52kb.

14 12 2014
1 стр.


Работа с Microsoft sql server Описание и сравнение версий sql server

Субд. Это версии Microsoft sql server 2005 Express Edition и Microsoft® sql server® 2008 Express Edition. Обе версии отличаются от полных версий несколько ограниченной функциональн

39.79kb.

10 10 2014
1 стр.


Организация sql-доступа Глава Организация sql-доступа 1 Общие сведения 1 Подготовка базы данных комплекса 1

СБиС++ позволяет создавать собственные приложения, работающие с данными сбиС++. А также работать с данными комплекса из любой программы, поддерживающей интерфейс odbc, например, из

103.14kb.

12 10 2014
1 стр.


Переход на Microsoft sql server Express 2008 R2

Для создания резервной копии базы данных необходимо в программе Microsoft sql server Management Studio в левой части окна выбрать требуемую базу данных. Затем, щелчком правой кнопк

70.43kb.

10 10 2014
1 стр.


Microsoft sql server 2012 для пользователей 1С: Предприятие 8

Модели лицензирования "Microsoft sql server 2012 для пользователей 1С: Предприятие 8" такие же, как для лицензий, приобретаемым по программам корпоративного лицензирования Microsof

63.18kb.

10 10 2014
1 стр.


Лабораторная работа №2 sql запросы для создания таблиц
46.9kb.

13 09 2014
1 стр.


Активное администрирование приложений в Microsoft sql server 0

Клиентская часть отвечает за интерфейс пользователя, обработку результатов запросов, двустороннюю связь с базой данных

373.3kb.

10 10 2014
1 стр.


Ddl(язык определения, описания данных Data Definition Language); II). Dml

Язык sql стандарта ansi содержит около 40 операторов, которые подразделяются на 5 групп

322.62kb.

16 12 2014
1 стр.