Временная скидка 60% на годовую подписку!

Java

Xakep #281

Суровая жаба. Изучаем защиту Excelsior JET для программ на Java

На какие только ухищрения не приходится идти разработчикам программ на Java, чтобы усложнить взлом и реверс! Однако у всех подобных приложений есть слабое место: в определенный момент исполнения программа должна быть передана в JVM в исходных байт-кодах, дизассемблировать который очень просто. Чтобы избежать этого, некоторые программисты вовсе избавляются от JVM-байт-кода. Как хакеры обычно поступают в таких случаях? Сейчас разберемся!

Xakep #279

HTB Timing. Пентестим веб-сервер на PHP

Сегодня мы с тобой пройдем путь от базового сканирования сайта до эксплуатации уязвимости типа LFI и загрузки шелла. Для захвата рута нам понадобится найти уязвимость в приложении на Java. А упражняться мы будем на средней по сложности машине Timing с площадки Hack The Box.

Xakep #278

Игривый Xamarin. Изучаем и взламываем мобильное приложение на С#

Программировать для Android можно не только на Java или Kotlin. Разработчики на С# имеют возможность создавать мобильные приложения с помощью платформы Xamarin. Сегодня мы поговорим о том, как исследовать такие приложения и как при необходимости их можно взломать.

Xakep #278
ВзломХардкор

HTB Fingerprint. Подделываем цифровой отпечаток для доступа к закрытому контенту

В этом райтапе мы используем LFI для получения исходного кода приложения, XSS — для получения фингерпринта пользователя, обойдем авторизацию через HQL-инъекцию, заюзаем баг в приложении на Java и немного покодим на Python, чтобы получить приватный ключ. В заключение — разберем ошибку в шифровании и узнаем секрет!

Xakep #277

Электронная психобумага. Критическая уязвимость в Java позволяет подделывать электронные подписи и ключи

Всех, кто использует относительно новые версии Java-фреймворка Oracle, в минувшую среду ждал неприятный сюрприз: критическая уязвимость в Java, которая позволяет легко подделывать сертификаты и подписи TLS, сообщения двухфакторной аутентификации и данные авторизации. Исследователь из компании ForgeRock Нил Мэдден опубликовал в сети подробное описание уязвимости, с тезисами которого мы сегодня тебя познакомим.

Xakep #273

Log4HELL! Разбираем Log4Shell во всех подробностях

Еще недавно про средство логирования Log4j помимо специалистов мало кто слышал. Найденная в этой библиотеке уязвимость сделала ее центром внимания на последние месяцы. Мы в «Хакере» уже обсуждали ее импакт и рассказывали о том, как разные компании сражаются с напастью. В этой статье мы с тобой подробно разберемся, откуда взялась эта ошибка и как она работает, а также какие успели появиться эксплоиты.

Xakep #272

Грязный Джо. Взламываем Java-приложения с помощью dirtyJOE

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

Xakep #245
ВзломХардкор

Операция «Липосакция». Как использовать новую уязвимость в Jira

Jira — мегапопулярная система для отслеживания ошибок, организации взаимодействия с пользователями и управления проектами. Уязвимость позволяет атакующему выполнить произвольный код на целевой системе при помощи обычного POST-запроса, не обладая при этом никакими привилегиями. Давай посмотрим на причины этого бага и методы его эксплуатации.

Xakep #240

CryptoPro JCP на Linux. Как легко и безболезненно перейти на новый стандарт шифрования

С 2020 года использование шифрования по ГОСТ Р 34.10—2001 окажется под запретом, а значит, все организации, которые взаимодействуют с госструктурами, вынуждены срочно внедрять следующий стандарт — 2012 года. Если ты работаешь в одной из них, то не проходи мимо: в этой статье мы поговорим о том, как решить проблему, используя сервер на CentOS 7 и пакет CryptoPro JCP.

Xakep #237

Атака на приложение. Используем Xposed, чтобы обойти SSLPinning на Android

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

Xakep #235

Дырявая логика. Эксплуатируем новые уязвимости в Oracle WebLogic

