Есть такая интересная технология для трекинга пользователей браузера - HSTS Super Cookie.
Она была описана еще в стандарте HSHTS: https://tools.ietf.org/html/rfc6797#section-14.9, а особенно интересна тем, что подходит для трекинга пользователей в приватном / инкогнито-режиме.
Суть в том, что веб-сайт может подгружать набор https-подресурсов, которые отдают HSTS-заголовки. Браузер пользователя, который зашел на сайт первый раз, получает эти заголовки и запоминает, что в дальнейшем на эти подресурсы надо ходить только по https, даже если в URI будет ссылка со схемой http. Соответственно, веб-сайт может таким образом задать в hsts-кэше некоторый уникальный идентификатор пользователя (закодировав его последовательностью hsts-поддоменов), который потом всегда сможет восстановить. Подробнее про механику трекинга написано тут: https://security.stackexchange.com/questions/79518/what-are-hsts-super-cookies
Интересно, что с такой идентификацией пользователя стал бороться WebKit. 16 марта они объявили, что теперь HSTS-флаг будет сохраняться в кэше браузера для веб-ресурсов, на которые непосредственно был выполнен переход (URL попал в адресную строку) или сделан редирект: https://webkit.org/blog/8146/protecting-against-hsts-abuse/. А еще у WebKit есть технология ITP (Intelligent Tracking Prevention https://webkit.org/blog/8142/intelligent-tracking-prevention-1-1/). Она очищает и не позволяет обновлять third-party-cookies веб-сайтов, которые не посещают пользователи. Теперь для ресурсов, которые блокируются ITP не будет кэшироваться HSTS.
Остальные браузеры пока что просто предлагают пользователям блокировать third-party cookies: https://www.maketecheasier.com/disable-third-party-cookies-chrome-firefox/
Она была описана еще в стандарте HSHTS: https://tools.ietf.org/html/rfc6797#section-14.9, а особенно интересна тем, что подходит для трекинга пользователей в приватном / инкогнито-режиме.
Суть в том, что веб-сайт может подгружать набор https-подресурсов, которые отдают HSTS-заголовки. Браузер пользователя, который зашел на сайт первый раз, получает эти заголовки и запоминает, что в дальнейшем на эти подресурсы надо ходить только по https, даже если в URI будет ссылка со схемой http. Соответственно, веб-сайт может таким образом задать в hsts-кэше некоторый уникальный идентификатор пользователя (закодировав его последовательностью hsts-поддоменов), который потом всегда сможет восстановить. Подробнее про механику трекинга написано тут: https://security.stackexchange.com/questions/79518/what-are-hsts-super-cookies
Интересно, что с такой идентификацией пользователя стал бороться WebKit. 16 марта они объявили, что теперь HSTS-флаг будет сохраняться в кэше браузера для веб-ресурсов, на которые непосредственно был выполнен переход (URL попал в адресную строку) или сделан редирект: https://webkit.org/blog/8146/protecting-against-hsts-abuse/. А еще у WebKit есть технология ITP (Intelligent Tracking Prevention https://webkit.org/blog/8142/intelligent-tracking-prevention-1-1/). Она очищает и не позволяет обновлять third-party-cookies веб-сайтов, которые не посещают пользователи. Теперь для ресурсов, которые блокируются ITP не будет кэшироваться HSTS.
Остальные браузеры пока что просто предлагают пользователям блокировать third-party cookies: https://www.maketecheasier.com/disable-third-party-cookies-chrome-firefox/
Information Security Stack Exchange
What are HSTS Super Cookies?
A few questions :
What are HSTS super cookie?
How do they work?
Why is possible to access them from multiple domains?
Do I have to worry and if yes, how to mitigate their effect?
Sources
http:...
What are HSTS super cookie?
How do they work?
Why is possible to access them from multiple domains?
Do I have to worry and if yes, how to mitigate their effect?
Sources
http:...
Команда безопасности Mozilla выложила в open source библиотеку Octo, которую можно использовать для разработки фаззеров JavaScript: https://github.com/MozillaSecurity/octo/blob/es6/README.md
Поиграться с ней можно прямо тут: https://npm.runkit.com/@mozillasecurity/octo
Поиграться с ней можно прямо тут: https://npm.runkit.com/@mozillasecurity/octo
Нашёл в интернете гайд по полезным фичам Developers Tools для разных браузеров, которые могут пригодиться пентестерам: http://www.getmantra.com/web-app-security-testing-with-browsers/. Еnjoy.
safetyscience.info
Web app security testing with browsers
A guide on using browser dev-tools for performing web app pentesting
На Zer0Con 2018 (zer0con.org) @singi21a из Theori рассказал о технике sandbox bypass в WebKit через ipc с WindowServer в macOS. Материалы и примеры кода можно найти тут: https://github.com/theori-io/zer0con2018_singi.
Атаки на GPU IPC становятся классикой в области обхода браузерных песочниц. В том году на той же конференции был похожий, но закрытый доклад от lokihardt.
Атаки на GPU IPC становятся классикой в области обхода браузерных песочниц. В том году на той же конференции был похожий, но закрытый доклад от lokihardt.
GitHub
theori-io/zer0con2018_singi
Contribute to theori-io/zer0con2018_singi development by creating an account on GitHub.
Brian Pak из Theori сделал зубодробительный доклад об эксплуатации out of bounds уязвимостей в V8.
В нем есть и описание структур Partition Alloc (дефолтного аллокатора в Blink), и концепция r/w примитивов через freeListHeader и fake DataView, а также разбор реального примера их использования. Ну и на сладкое там есть сниппеты использования pwn.js (https://github.com/theori-io/pwnjs), который поможет сделать ROP (я уже писал об этой библиотеке ранее), если ему дать r/w примитивы.
Материалы тут: https://github.com/theori-io/zer0con2018_bpak?files=1.
В моем рейтинге это лучший доклад на Zer0Con 2018.
В нем есть и описание структур Partition Alloc (дефолтного аллокатора в Blink), и концепция r/w примитивов через freeListHeader и fake DataView, а также разбор реального примера их использования. Ну и на сладкое там есть сниппеты использования pwn.js (https://github.com/theori-io/pwnjs), который поможет сделать ROP (я уже писал об этой библиотеке ранее), если ему дать r/w примитивы.
Материалы тут: https://github.com/theori-io/zer0con2018_bpak?files=1.
В моем рейтинге это лучший доклад на Zer0Con 2018.
GitHub
GitHub - theori-io/pwnjs: A Javascript library for browser exploitation
A Javascript library for browser exploitation. Contribute to theori-io/pwnjs development by creating an account on GitHub.
Интересный out of bounds read / write примитв в V8 Genesis::InitializeGlobal https://bugs.chromium.org/p/project-zero/issues/detail?id=1501.
И да, если кому-то интересна судьба фикса бага с примитивом stack-to-heap copy (https://bugs.chromium.org/p/project-zero/issues/detail?id=1420) в Chakra JIT, о котором я писал ранее, то Lokihardt нашел 2 обхода фикса: https://bugs.chromium.org/p/project-zero/issues/detail?id=1502 и https://bugs.chromium.org/p/project-zero/issues/detail?id=1503.
Все, кто интересуется обходом Arbitary Code Guard (aka ACG) и Code Integrity Guard (CIG) в MS Edge и Windows 10, должны изучить презентацию c CanSecWest'а 2018: https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxiaW5nc3Vuc2VjfGd4Ojc0YWZlOGNlMzg0YjYzMGY. На слайдах есть также ссылки на методы обхода CFG, которые были представлены на разных конференциях в 2017 =)
Не секрет, что расширения для браузера могут быть источником uXSS уязвимостей. Travis Ormandy нашёл забавный баг в расширении Video Downloader Professional, у которого почти 4 млн. пользователей: https://bugs.chromium.org/p/project-zero/issues/detail?id=1555
Для справки, uXSS - браузерная уязвимость, которая даёт атакующему возможность выполнить на сайте произвольный JavaScript в контексте любого (ну или почти любого) чужого origin’а.
Для справки, uXSS - браузерная уязвимость, которая даёт атакующему возможность выполнить на сайте произвольный JavaScript в контексте любого (ну или почти любого) чужого origin’а.
Safari не перестает удивлять! Недавно закрыли выполнение произвольного кода с помощью функции возвращения квадратного корня (sqrt).
https://www.zerodayinitiative.com/advisories/ZDI-18-278/
https://www.zerodayinitiative.com/advisories/ZDI-18-278/
Zerodayinitiative
thezdi
Natalie Silvanovich из P0 нашла интересную проблему в WebAssembly парсере WebKit. Дело в том, что парсер некорректно валидировал порядок секций бинарника, что приводило к переполнениям и type confusion багам. Детали тут: https://bugs.chromium.org/p/project-zero/issues/detail?id=1522.
Давно не писал сюда, решил возобновить процесс и встряхнуть канал.
И начну я с отличной новости!
Вчера Google анонсировал кампанию по отказу от inline установок расширений со сторонних сайтов. С 12 июня все новые расширения, которые добавляются в Chrome Web Store установить со стороннего сайта уже будет нельзя (chrome.webstore.install будет редиректить в стор), а с 12 сентября уже все инлайн установки будут вести себя аналогично. До конца года метод планируют удалить из Сhromium API. Подробности, как обычно, тут: https://blog.chromium.org/2018/06/improving-extension-transparency-for.html
И начну я с отличной новости!
Вчера Google анонсировал кампанию по отказу от inline установок расширений со сторонних сайтов. С 12 июня все новые расширения, которые добавляются в Chrome Web Store установить со стороннего сайта уже будет нельзя (chrome.webstore.install будет редиректить в стор), а с 12 сентября уже все инлайн установки будут вести себя аналогично. До конца года метод планируют удалить из Сhromium API. Подробности, как обычно, тут: https://blog.chromium.org/2018/06/improving-extension-transparency-for.html
Chromium Blog
Improving extension transparency for users
We strive to ensure choice and transparency for all Chrome users as they browse the web. Part of this choice is the ability to use the hund...
Интересная PoC-заготовка, которая демонстрирует RCE в WebContent (CVE-2018-4233) для Safari под iOS 11.3.1 https://github.com/phoenhex/files/tree/master/exploits/ios-11.3.1)
GitHub
files/exploits/ios-11.3.1 at master · phoenhex/files
Contribute to phoenhex/files development by creating an account on GitHub.
И на сладкое, прикольный материал про внутреннее устройство JavaScript-движков: https://mathiasbynens.be/notes/shapes-ics.
А вот и демонстрация CVE-2018-6148:
https://blog.bentkowski.info/2018/06/setting-arbitrary-request-headers-in.html
https://blog.bentkowski.info/2018/06/setting-arbitrary-request-headers-in.html
blog.bentkowski.info
Setting arbitrary request headers in Chromium via CRLF injection
In this short note I'll describe a bug I found in Chrome recently. It allowed to set arbitrary headers in cross-domain requests. @insertScri...
В сети появился материал про брауезреные cors-атаки через медиа-контент.
Концепция называется WaveTrough, детали тут: https://jakearchibald.com/2018/i-discovered-a-browser-bug/
Под FF автор атаки смог вытащить content-length: https://bugzilla.mozilla.org/show_bug.cgi?id=1441153#c4
Под Edge уже получилось вытащить само содержимое другого origin'а (CVE-2018-8235).
Концепция называется WaveTrough, детали тут: https://jakearchibald.com/2018/i-discovered-a-browser-bug/
Под FF автор атаки смог вытащить content-length: https://bugzilla.mozilla.org/show_bug.cgi?id=1441153#c4
Под Edge уже получилось вытащить само содержимое другого origin'а (CVE-2018-8235).
Jakearchibald
I discovered a browser bug
I accidentally discovered a huge browser bug a few months ago and I'm pretty excited about it. Security engineers always seem like the "cool kids" to me, so I'm hoping that now I can be part of the club, and y'know, get into the special parties or whatever.
Mozzila запустила ночные build'ы c Asan'ом и специальным репортером на борту: https://blog.mozilla.org/security/2018/07/19/introducing-the-asan-nightly-project/. Пока только под Linux, можно ставить, ловить всякие крэши и сообщать об этом лисе.
Mozilla Security Blog
Introducing the ASan Nightly Project
Every day, countless Mozillians spend numerous hours testing Firefox to ensure that Firefox users get a stable and secure product. However, no product is bug ...
Интересный пост про разрешение доступа MS Edge к localhost’у из AppContainer’а: https://tyranidslair.blogspot.com/2018/07/uwp-localhost-network-isolation-and-edge.html.
Получается, что любой эксплойт для Edge может получить доступ к сервисам, запущенным на localhost, несмотря на изоляцию контейнера.
Получается, что любой эксплойт для Edge может получить доступ к сервисам, запущенным на localhost, несмотря на изоляцию контейнера.
www.tiraniddo.dev
UWP Localhost Network Isolation and Edge
This blog post describes an interesting “feature” added to Windows to support Edge accessing the loopback network interface. For referenc...
Сегодня столкнулся с тем, что в FireFox не получалось проэксплуатировать CSRF-уязвимость в API, которая принимает на вход только application/json. Ну речь про то, что swf-ка (например, такая https://github.com/sp1d3r/swf_json_csrf) идёт по 307 редиректу и посылает GET или POST запрос в нужный origin с нужным content-type. В последнем Chrome все работает, а в лисе пофиксили эту возможность: https://bugzilla.mozilla.org/show_bug.cgi?id=1436241, летит только get без параметров.
А тем временем FireFox потихоньку пилит свой Site Isolation, на bleeping выложили пост про текущее состояние проекта Fission: https://www.bleepingcomputer.com/news/software/mozilla-is-working-on-a-chrome-like-site-isolation-feature-for-firefox/.
BleepingComputer
Mozilla Is Working on a Chrome-Like "Site Isolation" Feature for Firefox
The Mozilla Foundation, the organization behind the Firefox browser, is working on adding a new feature to its browser that is similar to the Site Isolation feature that Google rolled out to Chrome users this year.