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.
© Digital Security
Эвристический метод обнаружения DOM-based XSS с
использованием толерантных синтаксических
анализаторов
...
© Digital Security 2
github.com/ptresearch/DOMSanitizer
Disclaimer
Исследование базируется на работе «WAF.js: как защищать...
© Digital Security 3
DOMSanitizer как часть WAF.js
© Digital Security 4
Работа DOMSanitizer
Анализирует Sources:
● document.url
● location.hash
● location.search
● document....
© Digital Security 5
github.com/ternjs/acorn
Работа Acorn.js
Абстрактное синтаксическое
дерево (AST)
if (x > y) {
max = x;...
© Digital Security 6
Решение: github.com/ternjs/acorn#distacorn_loosejs
DOMSanitizer bypass
Название
контекста
Условия Обх...
© Digital Security 7
Ложные срабатывания
© Digital Security 8
SecLists - goo.gl/8QClsM
Тестирование
176.195.109.91 - - [19/Nov/2016:18:05:30 +0300] "GET /assets/de...
© Digital Security 9
Ошибки Acornloose
for your (eyes in open) window
© Digital Security 10
Исправление ошибок
Корректная обработка следующих ситуаций:
● не распознанные узлы помечаются «Х»;
●...
© Digital Security 11
github.com/pertsev/DOMSanitizer
Выводы
● Снижение количества ложных срабатываний до уровня
DOMSaniti...
© Digital Security 12
github.com/pertsev/DOMSanitizer
Спасибо за внимание
С вами был @p4lex
Upcoming SlideShare
Loading in …5
×

Эвристический метод обнаружения DOM-based XSS с использованием толерантных синтаксических анализаторов

155 views

Published on

Будет описан подход к обнаружению и предотвращению атак DOM-based XSS на клиентской стороне веб-приложения с использованием синтаксических анализаторов JavaScript, толерантных к синтаксическим ошибкам. Метод ориентирован на применение в межсетевых экранах уровня приложения (WAF).

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Эвристический метод обнаружения DOM-based XSS с использованием толерантных синтаксических анализаторов

  1. 1. © Digital Security Эвристический метод обнаружения DOM-based XSS с использованием толерантных синтаксических анализаторов Докладчик: Перцев Алексей Научный руководитель: Денис Колегов
  2. 2. © Digital Security 2 github.com/ptresearch/DOMSanitizer Disclaimer Исследование базируется на работе «WAF.js: как защищать веб-приложения с использованием JavaScript» PHDays2016. Докладчики: ● Денис Колегов (@dnkolegov) ● Арсений Реутов (@ru_raz0r)
  3. 3. © Digital Security 3 DOMSanitizer как часть WAF.js
  4. 4. © Digital Security 4 Работа DOMSanitizer Анализирует Sources: ● document.url ● location.hash ● location.search ● document.title ● .... Но не знает Sinks: ● document.write ● window.location = "..." ● и другие. Acorn.js
  5. 5. © Digital Security 5 github.com/ternjs/acorn Работа Acorn.js Абстрактное синтаксическое дерево (AST) if (x > y) { max = x; } else { max = y; } Запрещенные узлы: ● Обращения в window, document; ● var a = 1; ● function () {alert(‘xss’)}; ● ...
  6. 6. © Digital Security 6 Решение: github.com/ternjs/acorn#distacorn_loosejs DOMSanitizer bypass Название контекста Условия Обход Атрибут HTML тега ● <img bar="ввод" > ● <img bar=‘ввод’ > ● <img bar=ввод > '><svg/onload='alert(1) ' onLoad="alert(1);// Javascript <body onload=”think.oob(ввод)”> )},{0:promt(1 <body onload=”think.oob()},{0:promt(1)”>
  7. 7. © Digital Security 7 Ложные срабатывания
  8. 8. © Digital Security 8 SecLists - goo.gl/8QClsM Тестирование 176.195.109.91 - - [19/Nov/2016:18:05:30 +0300] "GET /assets/default/images/lock.png HTTP/1.1" 200 601 176.195.109.91 - - [19/Nov/2016:18:05:30 +0300] "GET /assets/default/images/logo-garant-group.png HTTP/1.1" 200 2502 176.195.109.91 - - [19/Nov/2016:18:05:30 +0300] "GET /assets/default/images/black-bg.png HTTP/1.1" 200 11122 176.195.109.91 - - [19/Nov/2016:18:05:30 +0300] "GET /assets/default/images/violet-bg.png HTTP/1.1" 200 27325 95.27.245.109 - - [14/Nov/2016:06:52:32 +0300] "GET /catalog/ekskavatory/?utm_source=yandex&utm_medium=cpc &utm_campaign=19039635&utm_content=2256195269&utm_term={PHRASE} HTTP/1.1" 200 3808 allinurl: %3fparam%3d OR %26param%3d OR %23param Google Custom Search
  9. 9. © Digital Security 9 Ошибки Acornloose for your (eyes in open) window
  10. 10. © Digital Security 10 Исправление ошибок Корректная обработка следующих ситуаций: ● не распознанные узлы помечаются «Х»; ● пропускаются фрагменты строки; ● нарушения семантики.
  11. 11. © Digital Security 11 github.com/pertsev/DOMSanitizer Выводы ● Снижение количества ложных срабатываний до уровня DOMSanitizer в обычном режиме ● Поверхность обнаруживаемых атак (attack surface) расширена
  12. 12. © Digital Security 12 github.com/pertsev/DOMSanitizer Спасибо за внимание С вами был @p4lex

×