В этой статье мы поговорим сразу о нескольких уязвимостях в сервере приложений Oracle WebLogic, написанном на Java. Этот продукт безумно популярен в энтерпрайз-среде и попадается постоянно на периметрах разных компаний от мала до велика. Уязвимости носят критический характер и позволяют злоумышленнику выполнить произвольный код на целевой системе.

Xakep #232

Пишем майнер на Java. Кодим добытчик криптовалюты Electroneum

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

Xakep #232

All in по фану. Как разобрать, изменить и собрать обратно мобильную игру на Unity

Разработчики игр с удовольствием пользуются теми удобствами, что им предоставляет движок Unity, но, как выяснилось, он столь же удобен и для любого желающего вскрыть эти игры. Для примера я возьму Poker World и покажу на ней, как можно не только менять параметры, но и влезть в саму логику, переиначить все на свой лад и перепаковать APK. Заодно соберем небольшой набор утилит, который поможет в работе с мобильным софтом.

Xakep #231

Весеннее обострение. Как работают две критические уязвимости в Spring Framework

Spring — популярнейший фреймворк для разработки на Java, на котором базируются сотни решений в самых разных областях. Трудно найти серьезное приложение на Java, которое бы не использовало Spring. Недавно в нем были найдены две критические уязвимости, которые приводят к удаленному исполнению кода. Давай посмотрим, как они работают.

Xakep #228

Mining Pool на Java. Кодим распределенный биткойн-майнер

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

Xakep #227

Java против утечек. Боремся с memory leaks в веб-службе

В прошлой статье мы рассмотрели утечки памяти, которые возникают при остановках и переустановках веб-приложений, написанных на Java. Речь шла о выводе логов Spring через Log4j2. Сейчас я расскажу, как можно легко и просто получить утечки памяти, используя Log4j2 в веб-службах, и на этот раз конец истории будет не таким радужным.

На чем писать мобильные приложения: сравниваем Intel XDK, NativeScript и Xamarin

В предыдущей статье мы рассмотрели Silo-подход к разработке мобильных приложений, а также часть самых популярных black box средств разработки: среды Apache Cordova и Adobe Fuse. Сегодня мы продолжим изучать «черный ящик» и рассмотрим еще несколько популярных и известных средств разработки, а затем перейдем к заключительной теме — кросс-платформенному подходу.

Xakep #218

Строим мобильное приложение на Firebase — бесплатном и мощном бэкенде Google

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

Xakep #218

Служба, которая не спит. 3 способа обойти режимы энергосбережения Android в своей программе

Давным-давно, когда Android еще не был мейнстримом, любой разработчик мог написать приложение, которое сможет спокойно висеть в фоне и в режиме реального времени обмениваться данными с сервером. Но чем дальше, тем более жесткие техники сохранения энергии применяет Google, и сегодня так просто сетевое реалтаймовое приложение уже не реализуешь. Однако есть несколько трюков, которые позволяют это сделать.

Xakep #218

Мобильная разработка: выбираем инструментарий. Silo, black box или cross-platform?

Первый iPhone был представлен десять лет назад, в 2007-м. Через год появился магазин приложений от Apple. Тогда же на сцену вышел Android, а вместе с ним магазин приложений Google Play. Хотя сама идея продавать ПО для мобильных телефонов не была новой, именно появление iPhone, Android и Windows Phone ознаменовало образование современного рынка мобильного ПО, каким мы его знаем сейчас.

Xakep #217

Секретный код. Прячем конфиденциальную информацию внутри своих приложений для Android

Наверное, каждый программист хоть раз в жизни сталкивался с необходимостью спрятать информацию внутри приложения. Это могут быть ключи шифрования для расшифровки компонентов программы, адреса API Endpoints, строки, которые лучше спрятать, чтобы затруднить работу реверсеру. В Android это сделать очень непросто, но можно существенно усложнить их извлечение.

Xakep #215

Куда уходит память. Разбираемся с memory leaks в Java на примере Spring и Log4j

