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.

Ihor Bliumental - Collision CORS

259 views

Published on

Slides from Unsafe CORS workshop by Ihor Bluimental at OWASP Kyiv Chapter Fall 2017 meetup.
Follow Ihor on Twitter: https://twitter.com/igorblum

Published in: Technology
  • Login to see the comments

  • Be the first to like this

Ihor Bliumental - Collision CORS

  1. 1. Ihor Bliumental OWASP Kyiv Chapter Lead ihor.bliumental@owasp.org Unsafe Cross Origin Resource Sharing
  2. 2. Same Origin Policy (SOP) • Origin: https://example.com:8433 • http://example.com:8443 • https://www.example.com:8443 • https://example.com:443 • https://www.example.org:8443
  3. 3. Репозиторий и ссылки • https://goo.gl/63ZGwt
  4. 4. Cross Origin Access • Запись. Обычно разрешена (ссылки, перенаправления, формы). • Встраивание. Обычно разрешено: • JS <script src="..."></script> • CSS <style rel="stylesheet" href="..."> (требуют верного Content-type) • Картинки и медиа <img>, <video>, <audio> • Плагины <embed>, <object>, <applet> • Шрифты @font-face • Фреймы <iframe>, <frame> • Чтение. Обычно не разрешено
  5. 5. JSONP (XSSI) • JSON with padding, Cross site script include • X-Content-Type-Options: nosniff
  6. 6. Flash and MS Silverlight • crossdomain.xml и clientaccesspolicy.xml • *, *.example.com
  7. 7. Modern CORS Same Origin Policy для XMLHttpRequest Origin: https://site1.com Web-
 APP Server – site1.com Server – site2.com Browser https://site1.com XMLHttp
  8. 8. Modern CORS • Запросы • Origin: (https?|ftp)://example.com|null • Access-Control-Request-Method: <method> • Access-Control-Request-Headers: <field-name> ... • Ответы • Access-Control-Allow-Origin: <origin> | * • Access-Control-Allow-Credentials: true • Access-Control-Allow-Methods: <method> ... • Access-Control-Allow-Headers: <field-name> .... • Access-Control-Expose-Headers: X-Custom-Header • Access-Control-Max-Age: <delta-seconds>
  9. 9. WebSockets • Не проверяется Origin по-умолчанию
  10. 10. postMessage • Проверка Origin на разработчике • Уязвимый сайт в <iframe> — защита X- Frame-Options • Уязвимый сайт в поп-апе (window.open) — предупреждения от браузера • Можно использовать расширения хрома — OWASP London, доклад Арсения Реутова (https://raz0r.name/) https://goo.gl/MGrhN9
  11. 11. Спасибо за внимание
  12. 12. «В обратную сторону» • Заголовок Access-Control-Allow-Origin: * позволяет злоумышленнику встраивать содержимое

×