Эксплуатация состояния гонки в «тапалках» в Telegram

За последние полгода-год в Telegram появилось множество так называемых мини-приложений, которые выдают некие фантики за совершённые действия, и обещают дать возможность конвертировать эти фантики в некоторые рыночные криптовалютные токены, которые можно будет продать за реальные деньги. В качестве примера можно привести: Hamster Kombat, Blum, CalmMe, CryptoRank, Flare X, StarChime... тысячи их. Конечно, максимальную потенциальную прибыль в таких активностях будут иметь люди, которые обладают выходом на большие аудитории и могут по реферальной ссылке завлечь людей в приложение, а также ботоводы с автокликлерами. Что же делать простым людям, которые хотят выжать что-то сверх доступных активностей в этих приложениях? Очевидно, искать уязвимости! Сегодня я приведу несколько примеров весьма тривиальных уязвимостей, которые позволяют немного накрутить баланс во многих "тапалках".

Читать далее «Эксплуатация состояния гонки в «тапалках» в Telegram»

Вы многое упускаете в своих пентестах!

Перед началом пентеста ресурсов компании (будь это веб-сервисы или десктопное/мобильное приложение), часто приходится проводить предварительную разведку. Заказчик может специально не сообщать о конкретных эндпоинтах, которые требуется протестировать, поэтому их список (как и список дочерних доменов, функций приложения, параметров запросов, и т.д.) приходится собирать. Ведь от этого напрямую зависит, сколько уязвимостей и ошибок вы сможете найти. Если кто-то из участников теста смог найти эндпоинты, о которых другие тестеры ничего не знают, то шанс раскрыть в них ранее необнаруженные проблемы становится максимальным. А значит, и прибыль тоже увеличивается.

Missed vulnerabilities

Найти скрытые параметры API, эндпоинты, и функции приложений возможно, обладая некоторыми знаниями о том, как работают средние и крупные бизнесы, и учитывая это при тестировании. Итак, что же нужно знать, и как достичь максимального покрытия при пентесте?

Читать далее «Вы многое упускаете в своих пентестах!»

Выигрываем в гоночки необычными способами

Всем привет, это dx (нет, это не Kaimi притворяется, это настоящий dx)! Сегодня мы поговорим об одном из частых программных багов, который регулярно приводит к уязвимостям, - гонках. Я не эксперт в их эксплуатации (в отличие от Kaimi, который, может быть, когда-нибудь поделится с вами хорошими примерами из своего опыта, а также современными методами и инструментами). Я же поделюсь знаниями с другой стороны баррикады, и расскажу, что такое гонки с точки зрения ПО, и какие факторы могут помочь "выиграть" при их эксплуатации.

Racing

Читать далее «Выигрываем в гоночки необычными способами»

Анализируем вызовы XFS API

Привет, дорогие мои скучающие по публикациям на блоге! Я знаю, что вы все ждали гениальных постов последние два года. Но, что я, что d_x заняты делами, которые по важности, честно сказать, уступают только спасению мира... или нет. Сегодняшняя тема - CEN/XFS, специфичный и крайне нужный стандарт для взаимодействия с банковским оборудованием, а конкретнее - способ анализа вызовов XFS API на Windows. Если вы до сих пор не знаете, что такое CEN/XFS (не путать с XFS, который файловая система), то, скорее всего, у вас была счастливая жизнь без головной боли. Но для тех, кто готов погрузиться в это болото - welcome.
Читать далее «Анализируем вызовы XFS API»

20 лет проблем приема платежей


За логотип спасибо @yarbabin

Электронные системы расчетов существуют в интернете уже давно, а баги на них встречаются двадцатилетней давности. Мы находили критические уязвимости, позволяющие угнать деньги и накрутить баланс. Сегодня мы разберем типовые реализации приема платежей и связанные с ними проблемы безопасности.

Читать далее «20 лет проблем приема платежей»

Чтение памяти чужого процесса через комбинирование памяти в Windows 10

Windows page combining

Сразу скажу, что всё не так страшно, как звучит, и вы не сможете взять и прочитать память абсолютно любого взятого процесса в системе. По крайней мере, без некоторых предусловий. Основная уязвимость уже практически полностью прикрыта. Поэтому пост скорее предлагается в качестве исторической справки и для общего развития. Плюс, исходя из информации, которой я располагаю, никто пока не описывал такой способ эксплуатации, который предложу я.

Начну с того, что в Microsoft были уведомлены об этой проблеме ещё года полтора назад. В ответ мне сообщили, что уязвимость в большей степени уже закрыта, и что я могу опубликовать свои исследования.

