Вдогонку: в архив можно всунуть не только симлинк, но и файл с вектором path traversal в имени.
Некоторые библиотеки для работы с архивами были уязвимы к такой атаке и при распаковке читали произвольные файлы.
Скрипт для создания таких архивов: https://github.com/ptoomey3/evilarc
Некоторые библиотеки для работы с архивами были уязвимы к такой атаке и при распаковке читали произвольные файлы.
Скрипт для создания таких архивов: https://github.com/ptoomey3/evilarc
GitHub
GitHub - ptoomey3/evilarc: Create tar/zip archives that can exploit directory traversal vulnerabilities
Create tar/zip archives that can exploit directory traversal vulnerabilities - ptoomey3/evilarc
В PHP-приложениях есть куча разных уязвимостей, техник эксплуатации и атак. Тему активно ковыряют лет 10 и вроде бы всё уже расковыряли, и постепенно многие техники сходят на нет.
Но всё равно находятся неожиданные вещи в очевидных местах. Например, на HITCON CTF автор дал задачу по мотивам своих находок, в которой, как выяснилось, нужно было довести чтение произвольных файлов до исполнения кода.
Подробности тут: https://rdot.org/forum/showthread.php?t=4379
Если коротко, то любой вызов PHP-функции чтения файлов (поддерживающей обёртки) с контролируемым префиксом может привести к произвольной десериализации.
В частности, можно использовать аналог техники LFI via phpinfo, чтобы загрузить боевой PHAR-вектор и одновременно прочитать его, причём даже не обязательно, чтоб был вывод ответа, достаточно самого вызова функции чтения.
Но всё равно находятся неожиданные вещи в очевидных местах. Например, на HITCON CTF автор дал задачу по мотивам своих находок, в которой, как выяснилось, нужно было довести чтение произвольных файлов до исполнения кода.
Подробности тут: https://rdot.org/forum/showthread.php?t=4379
Если коротко, то любой вызов PHP-функции чтения файлов (поддерживающей обёртки) с контролируемым префиксом может привести к произвольной десериализации.
В частности, можно использовать аналог техники LFI via phpinfo, чтобы загрузить боевой PHAR-вектор и одновременно прочитать его, причём даже не обязательно, чтоб был вывод ответа, достаточно самого вызова функции чтения.
Green Dog:
Я на WebVillage буду рассказывать про баги связанные с десериализаций. Выложил пучок мини-вебприложух в докер контейнерах, чтобы можно было потыкать желающим. https://github.com/GrrrDog/ZeroNights-WebVillage-2017
Я на WebVillage буду рассказывать про баги связанные с десериализаций. Выложил пучок мини-вебприложух в докер контейнерах, чтобы можно было потыкать желающим. https://github.com/GrrrDog/ZeroNights-WebVillage-2017
GitHub
GitHub - GrrrDog/ZeroNights-WebVillage-2017
Contribute to GrrrDog/ZeroNights-WebVillage-2017 development by creating an account on GitHub.
Синтаксис регулярных выражений в js выглядит как
Но помимо флагов, можно вернуть текст шаблона (исходный) с помощью свойства source.
Вжух, скрываем javascript:alert() от злых защит:
#XSS
/pattern/flags
.Но помимо флагов, можно вернуть текст шаблона (исходный) с помощью свойства source.
Вжух, скрываем javascript:alert() от злых защит:
location=/jav/.source+/ascript/.source+/:/.source+/alert/.source+/``/.source
#XSS
А вот и презентации, в том числе с Web Village
https://2017.zeronights.ru/materials/
https://2017.zeronights.ru/materials/
Особенности Safari в client-side атаках.
https://bo0om.ru/safari-client-side
Safari все больше напоминает IE 🤔
https://bo0om.ru/safari-client-side
Safari все больше напоминает IE 🤔
Вы ведь все пользуетесь nmap? А команда Vulners сделала плагин, которого всем не хватало!
Теперь вы не просто можете просканировать удаленный хост, но и найти на нем уязвимости!
И все это используя Nmap с плагином Vulners - https://github.com/vulnersCom/nmap-vulners
Теперь вы не просто можете просканировать удаленный хост, но и найти на нем уязвимости!
И все это используя Nmap с плагином Vulners - https://github.com/vulnersCom/nmap-vulners
GitHub
GitHub - vulnersCom/nmap-vulners: NSE script based on Vulners.com API
NSE script based on Vulners.com API. Contribute to vulnersCom/nmap-vulners development by creating an account on GitHub.
Здравствуйте!
На серверах Вашей компании найдена уязвимость чтения произвольного участка памяти в обход имеющихся привилегий.
Злоумышленник может получить доступ к исходным кодам, паролям, данным пользователей, как следствие, скомпрометировать сервера компании не оставив при этом следов.
Для исправления уязвимости необходимо обновить все процессоры до модели, которые выпускаются начиная с 2018 года. Рекомендуем рассмотреть процессор «Эльбрус».
*trollface*
На серверах Вашей компании найдена уязвимость чтения произвольного участка памяти в обход имеющихся привилегий.
Злоумышленник может получить доступ к исходным кодам, паролям, данным пользователей, как следствие, скомпрометировать сервера компании не оставив при этом следов.
Для исправления уязвимости необходимо обновить все процессоры до модели, которые выпускаются начиная с 2018 года. Рекомендуем рассмотреть процессор «Эльбрус».
*trollface*
Кавычка
DOM XSS, вектор которых был через location.hash, похоже, умрет в Chrome начиная с 65 версии
Ну мы тут трем за кавычки, а все что касается безопасности браузеров - на канале @br0wsec, подключайтесь :)
Тег вида <link rel=import> импортирует содержимое стороннего документа на текущую страницу (вжух http://w3c.github.io/webcomponents/spec/imports/index.html). А в Google Chrome можно импортировать html из любого файла, с абсолютно любым типом контента (заголовок
Для примера, создадим файл с случайными данными и добавим вконце тег script
Теперь попробуем его импортировать: https://bo0om.ru/bin.html
И скрипт выполнится!
Таким образом, достаточно загрузить любой файл на ресурс, будь это валидное изображение или любой другой документ, в тело которого предварительно записан js - и вызвать его с помощью
Content-type
) в том числе, если будет присутствовать указание не пытаться определить содержимое (X-Content-Type-Options: nosniff
).Для примера, создадим файл с случайными данными и добавим вконце тег script
head -c 1000000 /dev/urandom > /tmp/bin.bin
echo "<script>alert()</script>" >> /tmp/bin.bin
Теперь попробуем его импортировать: https://bo0om.ru/bin.html
И скрипт выполнится!
Таким образом, достаточно загрузить любой файл на ресурс, будь это валидное изображение или любой другой документ, в тело которого предварительно записан js - и вызвать его с помощью
<link rel=import href=/path/to/file>
. Так как обращение идет к ссылке текущего домена - такая ссылка не будет заблокированна Chrome XSS Auditor'ом.Знакомые тебе форматы Microsoft Office: docx, xlsx, это zip архив, содержащий данные в виде XML (они так и называются - Office Open XML и подобны OpenDocument Format). А это значит, что если сайт обрабатывает (парсит, конвентирует) подобные файлы - есть вероятность атаки XXE (https://xakep.ru/2012/12/11/xml-apps-attacks-manual/), как следствие, чтение произвольных файлов, SSRF, DoS, в идеале - выполнение произвольного кода.
Если веб-приложение пытается работать с метаданными в изображении (jpg, png, gif, да-да), такими как XMP - то можно попробовать выполнить атаку с помощью них! Чего уж говорить об изображении формата SVG (это вообще XML в чистом виде)!
Так вот, для экспериментов есть отличная тулза, которая позволяет сгенерировать документы и картинки с подобной полезной нагрузкой.
https://github.com/BuffaloWill/oxml_xxe
Если веб-приложение пытается работать с метаданными в изображении (jpg, png, gif, да-да), такими как XMP - то можно попробовать выполнить атаку с помощью них! Чего уж говорить об изображении формата SVG (это вообще XML в чистом виде)!
Так вот, для экспериментов есть отличная тулза, которая позволяет сгенерировать документы и картинки с подобной полезной нагрузкой.
https://github.com/BuffaloWill/oxml_xxe
А ты используешь Burp Suite? А лицензионный? Если нет, аккуратнее там, как минимум Burp Suite Loader 1.7.31 - тот еще конь. Хотя, вполне ожидаемо, чаще всего малварь распространяется в крякнутом софте.
https://0x00sec.org/t/malware-reversing-burpsuite-keygen/5167
https://0x00sec.org/t/malware-reversing-burpsuite-keygen/5167
А ты знал, что в IIS возможно создать XSS пейлоад не только в форматах типа html/xml? Оказывается, что вектор для XML
может быть загружен со следующими расширенями: .dtd .mno .vml .xsl .xht .svg .xml .xsd .xsf .svgz .xslt .wsdl .xhtml, а вектор
будет работать в форматах .cer .hxt и .htm.
Тут можно почитать подробнее: https://mike-n1.github.io/ExtensionsOverview
<a:script xmlns:a="http://www.w3.org/1999/xhtml">alert(1337)</a:script>
может быть загружен со следующими расширенями: .dtd .mno .vml .xsl .xht .svg .xml .xsd .xsf .svgz .xslt .wsdl .xhtml, а вектор
<script>alert(1337)</script>
будет работать в форматах .cer .hxt и .htm.
mike-n1(с)
Тут можно почитать подробнее: https://mike-n1.github.io/ExtensionsOverview
mike-n1.github.io
Script Kiddie`s notes
Breadcrumbs from my brain. Mini blog about web application security.
Раз уж автор прошлого поста поднял речь про Internet Explorer, то я хотел бы и от себя рассказать одну интересную вещь (баян).
Существует такой малоизвестны тег
Создание XML документа с таким тегом при предварительном просмотре выдает ошибки синтаксиса документа.
Но мы данный тег можем использовать для обхода XSS фильтров. Используя небольшую магию префикса
Работает для последнего 11 Internet Explorer.
Стоящий вектор для добавления его в свои словарики по багбаунти.
Для тех, кто знает японский и умеет в гугл переводчик, может ознакомиться со статьей в оригинале: http://masatokinugawa.l0.cm/2017/05/xss13.html
Существует такой малоизвестны тег
<?PXML>
. Функциональное предназначение такого тега остается мало понятным. Создание XML документа с таким тегом при предварительном просмотре выдает ошибки синтаксиса документа.
Но мы данный тег можем использовать для обхода XSS фильтров. Используя небольшую магию префикса
html:
, PXML будет распознаваться как HTML-тег.<?PXML><html:script>alert(1)</html:script>
Работает для последнего 11 Internet Explorer.
Стоящий вектор для добавления его в свои словарики по багбаунти.
Для тех, кто знает японский и умеет в гугл переводчик, может ознакомиться со статьей в оригинале: http://masatokinugawa.l0.cm/2017/05/xss13.html
Javascript, который мы заслужили:
setTimeout(unescape(escape('󠅡󠅬󠅥󠅲󠅴󠄨󠄧󠅏󠅯󠅰󠅳󠄧󠄩󠄻󠅤󠄽󠅤󠅯󠅣󠅵󠅭󠅥󠅮󠅴󠄬󠄨󠅤󠄮󠅢󠅯󠅤󠅹󠅼󠅼󠅤󠄮󠅤󠅯󠅣󠅵󠅭󠅥󠅮󠅴󠅅󠅬󠅥󠅭󠅥󠅮󠅴󠄩󠄮󠅩󠅮󠅮󠅥󠅲󠅈󠅔󠅍󠅌󠄠󠄽󠄠󠄧󠄼󠅤󠅩󠅶󠄠󠅳󠅴󠅹󠅬󠅥󠄽󠄢󠅦󠅯󠅮󠅴󠄭󠅳󠅩󠅺󠅥󠄺󠄹󠄹󠄹󠄥󠄻󠅣󠅯󠅬󠅯󠅲󠄺󠅲󠅥󠅤󠄻󠄢󠄾󠅈󠅡󠅣󠅫󠅥󠅤󠄧').replace(/u.{8}/g,'')))
Кавычка
Javascript, который мы заслужили: setTimeout(unescape(escape('󠅡󠅬󠅥󠅲󠅴󠄨󠄧󠅏󠅯󠅰󠅳󠄧󠄩󠄻󠅤󠄽󠅤󠅯󠅣󠅵󠅭󠅥󠅮󠅴󠄬󠄨󠅤󠄮󠅢󠅯󠅤󠅹󠅼󠅼󠅤󠄮󠅤󠅯󠅣󠅵󠅭󠅥󠅮󠅴󠅅󠅬󠅥󠅭󠅥󠅮󠅴󠄩󠄮󠅩󠅮󠅮󠅥󠅲󠅈󠅔󠅍󠅌󠄠󠄽󠄠󠄧󠄼󠅤󠅩󠅶󠄠󠅳󠅴󠅹󠅬󠅥󠄽󠄢󠅦󠅯󠅮󠅴󠄭󠅳󠅩󠅺󠅥󠄺󠄹󠄹󠄹󠄥󠄻󠅣󠅯󠅬󠅯󠅲󠄺󠅲󠅥󠅤󠄻󠄢󠄾󠅈󠅡󠅣󠅫󠅥󠅤󠄧').replace(/u.{8}/g,'')))
Забавно, правда? О том, как это работает:
https://www.stefanjudis.com/blog/hidden-messages-in-javascript-property-names/
https://www.stefanjudis.com/blog/hidden-messages-in-javascript-property-names/
Возможно, ты уже знаешь, что открытая ссылка может изменить ту страницу, с которой ее открыли (переопределить window.opener), если target ссылки был "_blank":
https://habrahabr.ru/post/164539/
Это работает и в обратную сторону. Для примера:
https://bo0om.ru/google.html
Если дать пользователю ссылку - ее в любой момент можно изменить (уже после открытия).
https://habrahabr.ru/post/164539/
Это работает и в обратную сторону. Для примера:
https://bo0om.ru/google.html
Если дать пользователю ссылку - ее в любой момент можно изменить (уже после открытия).
А вот и эксплойт на CVE-2018-7600 подъехал.
https://research.checkpoint.com/uncovering-drupalgeddon-2/
https://github.com/a2u/CVE-2018-7600/
#drupalgeddon2 #Drupal
https://research.checkpoint.com/uncovering-drupalgeddon-2/
https://github.com/a2u/CVE-2018-7600/
#drupalgeddon2 #Drupal
Check Point Research
Uncovering Drupalgeddon 2 - Check Point Research
Research By: Eyal Shalev, Rotem Reiss and Eran Vaknin Abstract Two weeks ago, a highly critical (25/25 NIST rank) vulnerability, nicknamed Drupalgeddon 2 (SA-CORE-2018-002 / CVE-2018-7600), was disclosed by the Drupal security team. This vulnerability allowed…