Br0wSec – Telegram
Br0wSec
766 subscribers
4 photos
84 links
Browser security channel (RU)
Download Telegram
А Google запустил серию интересных постов из 4 частей о внутреннем устройстве Chrome: https://developers.google.com/web/updates/2018/09/inside-browser-part1.
Уже вышло 2 части, рекомендую их прочитать!
Chrome 69+ не удаляет Cookie самого Google ¯\_(ツ)_/¯
За 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/
От mailto: до RCE всего один шаг!
Замечательная бага была найдена в MS Edge, позволяющая в ссылках выполнять команды через схему wshfile: https://leucosite.com/Microsoft-Edge-RCE/
В FireFox 62.0 нашли type confusion багу, приводящую к RCE (CVE-2018-12386): https://blogs.securiteam.com/index.php/archives/3765.
Когда уже они доработают и раскатят свой sandbox?)
Как пофазить браузер за 60 секунд? Читайте тут: https://bugid.skylined.nl/20181017001.html
Uxss мой любимый тип багов, так как он может нести в себе критичную угрозу (угон данных любого сайта или воздействие на внутренние компоненты браузера, которое может привести и к RCE), а также для его эксплуатации не надо обходить sandbox)

Отличный пример CVE-2018-6128 в WebKit, который позволял в Chrome под iOS выполнять кросс-доменные запросы к ресурсам с другим Origin’ом из-за проблемы с парсингом URL. А забавным этот пример делает видео от LiveOverflow с авторскими комментариями: https://youtu.be/0uejy9aCNbI.
Внутри Google Chrome идёт дискуссия, закопать ли 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
Расширения в браузере - страшная сила! Почему? Ну хотя бы потому, что они используют API, который предоставляют браузеры. А в нем бывают разные баги: от плохо работающих пермишнов, до RCE.

Отличная и свежая подборка по ссылкам ниже:

https://leucosite.com/WebExtension-Security/
https://leucosite.com/WebExtension-Security-Part-2/

Ждём часть 3.
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
Вышел отчет 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
Для тех, кто хочет искать memory corruption в Safari, но не знает, как начать, в моем архиве еще с декабря завалялся хороший 101 tutorial: http://www.auxy.xyz/tutorial/Webkit-Exp-Tutorial/.

Ну и в догонку поделюсь обновляемой подборкой материалов по всем браузерам (тут про архитектуру, 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.

Мораль - анализируйте фиксы, не всегда так страшна бага, как о ней пишут.
Появился вариант эксплойта под 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
Ещё одна интересная подборка PoC’ов под memory corruption уязвимости в V8 и ChakraCore (2013 - 2019): https://github.com/tunz/js-vuln-db.
На этой неделе 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 фаззеров есть серьезный конкурент.
Выложили описание довольно забавной sandbox escape уязвимости для macOS High Sierra 10.13.6.

Суть ее в том, что процесс без сендбокса может вызвать функцию CFPreferencesSetAppValue() и этим закэшировать свой статус у cfprefsd (обозначив себя как процесс без песочницы). Этот демон отвечает за обработку preferences. Таким образом, даже ограниченный процесс может потом менять свои свойства.

Забавно то, что это выстрелило для Safari, который в момент инициализации процесса рендерера не сразу погружает процесс в песочницу.

Детали эксплуатации и демо есть тут:
https://medium.com/0xcc/one-liner-safari-sandbox-escape-exploit-91082ddbe6ef