Итак, приступим. В Windows 8.1 и в Windows 10 в какой-то момент времени появилась такая фича, как комбинирование памяти (memory combining или page combining, хорошо описана в книге Windows Internals, 7 издание, 1 часть). Суть её достаточно проста: операционная система раз в 15 минут ищет в физической памяти страницы с одинаковым содержимым и объединяет их в одну с целью экономии оперативной памяти. Те процессы, которые владели одинаковыми страницами, получают ссылки на новую общую страницу с атрибутом "только для чтения" и "копирования при записи" (read-only и copy-on-write). Если какой-то из процессов изменяет свою страницу, система при возникновении соответствующего copy-on-write исключения её копирует и снова размещает в физической памяти, а процесс снова получает индивидуальную копию этой страницы.

Читать далее «Чтение памяти чужого процесса через комбинирование памяти в Windows 10»

Пишем макросы для Microsoft Word с GUI like a PRO [Часть 2, финал]

Final word macro form view

Да, это макрос для MS Word!

Продолжаем тему макросов в Microsoft Word. Будем доделывать пользовательский интерфейс для нашего макроса замены двух и более последовательных переводов строки на единственный. Зачем вообще может понадобиться какой-то интерфейс для макроса? Ну, например, мы хотим удалить лишние переводы строки на всех страницах документа, кроме каких-то конкретных. Интерфейс позволил бы указать номера страниц документа, которые нужно при обработке пропустить (либо наоборот, обработать только указанные страницы). Вот этот функционал и будем реализовывать.

Читать далее «Пишем макросы для Microsoft Word с GUI like a PRO [Часть 2, финал]»

Пишем простой модуль для Acunetix


Некоторое время назад в сканере уязвимостей веб-приложений Acunetix появилась возможность расширения функционала за счет добавления собственных модулей. На официальном блоге даже была опубликована заметка, описывающая общий подход к разработке модулей. Давайте напишем простой модуль на основе нее, а также моей прошлогодней заметки по созданию модуля для Nessus. С точки зрения функций модуль будет аналогичным: поиск на узле скрипта Adminer, старые версии которого позволяют читать произвольные файлы на сервере с помощью фичи MySQL LOAD DATA LOCAL INFILE.
Читать далее «Пишем простой модуль для Acunetix»

Пишем макросы для Microsoft Word like a PRO [Часть 1]

Angry word helper

Возможно, у вас есть ощущение, что тема макросов в Ворде достаточно маргинальная. Кто ими может пользоваться-то вообще? Ну, малварь делают иногда... Да и пишутся они на давно забытом VBA (Visual Basic for Applications, он же несколько урезанный Visual Basic 6 в интерпретируемом виде), фу!

Но на самом деле у многих ведь возникает потребность то какой-нибудь отчётик в ворде написать, то курсовую оформить, то резюме перед отправкой в компанию вашей мечты подправить... А у некоторых работа напрямую связана с Word. Часто различные системы документации предлагают экспорт в форматы doc или docx, которые нужны вашим заказчикам. И бывает, что документы после экспорта выглядят фигово, приходится их исправлять.

Работа в ворде нередко подразумевает выполнение каких-то однообразных повторяющихся действий, которые иногда (но далеко не всегда!) решаются грамотной настройкой стилей и их применением, а также использованием шаблонов. Как же автоматизировать всё остальное? Тут-то нам на помощь приходят те самые макросы.

Читать далее «Пишем макросы для Microsoft Word like a PRO [Часть 1]»

Follow-Up: Яндекс.Маркет исправляется, хотя и не полностью

Несколько дней назад я написал заметку о том, как можно раскрутить свой магазин, используя подложную ссылку на чужой магазин с хорошими отзывами в Яндекс.Маркете. На сегодняшний день имеем следующее:

  1. Первый вариант ссылки на мобильную версию Яндекс.Маркета, который раньше вёл на главную страницу профиля магазина-жертвы, теперь редиректит на десктопную версию сайта, если вы просматриваете страницу с десктопного браузера. Раньше этого не происходило.
  2. Второй вариант ссылки, который вёл на страницу с непроверенными отзывами, теперь вообще выдаёт страницу с ошибкой 404, и неважно, с какого браузера смотреть, с мобильного или с десктопного. Раньше там открывалась страница с менее доверенными, по мнению Маркета, отзывами, причём на этой странице не отображалось доменное имя магазина, которому принадлежат отзывы.

С мобильных браузеров первая ссылка всё еще работает, и там по-прежнему не отображается URL-адрес магазина. Также, по-прежнему можно заменить текст в части этой ссылки, как было описано в предыдущей заметке, и страница по-прежнему будет открываться. Увы, если покупатель перейдёт на страницу с отзывами, он увидит URL-адрес магазина.

Получается, что Яндекс как бы исправил проблему, и даже достаточно быстро, после публикации сведений о ней, но полностью её проигнорировал при попытке сообщить напрямую в компанию. Плюс, исправлена проблема неполностью: если покупатель смотрит профиль магазина с мобильного устройства, его всё ещё можно обмануть.