7 октября 2019 года директор отдела исследований PortSwigger (производителя BurpSuite) опубликовал исследование о новых подходах к HTTP Request smuggling. С их помощью он заработал на bugbounty около $70000. В этой заметке мы коротко выясним суть атаки, инструментарий, а также методики исследования веб серверов, подверженных этой уязвимости.
Пользователь
Написание змейки для Android на Kivy, Python
[UPD от 2021: этот туториал создан исключительно из-за отсутствия нормальных туториалов по теме на момент написания, а не из побуждения научить мир программистов чему-то правильному]
Много людей хотели бы начать программировать на андроид, но Android Studio и Java их отпугивают. Почему? Потому, что это в некотором смысле из пушки по воробьям. «Я лишь хочу сделать змейку, и все!»
Начнем! (бонус в конце)
Когда 'a' не равно 'а'. По следам одного взлома
Надо сказать, что приятель мой вполне себе UNIX-пользователь: может сам поставить систему, установить mysql, php и сделать простейшие настройки nginx.
И есть у него десяток-полтора сайтов посвященных строительным инструментам.
Один из таких сайтов, посвященный бензопилам, плотненько сидит в ТОПe поисковиков. Сайт этот — некоммерческий обзорник, но кому-то поперек горла и повадились его атаковать. То DDoS, то брутфорс, то комменты напишут непотребные и шлют абузы на хостинг и в РКН.
Неожиданно всё стихло и это затишье оказалось не к добру, а сайт начал постепенно покидать верхние строчки выдачи.
То была присказка, дальше сама админская байка.
Время близилось ко сну когда раздался звонок телефона: «Сань, ты не глянешь мой сервер? Мне кажется меня хакнули, доказать не могу, но ощущение не покидает уже третью неделю. Может мне просто пора лечиться от паранойи?»
AirTest IDE и Image Recognition — автоматизация тестирования мобильных игр на основе распознавания изображений
В предыдущей статье мы познакомились с AirTest IDE, но, на всякий случай, давайте повторим: AirTest IDE разработан компанией NetEase и предназначен для "hard-to-automate" приложений, таких как, например, игр. Собственно на них и делается основной упор разработчиками, хотя это не мешает использовать AirTest и для любых других приложений.
Данная работа является второй в цикле, посвящённому AirTest IDE. Первую, обзорную, статью про AirTest IDE вы можете найти здесь, а третью и последнюю, которая посвящена фреймворку UI автоматизации Poco — по данной ссылке.
Сегодня же я расскажу вам об одном из 2х основных фреймворков — AirTest. AirTest — это кросс-платформенный фреймворк для автоматизации UI, основанный на принципах распознавания изображений (Image Recognition), который, как заявляют разработчики, подходит для игр и приложений. AirTest Project на GitHub содержит 4 проекта: Airtest, Poco, iOS-Tangent, multi-device-runner.
А теперь давайте перейдём к самому интересному!
Линейная алгебра для разработчиков игр
Чем искать уязвимости веб-приложений: сравниваем восемь популярных сканеров
В этом посте мы собрали восемь популярных сканеров, рассмотрели их подробнее и попробовали в деле. В качестве тренировочных мишеней выбрали независимые точки на двух платформах (.NET и php): premium.pgabank.com и php.testsparker.com.
Возможно, вам не нужен Kubernetes
Девушка на скутере. Иллюстрация freepik, логотип Nomad от HashiCorp
Kubernetes — это 300-килограммовая горилла для оркестровки контейнеров. Она работает в некоторых самых крупных контейнерных системах в мире, но дорого обходится.
Особенно дорого для небольших команд, которым придётся потратить много времени на поддержку и крутую кривую обучения. Для нашей команды из четырёх человек это слишком много накладных расходов. Поэтому мы стали искать альтернативы — и влюбились в Nomad.
Бесшовная (почти) миграция между мажорными релизами PostgreSQL с помощью логической репликации
Зачем? База данных на проекте уже объемом 1,5 Tb и растет. Перформанс – одно из основных требований к системе. А сама структура данных эволюционирует: добавляются новые колонки, меняются существующие. Новая версия Postgres научилась эффективно работать с добавлением новых колонок с дефолтным значением, так что не нужно городить кастомных костылей на уровне приложения. Ещё в новой версии добавили несколько новых способов партиционирования таблиц, что тоже крайне полезно в условиях большого объема данных.
Итак, решено, мигрируем. Конечно, можно поднять параллельно со старой новую версию сервера PostgreSQL, остановить приложение, через dump/restore (или pg_upgrade) переместить базу и снова запустить приложение. Нам это решение не подошло из-за большого размера базы, к тому же, приложение работает в боевом режиме, и на даунтайм есть считанные минуты.
Поэтому мы решили попробовать миграцию с помощью логической репликации в PostgreSQL с использованием стороннего плагина под названием pglogical.
В процессе «проб» мы столкнулись с весьма обрывочной документацией по этому процессу (а на русском языке её вообще нет), а также некоторыми подводными камнями и неочевидными нюансами. В этой статье мы хотим изложить свой опыт в виде Tutorial.
TL;DR
- Всё получилось (не без костылей, о них и статья).
- Мигрировать можно в рамках PostgreSQL версии от 9.4 до 11.x, с любой версии на любую, вниз или вверх.
- Даунтайм равен времени, которое требуется вашему приложению, чтобы переподключиться к новому серверу БД (в нашем случае это был перезапуск всего приложения, но в дикой природе, очевидно, «возможны варианты»).
Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK). Enterprise Tactics. Часть 1
Часть 1. Получение первоначального доступа (Initial Access)
Часть 2. Выполнение (Execution)
Часть 3. Закрепление (Persistence)
Часть 4. Повышение привилегий (Privilege Escalation)
Часть 5. Обход защиты (Defense Evasion)
Часть 6. Получение учетных данных (Credential Access)
Часть 7. Обнаружение (Discovery)
Часть 8. Боковое перемещение (Lateral Movement)
Часть 9. Сбор данных (Collection)
Часть 10 Эксфильтрация или утечка данных (Exfiltration)
Часть 11. Командование и управление (Command and Control)
Получение первоначального доступа
Данной публикацией начинаю цикл постов, посвященных описанию основных техник, применяемых злоумышленниками на различных этапах осуществления хакерских атак.
Излагаемый материал будет свободным пересказом содержания матриц Adversarial Tactics, Techniques & Common Knowledge (ATT@CK) от компании The Mitre:
- PRE-ATT&CK (техники подготовительных стадий атаки);
- ATT&CK Matrix for Enterprise (техники атаки на корпоративные системы);
- ATT&CK Mobile Profile (техники атак на мобильные устройства).
Как стать разработчиком игр, если ты риелтор
Два года и несколько месяцев назад, я написал здесь свой первый и единственный пост, как, не имея никакого опыта разработки игр, я создал свое первое android-приложение. Пусть и потратил на это весь свой тогдашний отпуск. Хотя игрой это было и сложно назвать, хе-хе.
Вы тепло приняли этот пост и это дало мне хороший толчок в нужном направлении. За эти два года я попробовал и научился многому: работал с 3D моделями, знакомился с C++, рисовал текстуры, записывал звуки, писал тексты и диз-доки, но самое главное – я нашел для себя подходящую среду разработки, а именно — божественный Unreal Engine 4.
Я не решался ничего писать до тех пор, пока не смогу сделать что-то, что сможет порадовать хотя бы меня. И, думаю, мне это удалось. Довольно приятно видеть тот большой и тернистый путь, который был пройден, чтобы, начав с картинки в начале статьи, дойти до того, что под катом ;)
От сисадмина к человеку
На DevOps есть по крайней мере два устоявшихся взгляда — со стороны системных администраторов и со стороны разработчиков. Первые обычно хвастаются тем, что используют Chef/Puppet/Ansible/Docker c 200X года, вторые считают, что DevOps либо изжил себя и ведет к NoOps, либо что «я завернул всё в контейнер, а дальше как пойдёт».
Бизнес при этом читает про DevOps в статьях и надеется, что ребята снизу разберутся, что с ним делать. При этом самого DevOps не происходит, бизнес не похож на Google, компания не становится бирюзовой, люди не создают новых подходов для проверки гипотез в мире.
Эта статья — про DevOps как систему. Как он помогает бизнесу, какие компетенции со стороны инженеров должны появиться для DevOps, какие бизнес-задачи можно решать DevOps-методом производства программного обеспечения, а также какие ошибки возможны на пути к DevOps-производству и как их избежать или купировать. Как, в конце концов, инженеру стать Человеком и быть в этом мире творцом, как для этого построить карьерный путь и как начать смотреть на технологии по-человечески.
В основе материала — расшифровка доклада Александра osminog Титова с нашей октябрьской конференции DevOops 2017.
24-ядерный CPU, а я не могу набрать электронное письмо
Трудно устоять перед возможностью провести хорошее расследование, но в данном случае вызов особенно силён. Ведь я в Google работаю над улучшением производительности Chrome для Windows. Обнаружить причину зависания — моя работа. И после множества фальстартов и тяжёлых усилий мне всё-таки удалось выяснить, как Chrome, Gmail, Windows и наш IT-отдел вместе помешали мне набрать электронное письмо. По ходу дела нашёлся способ сэкономить значительное количество памяти для некоторых веб-страниц в Chrome.
В расследовании оказалось так много нюансов, что я оставлю некоторые для другой статьи, а сейчас полностью объясню причины подвисаний.
Полный гайд по бэкордеру доменов
Для чего нужен бэкордер
В популярных доменных зонах (.com, .net, .org) заняты самые короткие и звучные домены.
Существует возможность не пользоваться свободными доменами второго сорта, а перехватить хороший. Часто освобождаются даже трехбуквенные домены, минимальная стоимость которых на вторичном рынке — 17800 $.
DIY автономный дрон с управлением через интернет
Сначала я написал длинное предисловие откуда взялась такая задача, а потом оно мне показалось скучным и я его удалил.
Итак, задача: создание автономного БПЛА для мониторинга состояния линий электропередач (ЛЭП).
Рельсотрон на 27 килоджоулей
Самый мощный любительский рельсотрон
Рельсотрон — это электрический ускоритель масс. Снаряд располагается между двух электродов, которые подключены к источнику постоянного тока. Снаряд замыкает электроды и приобретает ускорение вследствие силы Лоренца. Рельсотрон — это импульсное устройство. На практике часто работа обеспечивается конденсаторами, которые разряжаются в мгновение секунды.
С помощью рельсотрона снаряду можно придать очень большое ускорение. Это ускорение может быть куда выше, чем в традиционном оружии, в котором пуля приводится в движение химической энергией реакции горения пороха. Рельсотрон является перспективным оружием. В некоторых случаях скорость снаряда измеряется тысячами метров в секунду, что сулит колоссальные разрушения, высокую дальность стрельбы и сложность защиты от поражения. На данный момент ни одна страна в мире не имеет рельсотронов на вооружении. Сейчас существуют лишь тестовые образцы. В частности, над рельсотроном для корабельного вооружения работает флот США.
Рельсотрон — это две рельсы, снаряд и источник тока. Общая простота конструкции привлекает любителей. Некто Xtamared собрал свой носимый образец. Энергия выстрела составляет 1,8 килоджоулей энергии. (Это цифра энергии заряда в конденсаторах. Потери огромны, и сравнивать с энергией выстрела патрона АК-74 калибра 5,45×39 мм — около 1,3 кДж — не стоит.) Группа других умельцев собрала свой рельсотрон, и его мощность куда выше — в конденсаторах находится до 27 кДж энергии. Как показали тесты, выстрел из этого рельсотрона уже смертелен.
Составляем DNS-запрос вручную
В этой статье мы изучим двочиный формат сообщений Domain Name Service (DNS) и напишем вручную одно сообщение. Это больше, чем вам нужно для использования DNS, но я подумал, что для развлечения и в образовательных целях интересно посмотреть, что находится под капотом.
Мы узнаем, как:
- Написать запросы DNS в двоичном формате
- Отправить сообщение в теле датаграммы UDP с помощью Python
- Прочитать ответ от DNS-сервера
Писать в двоичном формате кажется сложным, но в реальности я обнаружил, что это вполне доступно. Документация DNS хорошо написана и понятна, а писать мы будем маленькое сообщение — всего 29 байт.
Современная Android разработка на Kotlin. Часть 1
Очень сложно найти один проект, который охватывал бы всё новое в разработке под Android в Android Studio 3.0, поэтому я решил написать его. В этой статье мы разберём следующее:
- Android Studio 3
- Язык программирования Kotlin
- Варианты сборки
- ConstraintLayout
- Библиотека привязки данных Data Binding
- Архитектура MVVM + паттерн repository (с mapper'ами) + Android Manager Wrappers
- RxJava2 и как это помогает нам в архитектуре
- Dagger 2.11, что такое внедрение зависимости, почему вы должны использовать это.
- Retrofit (Rx Java2)
- Room (Rx Java2)
Каким будет наше приложение?
Наше приложение будет самым простым, которое охватывает все перечисленные выше вещи: у него будет только одна функция, которая извлекает все репозитории пользователя googlesamples из GitHub, сохраняет эти данные в локальной базе данных и показывает их пользователю.
Я попытаюсь объяснить как можно больше строк кода. Вы всегда можете посмотреть код, который я опубликовал на GitHub.
Программирование и обмен данными с «ARDUINO» по WI-FI посредством ESP8266 Часть Первая
Но все эти разнообразные любительские поделки, требуют естественно, предварительного программирования. Да и в последующем при разных усовершенствованиях, постоянно приходится эти поделки перепрошивать. Понятное дело, что удобнее делать это дистанционно, чем постоянно таскать их к обычному программатору. Вообще, благодаря той же платформе «Arduino», вариантов и здесь много: Bluetooth, ZigBee, радиоканал с вашим личным протоколом, IR, и даже Wi-Fi. Все они позволяют наладить беспроводной контакт с вашим микроконтроллером. Но мы же остановимся на последнем варианте. Основных причин здесь четыре:
1: современно, интернет вещей же!
2: беспроводной роутер есть в каждой квартире, регистрируй в домашней сети свои устройства и вуаля!
3: ваши поделки осуществляют революционный скачок в своём развитии; мало того, что их можно программировать на расстоянии, они теперь ещё и сами могут общаться с окружающим их миром: электронные часы самостоятельно берут точное время с часовых NTP-серверов, исполнительные устройства управляются с другого конца города или страны, регистрирующие девайсы сохраняют накопленные данные в облако и т.д. и т.п.
4: есть замечательная серия микросхем ESP8266 на которой
Полезные трюки при работе с netcat
В данной статье я рассмотрю популярную сетевую утилиту netcat и полезные трюки при работе с ней.
Практическая оптимизация MySQL: измерять, чтобы ускорять
Петр Зайцев (Percona)
Сегодня мы поговорим о производительности.
Мы посмотрим на то, как подойти правильно к оптимизации MySQL, а также посмотрим на некоторые практические подходы к этому делу. Почему я считаю, что это важно? Дело в том, что когда у вас есть специфическая проблема, вы хотите, например, спросить: «А какой же мне установить размер кэша в MySQL?». Такой вопрос всегда можно ввести в Google или Yandex, и получить на него разумный ответ. Но как получить ответ об общем, о схеме анализа и оптимизации MySQL? Это куда более сложно.
Information
- Rating
- 2,399-th
- Location
- Россия
- Date of birth
- Registered
- Activity