Внутри Google Chrome идёт дискуссия, закопать ли XSS-аудитор или доработать его.
Основная идея: отключить аудитор на сайтах Google, посмотреть какие метрики это затронет, дождаться пока другие большие сайты его тоже отключат и убрать этот функционал совсем.
Но может, стоит все-таки доработать? )
Подробности тут: https://bugs.chromium.org/p/chromium/issues/detail?id=898081.
P.S. Для справки, XSS-аудитор - это механизм обнаружения и предупреждения эксплуатации reflected-xss. Если браузер видит, что в запросе и ответе потенциально есть вектор атаки, он не отображает ответ, а показывает предупреждение.
Основная идея: отключить аудитор на сайтах Google, посмотреть какие метрики это затронет, дождаться пока другие большие сайты его тоже отключат и убрать этот функционал совсем.
Но может, стоит все-таки доработать? )
Подробности тут: https://bugs.chromium.org/p/chromium/issues/detail?id=898081.
P.S. Для справки, XSS-аудитор - это механизм обнаружения и предупреждения эксплуатации reflected-xss. Если браузер видит, что в запросе и ответе потенциально есть вектор атаки, он не отображает ответ, а показывает предупреждение.
Пока все готовятся к ZN, Samuel Groß выложил свой pwn2own баг-чейн для Safari->MacOS kernel https://github.com/saelo/pwn2own2018
GitHub
GitHub - saelo/pwn2own2018: A Pwn2Own exploit chain
A Pwn2Own exploit chain. Contribute to saelo/pwn2own2018 development by creating an account on GitHub.
Расширения в браузере - страшная сила! Почему? Ну хотя бы потому, что они используют API, который предоставляют браузеры. А в нем бывают разные баги: от плохо работающих пермишнов, до RCE.
Отличная и свежая подборка по ссылкам ниже:
https://leucosite.com/WebExtension-Security/
https://leucosite.com/WebExtension-Security-Part-2/
Ждём часть 3.
Отличная и свежая подборка по ссылкам ниже:
https://leucosite.com/WebExtension-Security/
https://leucosite.com/WebExtension-Security-Part-2/
Ждём часть 3.
Leucosite
WebExtension Security (Part 2)
We delve a bit deeper into WebExtension security featuring 5 bugs
Safari и беспощадный D! Отличный пример красивой и простой url spoofing баги, позволяющей нафишить много важных доменов: https://xlab.tencent.com/en/2018/11/13/cve-2018-4277/
Моя презентация c ZeroNights 2018 про то, как начать ломать браузеры, а также о том, какие баги в них сейчас ищут, доступна online: https://goo.gl/LhiYdP.
Ушла эпоха 👾
Microsoft откажется от Edge и выпустит браузер на базе Chromium
Microsoft откажется от Edge и выпустит браузер на базе Chromium
Вышел отчет Chromium Security Q4. Самое интересное, что там было - представление нового API для защиты от XSS (в первую очередь от DOM-based), который называется Trusted Types.
Теперь разработчики смогут на своем сайте ограничить небезопасную вставку содержимого в DOM специальной политкой, которая активируется в CSP-заголовках. В этом случае в качестве параметров для функций (или свойств), порождающих небезопасный html (так называемые injection sinks, например, Element.innerHTML или HTMLScriptElement.src), можно будет использовать только объекты-политики, в которых можно описать реализацию санитайзинга или проверки контента, попадающего в DOM.
Подробнее можно почитать здесь: https://developers.google.com/web/updates/2019/02/trusted-types, а полную спецификацию можно найти тут: https://wicg.github.io/trusted-types/dist/spec/.
Фича пока что экспериментальная и доступна с 73 по 76 версию Chromium'a. Чтобы попасть в эксперимент надо записать свой сайт по ссылке: https://developers.chrome.com/origintrials/#/register_trial/171136785840078849
Теперь разработчики смогут на своем сайте ограничить небезопасную вставку содержимого в DOM специальной политкой, которая активируется в CSP-заголовках. В этом случае в качестве параметров для функций (или свойств), порождающих небезопасный html (так называемые injection sinks, например, Element.innerHTML или HTMLScriptElement.src), можно будет использовать только объекты-политики, в которых можно описать реализацию санитайзинга или проверки контента, попадающего в DOM.
Подробнее можно почитать здесь: https://developers.google.com/web/updates/2019/02/trusted-types, а полную спецификацию можно найти тут: https://wicg.github.io/trusted-types/dist/spec/.
Фича пока что экспериментальная и доступна с 73 по 76 версию Chromium'a. Чтобы попасть в эксперимент надо записать свой сайт по ссылке: https://developers.chrome.com/origintrials/#/register_trial/171136785840078849
web.dev
Prevent DOM-based cross-site scripting vulnerabilities with Trusted Types | Articles | web.dev
Introducing Trusted Types: a browser API to prevent DOM-based cross-site scripting in modern web applications.
Для тех, кто хочет искать memory corruption в Safari, но не знает, как начать, в моем архиве еще с декабря завалялся хороший 101 tutorial: http://www.auxy.xyz/tutorial/Webkit-Exp-Tutorial/.
Ну и в догонку поделюсь обновляемой подборкой материалов по всем браузерам (тут про архитектуру, pwn браузеров в рамках ctf и про разные тулзы): https://github.com/m1ghtym0/browser-pwn.
Ну и в догонку поделюсь обновляемой подборкой материалов по всем браузерам (тут про архитектуру, pwn браузеров в рамках ctf и про разные тулзы): https://github.com/m1ghtym0/browser-pwn.
1 марта появился релиз Chromium’а, где был а исправлена use-after-free увязвимость в компоненте FileReader - CVE-2019-5786.
https://chromereleases.googleblog.com/2019/03/stable-channel-update-for-desktop.html?m=1
6-7 марта поднялся хайп, многие написали, что in the wild эксплуатируется очень опасная уязвимость RCE вместе с sandbox escape’ом.
Если посмотреть фикс: https://chromium.googlesource.com/chromium/src/+/150407e8d3610ff25a45c7c46877333c4425f062, то видно, что исправлен memory corruption, а для зашиты от выхода из песочницы ничего не сделано. Это все выглядело довольно странно на фоне информационной волны.
Хорошо, что 7 марта появилась информация от Google о том, что уязвимости было 2. Одна - uaf в хромиуме, а вторая - null pointer dereference в Windows 7 x32: https://security.googleblog.com/2019/03/disclosing-vulnerabilities-to-protect.html.
Мораль - анализируйте фиксы, не всегда так страшна бага, как о ней пишут.
https://chromereleases.googleblog.com/2019/03/stable-channel-update-for-desktop.html?m=1
6-7 марта поднялся хайп, многие написали, что in the wild эксплуатируется очень опасная уязвимость RCE вместе с sandbox escape’ом.
Если посмотреть фикс: https://chromium.googlesource.com/chromium/src/+/150407e8d3610ff25a45c7c46877333c4425f062, то видно, что исправлен memory corruption, а для зашиты от выхода из песочницы ничего не сделано. Это все выглядело довольно странно на фоне информационной волны.
Хорошо, что 7 марта появилась информация от Google о том, что уязвимости было 2. Одна - uaf в хромиуме, а вторая - null pointer dereference в Windows 7 x32: https://security.googleblog.com/2019/03/disclosing-vulnerabilities-to-protect.html.
Мораль - анализируйте фиксы, не всегда так страшна бага, как о ней пишут.
Chrome Releases
Stable Channel Update for Desktop
The stable channel has been updated to 72.0.3626.121 for Windows, Mac, and Linux, which will roll out over the coming days/weeks. Secur...
Появился вариант эксплойта под WebKit в PS4 для CVE-2018-4441 (работает в прошивке до версии 6.50).
Сама уязвимость в методе JSArray::shiftCountWithArrayStorage позволяет спровоцировать out of bands через манипуляцию у массива свойством length и вызовом splice().
Изначальный триггер и баг репорт: https://bugs.chromium.org/p/project-zero/issues/detail?id=1685&desc=2
Семпл эксплойта с ценными комментариями и пояснениями: https://github.com/Cryptogenic/PS4-6.20-WebKit-Code-Execution-Exploit
Сама уязвимость в методе JSArray::shiftCountWithArrayStorage позволяет спровоцировать out of bands через манипуляцию у массива свойством length и вызовом splice().
Изначальный триггер и баг репорт: https://bugs.chromium.org/p/project-zero/issues/detail?id=1685&desc=2
Семпл эксплойта с ценными комментариями и пояснениями: https://github.com/Cryptogenic/PS4-6.20-WebKit-Code-Execution-Exploit
GitHub
GitHub - Cryptogenic/PS4-6.20-WebKit-Code-Execution-Exploit: A WebKit exploit using CVE-2018-4441 to obtain RCE on PS4 6.20.
A WebKit exploit using CVE-2018-4441 to obtain RCE on PS4 6.20. - Cryptogenic/PS4-6.20-WebKit-Code-Execution-Exploit
Ещё одна интересная подборка PoC’ов под memory corruption уязвимости в V8 и ChakraCore (2013 - 2019): https://github.com/tunz/js-vuln-db.
GitHub
GitHub - tunz/js-vuln-db: A collection of JavaScript engine CVEs with PoCs
A collection of JavaScript engine CVEs with PoCs. Contribute to tunz/js-vuln-db development by creating an account on GitHub.
Exodus Intelligence написали крутую статью про анализ CVE-2019-5786:
https://blog.exodusintel.com/2019/02/20/cve-2019-5786-analysis-and-exploitation/
Код эксплойта тоже есть (работает только с —no-sandbox):
https://github.com/exodusintel/CVE-2019-5786
https://blog.exodusintel.com/2019/02/20/cve-2019-5786-analysis-and-exploitation/
Код эксплойта тоже есть (работает только с —no-sandbox):
https://github.com/exodusintel/CVE-2019-5786
Exodus Intelligence
CVE-2019-5786: Analysis & Exploitation of the recently patched Chrome vulnerability
This post provides detailed analysis and an exploit achieving remote code execution for the recently fixed Chrome vulnerability that was observed by Google to be exploited in the wild.
На этой неделе Samuel Groß из Project Zero выложил в сoverage guided фаззер для JS движков FuzzIL: https://github.com/googleprojectzero/fuzzilli.
Почитать подробнее о нем можно тут: https://saelo.github.io/presentations/offensivecon_19_fuzzilli.pdf
Теперь у Domato (https://github.com/googleprojectzero/domato) и других DOM и JS фаззеров есть серьезный конкурент.
Почитать подробнее о нем можно тут: https://saelo.github.io/presentations/offensivecon_19_fuzzilli.pdf
Теперь у Domato (https://github.com/googleprojectzero/domato) и других DOM и JS фаззеров есть серьезный конкурент.
GitHub
GitHub - googleprojectzero/fuzzilli: A JavaScript Engine Fuzzer
A JavaScript Engine Fuzzer. Contribute to googleprojectzero/fuzzilli development by creating an account on GitHub.
Выложили описание довольно забавной sandbox escape уязвимости для macOS High Sierra 10.13.6.
Суть ее в том, что процесс без сендбокса может вызвать функцию CFPreferencesSetAppValue() и этим закэшировать свой статус у cfprefsd (обозначив себя как процесс без песочницы). Этот демон отвечает за обработку preferences. Таким образом, даже ограниченный процесс может потом менять свои свойства.
Забавно то, что это выстрелило для Safari, который в момент инициализации процесса рендерера не сразу погружает процесс в песочницу.
Детали эксплуатации и демо есть тут:
https://medium.com/0xcc/one-liner-safari-sandbox-escape-exploit-91082ddbe6ef
Суть ее в том, что процесс без сендбокса может вызвать функцию CFPreferencesSetAppValue() и этим закэшировать свой статус у cfprefsd (обозначив себя как процесс без песочницы). Этот демон отвечает за обработку preferences. Таким образом, даже ограниченный процесс может потом менять свои свойства.
Забавно то, что это выстрелило для Safari, который в момент инициализации процесса рендерера не сразу погружает процесс в песочницу.
Детали эксплуатации и демо есть тут:
https://medium.com/0xcc/one-liner-safari-sandbox-escape-exploit-91082ddbe6ef
Firefox по итогам Pwn2own 2019 уже выкатила фиксы для найденных уязвимостей: https://www.mozilla.org/en-US/security/advisories/mfsa2019-09/
Фиксы CVE-2019-9810: https://github.com/mozilla/gecko-dev/commit/601d226fe3690ff57287580431fd9a937298be80, https://github.com/mozilla/gecko-dev/commit/752be3958fc6f6eb83eaa4a35fae1a99dc54746e.
Фикс CVE-2019-9813: https://github.com/mozilla/gecko-dev/commit/369406707f9fef96ac8405fb9cbb58da4bcc4f1dб.
P.S. Они отлично находятся путем поиска по Bug ID в https://github.com/mozilla/gecko-dev/
Фиксы CVE-2019-9810: https://github.com/mozilla/gecko-dev/commit/601d226fe3690ff57287580431fd9a937298be80, https://github.com/mozilla/gecko-dev/commit/752be3958fc6f6eb83eaa4a35fae1a99dc54746e.
Фикс CVE-2019-9813: https://github.com/mozilla/gecko-dev/commit/369406707f9fef96ac8405fb9cbb58da4bcc4f1dб.
P.S. Они отлично находятся путем поиска по Bug ID в https://github.com/mozilla/gecko-dev/
Mozilla
Security vulnerabilities fixed in Firefox 66.0.1
Исследователи из DrWeb обнаружили проблему в механизме обновления отдельных библиотек UcBrowser, который делал это по http вместо https, надеясь на собственный протокол шифрования. Подпись устанавливаемых с сервера библиотек не проверялась. Это позволяло с помощью MitM’а загружать и выполнять свой код на Android устройствах пользователей.
Видео с демонстрацией: https://youtu.be/Nfns7uH03J8
Полное описание проблемы тут:
https://vms.drweb.ru/search/?q=UC%20Browser
Видео с демонстрацией: https://youtu.be/Nfns7uH03J8
Полное описание проблемы тут:
https://vms.drweb.ru/search/?q=UC%20Browser
YouTube
UC Browser MITM demo
Появились слайды с Zer0con про устройство и уязвимости TurboFan - JavaScript компилятора в V8.
https://docs.google.com/presentation/d/1DJcWByz11jLoQyNhmOvkZSrkgcVhllIlCHmal1tGzaw
https://docs.google.com/presentation/d/1DJcWByz11jLoQyNhmOvkZSrkgcVhllIlCHmal1tGzaw
Google Docs
A guided tour through Chrome's javascript compiler
A guided tour through Chrome's javascript compiler sroettger@google.com / @_tsuro
Появился PoC для use after free под FireFox (CVE-2018-18500). Интересно в нем то, что он использует задержку по времени ответа со стороны веб-сервера.
https://github.com/sophoslabs/CVE-2018-18500/
https://github.com/sophoslabs/CVE-2018-18500/
GitHub
GitHub - sophoslabs/CVE-2018-18500: PoC for CVE-2018-18500 - Firefox Use-After-Free
PoC for CVE-2018-18500 - Firefox Use-After-Free. Contribute to sophoslabs/CVE-2018-18500 development by creating an account on GitHub.
Ребята из Google выложили первоклассное и наиболее полное исследование про Uxss в Chromium.
Там есть про причины появления таких уязвимостей, описаны способы исправления, хардеринги и фаззинг.
Читать тут: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/f5a8289d4f69e9e34b38a1e7c05ef4818b22cd5b.pdf
Там есть про причины появления таких уязвимостей, описаны способы исправления, хардеринги и фаззинг.
Читать тут: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/f5a8289d4f69e9e34b38a1e7c05ef4818b22cd5b.pdf
ZDI поделилась PoC’ами для уязвимостей в FireFox, найденных в ходе Pwn2Own 2019 (CVE-2019-9810 и CVE-2019-9813).
https://www.thezdi.com/blog/2019/4/18/the-story-of-two-winning-pwn2own-jit-vulnerabilities-in-mozilla-firefox
А ещё подробное описание 9813 можно найти тут:
https://bugs.chromium.org/p/project-zero/issues/detail?id=1810
https://www.thezdi.com/blog/2019/4/18/the-story-of-two-winning-pwn2own-jit-vulnerabilities-in-mozilla-firefox
А ещё подробное описание 9813 можно найти тут:
https://bugs.chromium.org/p/project-zero/issues/detail?id=1810
Zero Day Initiative
Zero Day Initiative — The Story of Two Winning Pwn2Own JIT Vulnerabilities in Mozilla Firefox
Every year some of the greatest security researchers around the globe gather together for the Pwn2Own event to demonstrate their skills by compromising widely used applications. This year’s event recently completed and did not disappoint. On the second…
Ребята из Project Zero выложили пост про технику sandbox escaping’a в Chromium через MojoJs биндинги:
https://googleprojectzero.blogspot.com/2019/04/virtually-unlimited-memory-escaping.html?m=0
Хорошая иллюстрация того, что выйти из песочницы у современного Chromium’а не так-то просто. Нужен arbitary read/write, несколько видов спреинга разными объектами и rop.
Полный код fullchain сплойта на базе CVE-2019-5782 можно посмотреть тут: https://bugs.chromium.org/p/project-zero/issues/detail?id=1755#c3
https://googleprojectzero.blogspot.com/2019/04/virtually-unlimited-memory-escaping.html?m=0
Хорошая иллюстрация того, что выйти из песочницы у современного Chromium’а не так-то просто. Нужен arbitary read/write, несколько видов спреинга разными объектами и rop.
Полный код fullchain сплойта на базе CVE-2019-5782 можно посмотреть тут: https://bugs.chromium.org/p/project-zero/issues/detail?id=1755#c3
Blogspot
Virtually Unlimited Memory: Escaping the Chrome Sandbox
Posted by Mark Brand, Exploit Technique Archaeologist. Introduction After discovering a collection of possible sandbox escape vulnerab...