Каждый, кто разрабатывал веб-приложения на Java, сталкивался с проблемой утечек памяти при остановках и переустановках своих программ. Если же об этом ты слышишь впервые, то могу заверить: с очень большой вероятностью твои творения текут. Причин может быть огромное множество, и об одной из них я бы хотел рассказать в этой статье.

Xakep #212

Изучаем Gradle: что умеет система сборки приложений Android Studio

Большинство программистов, разрабатывающих для Android, хотя бы слышали о системе автоматической сборки Gradle. При этом лишь немногие из использующих эту систему кодеров уделяют достаточно времени, чтобы как следует изучить ее возможности. А ведь Gradle очень полезен не только для простой настройки сборки, но и для решения весьма нестандартных задач!

Xakep #205

Задачи на собеседованиях, спецвыпуск. Стань богатым Java-программистом!

Java-программисты на протяжении нескольких лет остаются самыми востребованными специалистами на рынке IT. Невзирая на все мрачные предсказания, проектов, связанных с Java-технологиями, становится все больше: профессиональные Java-специалисты ценятся по всему миру. Если ты задумываешься о карьере Java-разработчика, то эта статья для тебя! В ней собраны практические советы по подготовке и прохождению собеседования, поиску работы в офисе и удаленно.

Xakep #201

Easy Hack #201. Часть 4: Эксплуатация уязвимостей через сериализованные объекты Java

Переходим ко второй атаке, которая связана с двоичной сериализацией в Java. Мы, как ты помнишь, были несколько ограничены в возможностях: да, поменять данные объектов можно, а вот отправлять произвольные объекты и получить в итоге RCE (как бывает в случае других языков) можем лишь при определенных условиях.

Xakep #201

Easy Hack #201. Часть 3: подмена данных в сериализованных объектах Java

В качестве большой темы в этот раз я решил выбрать двоичную сериализацию в Java и две связанные с ней атаки. Идея тут проста: с сериализацией мы можем сохранить значения сложных типов данных, например — массив объектов произвольного класса. Фактически формат может быть любой. Мы же рассмотрим нативную двоичную сериализацию в Java.

Xakep #200

Злые СМС. Исследуем скрытые механизмы работы с СМС в Android

Только представь: у всех жителей средней полосы осень, а ты тусуешься на морях, солнце лениво замерло в зените, ты лежишь на жемчужном пляже одного из Мальдивских островов, любуешься окружающими пейзажами и проходящими девушками в бикини, потягивая коктейль... А много позже, вечером, ты обнаруживаешь, что на счете твоей пластиковой карточки пусто! Как же так? Мобильный банк с информированием подключен, все операции вроде бы подтверждаются по СМС... Примерно такие вопросы стали недавно задавать вслух клиенты одного крупного банка с зеленым логотипом.

Xakep #199

Лог всемогущий. Расшифровываем TLS-трафик с помощью JVM

Совершая платеж в Интернет-магазине или ином финансовом сервисе, ты наверняка инициируешь SSL-соединение где-то на серверной стороне с участием какого-нибудь Java-приложения. А что если тебе нужно исследовать это соединение? В силу бизнес-ценности его нельзя сделать открытым даже в тестовом окружении. Тупик? Оказывается, нет! Трафик такого приложения можно расшифровать, если у тебя есть его перехват Wireshark’ом и… логи JVM.

Xakep #199

Xonix для Android. Сделано стандартными средствами Android SDK!

Хочется иногда взять и отдохнуть от всех этих фреймворков, движков и готовых библиотек. Точнее, не отдохнуть, а напрячься — взять и накодить какую-нибудь игрушку исключительно с помощью стандартных средств. Какую именно? Выбрать легко, ведь в сердце любого программера неизменно живут три игры, созданные в прошлом веке: Tetris, Digger и Xonix. Поехали!

Страница 1 из 212

Еженедельный дайджест

«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
4000 р.
на год
920 р.
на месяц
120 р.
за 1 статью

«Хакер» в соцсетях

Telegram ВКонтакте Twitter

Материалы для подписчиков