Для подписчиковВ этом райтапе я покажу, как эксплуатировать уязвимость SSTI в шаблонизаторе Django, на примере получения учетки пользователя. Затем, авторизовавшись в системе, мы получим контекст другого пользователя через подмену файлов Django Cache. Для повышения привилегий расшифруем бэкапы и найдем учетные данные.
В рамках январского «вторника обновлений» компания Microsoft исправила две уязвимости в драйвере ntfs.sys, который управляет файловой системой NTFS в Windows. Эти проблемы нашел специалист Positive Technologies Сергей Тарасов. Обе уязвимости давали злоумышленникам шанс захватить полный контроль над системой через эскалацию привилегий до уровня SYSTEM.
TL;DR: Надоело тащить 80 МБ FFmpeg ради конвертации аудио. Написал конвертер на чистом Go - один бинарник 5 МБ, без зависимостей, работает на любой платформе. Бонусом - реализовал FLAC энкодер с нуля, потому что готового pure Go решения не существовало.Зачем это всеУ меня есть проект music_recognition — распознавание музыки через Shazam. Для работы нужно конвертировать аудио между форматами. Стандартное решение — FFmpeg.Проблема: FFmpeg умеет все. Транскодировать 4K, стримить по RTMP, делать цв…
В первой части мы разобрали protoc-gen-validate и spec-first подход к валидации. Я обещал рассказать про protovalidateну и вот, держите :)И самый первый вопрос конечно, а зачем вообще появился protovalidate, если PGV уже есть и работает?Ах да, мини реклама моего телеграмм канала по Go && gRPC Проблема, которую решает protovalidateК примеру, вас микросервисная архитектура, где бэкенд на Go, ML-пайплайн на Python, а мобильный клиент генерирует код на swift и kotlin flutter и весь этот зоо…
Go 1.26 выходит в феврале, и на мой взгляд это один из самых насыщенных релизов за всю историю языка. Давай разберёмся что нас ждёт, от изменений в языке до оптимизаций runtime и новых инструментов. Статья основана на официальных release notes и исходном коде Go. Это не исчерпывающий список, за полной информацией обращайся к официальной документации.Типобезопасная проверка ошибокНовая функция errors.AsType это дженерик-версия errors.As:// Go 1.13+ func As(err error, target any) bool // Go 1.26…
Знакомо чувство, когда читаешь документацию, а через десяток страниц уже не помнишь, что именно успел изучить? Или когда возвращаешься к старой статье и не можешь понять – ты уже видел эту ссылку или нет?В эпоху информационного перегруза даже закладки перестают быть спасением – они просто копятся где‑то на панели, а на странице по‑прежнему нет никаких намеков, что ты здесь уже был.Но что если заставить браузер самому отмечать ссылки, которые у вас уже сохранены? Чтобы слева от каждой знакомой с…
В очередной раз столкнулся с тем, что разработчик игры (в качестве демо-версии программных функций) использовал генератор случайных чисел "в лоб", что повлекло за собой повторы ходов (игра была "морской бой", и клетка, по которой стрелял компьютер определялось как Math.floor(Math.random()*100), что подразумевает бесконечное повторение ходов). Поэтому хочу предложить простой и эффективный способ создать последовательность случайных чисел без повторения. Этот способ основан на пер…
После работы над множеством фронтенд- и full-stack-проектов (в основном React + TypeScript + какой-нибудь сервер/бэкенд), я постоянно возвращаюсь к одному и тому же небольшому набору паттернов. Они добавляют структуру, снижают когнитивную нагрузку и делают кодовую базу поддерживаемой даже при росте.Это не революционные идеи — просто прагматичные решения, которые хорошо работают в разных приложениях. Вот текущий набор, который я использую почти всегда.1. React Query + фабрика ключей запросов (Qu…
Всем привет, на связи снова я — Дмитрий, React-разработчик. И сегодня хочу поднять тему, которая на первый взгляд кажется простой, но на практике может доставить немало сюрпризов - округление и форматирование чисел в интерфейсе.Изначально может показаться, что здесь сложного практически ничего нет: есть toFixed() и toLocaleString(), но практика показывает, что реальные интерфейсы почти никогда в это не укладываются.Почему? Потому что в разных диапазонах чисел пользователи ждут разного поведения…