А Google запустил серию интересных постов из 4 частей о внутреннем устройстве Chrome: https://developers.google.com/web/updates/2018/09/inside-browser-part1.
Уже вышло 2 части, рекомендую их прочитать!
Уже вышло 2 части, рекомендую их прочитать!
Chrome for Developers
Inside look at modern web browser (part 1) | Blog | Chrome for Developers
Learn how browser turn your code into functional website from high-level architecture to the specifics of the rendering pipeline.
За 21 день ребята из x41 D-SEC GMBH провели аудит Firefox Application Update сервис, в результате нашлось 14 уязвимостей и 21 потенциальных проблем. Все обнаруженные уязвимости находятся либо в старом C-коде, либо в панели администрирования, которая назвается Balrog (https://github.com/mozilla/balrog/).
Подробности тут: https://www.x41-dsec.de/reports/X41-Balrog-Review-2018-Final-Report-Public.pdf
Ну и сама новость тут: https://blog.mozilla.org/security/2018/10/09/trusting-the-delivery-of-firefox-updates/
Подробности тут: https://www.x41-dsec.de/reports/X41-Balrog-Review-2018-Final-Report-Public.pdf
Ну и сама новость тут: https://blog.mozilla.org/security/2018/10/09/trusting-the-delivery-of-firefox-updates/
GitHub
GitHub - mozilla-releng/balrog: Mozilla's Update Server
Mozilla's Update Server. Contribute to mozilla-releng/balrog development by creating an account on GitHub.
От mailto: до RCE всего один шаг!
Замечательная бага была найдена в MS Edge, позволяющая в ссылках выполнять команды через схему wshfile: https://leucosite.com/Microsoft-Edge-RCE/
Замечательная бага была найдена в MS Edge, позволяющая в ссылках выполнять команды через схему wshfile: https://leucosite.com/Microsoft-Edge-RCE/
Leucosite
Edge RCE
(CVE-2018-8495) Chaining small bugs together to achieve RCE
В FireFox 62.0 нашли type confusion багу, приводящую к RCE (CVE-2018-12386): https://blogs.securiteam.com/index.php/archives/3765.
Когда уже они доработают и раскатят свой sandbox?)
Когда уже они доработают и раскатят свой sandbox?)
Как пофазить браузер за 60 секунд? Читайте тут: https://bugid.skylined.nl/20181017001.html
bugid.skylined.nl
Fuzz in sixty seconds
Use publicly available tools to quickly start fuzzing browsers.
Uxss мой любимый тип багов, так как он может нести в себе критичную угрозу (угон данных любого сайта или воздействие на внутренние компоненты браузера, которое может привести и к RCE), а также для его эксплуатации не надо обходить sandbox)
Отличный пример CVE-2018-6128 в WebKit, который позволял в Chrome под iOS выполнять кросс-доменные запросы к ресурсам с другим Origin’ом из-за проблемы с парсингом URL. А забавным этот пример делает видео от LiveOverflow с авторскими комментариями: https://youtu.be/0uejy9aCNbI.
Отличный пример CVE-2018-6128 в WebKit, который позволял в Chrome под iOS выполнять кросс-доменные запросы к ресурсам с другим Origin’ом из-за проблемы с парсингом URL. А забавным этот пример делает видео от LiveOverflow с авторскими комментариями: https://youtu.be/0uejy9aCNbI.
YouTube
HOW FRCKN' HARD IS IT TO UNDERSTAND A URL?! - uXSS CVE-2018-6128
URLs are surprisingly hard to read.
Chrome Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=841105
Orange Tsai: https://twitter.com/orange_8361
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! - CODE BLUE: https://w…
Chrome Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=841105
Orange Tsai: https://twitter.com/orange_8361
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! - CODE BLUE: https://w…
Внутри 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 noscripting vulnerabilities with Trusted Types | Articles | web.dev
Introducing Trusted Types: a browser API to prevent DOM-based cross-site noscripting 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