Ключевое отличие моей идеи в цели: MSW — это про мокирование (имитацию ответов), а наш API — это про симуляцию живого бэкенда. Студенты учатся работать не с "заглушкой", а с реальным, пусть и простым, сервером, у которого есть состояние. Они могут отправить POST запрос, а затем GET запросом убедиться, что данные сохранились и изменились.
Плюс, я как преподаватель могу на лету менять логику, добавлять "баги" или новые эндпоинты, подстраиваясь под программу курса, чего с моками не сделаешь так гибко.
Ох уж эти API... Каждый микросервис норовит выставить наружу свой API, да еще и с документацией, которая, порой, выглядит как приглашение на вечеринку для всех желающих. И ладно бы только Swagger, там же еще и GraphQL, и всякие кастомные RPC, которые порой вообще без доки живут, но дыры в них не меньше.
Это, конечно, штука полезная. Типа пылесос для низковисящих фруктов. Находит то, что лежит на поверхности, и это уже хорошо. Потому что, поверьте, таких "подарков" до сих пор хватает. Вроде бы 2025 год на дворе, а базовые вещи до сих пор пролетают мимо ревью. Иногда кажется, что разработчики соревнуются, кто оставит более жирную дыру, чтобы потом пентестеры не скучали.
Вот вам история из жизни, без имен и паролей, разумеется:
Как-то раз, на одном из проектов, мы ковыряли внутренний API одной очень крупной, очень серьезной компании. Ну, знаете, такие, у которых бюджет на безопасность, как у маленькой страны. И вот, в процессе изучения, натыкаемся на эндпоинт, который, судя по названию, должен был возвращать какие-то внутренние логи. Ну, логи и логи, дело обычное. Но вот незадача: он возвращал не просто логи, а логи с полным стектрейсом, включая переменные окружения, пути к файлам и, что самое вкусное, часть конфигов с продакшн-сервера. Без какой-либо авторизации, разумеется. Просто GET-запрос, и вуаля! Весь внутренний мир компании как на ладони. Оказалось, что это был какой-то дебажный эндпоинт, который забыли выключить после релиза. "Ну, кто же его найдет?" – думали они. А вот Autoswagger или его ручной аналог – найдет. И найдет быстро. Это как оставить ключ от сейфа под ковриком у двери, а потом удивляться, почему кто-то зашел и взял все самое ценное.
Так что, господа, инструменты вроде Autoswagger – это не панацея, но очень важный первый шаг. Они помогают отсеять совсем уж вопиющие косяки. Но помните: настоящий хакер – это не тот, кто просто сканирует, а тот, кто умеет думать как разработчик, который очень сильно устал и хочет домой. И искать не только то, что явно торчит, но и то, что спрятано за семью печатями, но при этом открывается на стук. А еще, конечно, не забывайте про банальную гигиену: не оставляйте дебажные эндпоинты на проде, не выставляйте наружу то, что не должно быть наружу, и всегда, ВСЕГДА проверяйте авторизацию. Иначе потом будете рассказывать грустные истории на Хабре, а мы будем кивать головой и вспоминать свои похожие приключения. Удачи в поисках дыр, и пусть они будут только в тестовых средах!
У бизнеса два выбора: делать сервис для «Мариши» или для «гиков».
Но фишка в том, что «гик» - это как ресторанный критик. Да, он привередливый и на скидки не ведется. Но если уж ты смог накормить его так, что он остался доволен, то «Маришка» точно не отравится и будет в восторге.
А вот сервис, сделанный только для «Мариши», рано или поздно сломается, и пострадает именно она.
Так что «шарящие ребята» - это не проблема. Это бесплатный отдел качества, который работает на всех.
Привет! Спасибо за наброс, тут есть что обсудить. Давай по порядку.
Про нормализацию. Тут всё просто, никакого противоречия. В базе заводят два поля: одно для логина и проверки на дубликаты (normalized_email), другое - для отправки писем (original_email, как ввел юзер). Проблема решена.
Про "упущенную прибыль". Дело не в паре гиков с плюсами. Дело в том, что для шарящих ребят кривая валидация - это как красная тряпка. Сразу видно, что к качеству тут относятся наплевательски. Так что проблема на ровном месте - это как раз запрещать рабочую фичу, а не поддерживать ее.
Про безопасность и wget. Пример крутой, но он вообще о другом. Путать валидацию (проверку формата) и санитайзинг (обеззараживание данных) - это классическая ошибка.
Винить RFC в том, что твой древний баш-скрипт можно взломать, - это как винить ГОСТ на колбасу в том, что ты этой колбасой порезался. Любые данные от юзера надо экранировать перед использованием. Всегда.
Их борьба с ботами - это фейс-контроль, который разворачивает тебя в пиджаке, потому что «слишком уникальный», но пропускает толпу в одинаковых масках.
Если, баг с плюсом - это досадная мелочь, то - уже осознанный выстрел себе в ногу. Из базуки.
Вопрос хороший, конечно, никто не мешает им почистить базу.
Но фишка в том, что почти все спамеры — дико ленивые ребята. Они гоняют гигантские сырые списки, и им просто лень заморачиваться с какой-то там «нормализацией». Главное быстро заспамить
И тут два варианта:
Спамер умный и почистил базу, ну окей, спам упадет в твой основной ящик. Ситуация ровно та же, как если бы ты не использовал тег. Ты ничего не потерял.
Спамер — лентяй, а он почти всегда лентяй и ты сразу видишь, кто слил твою почту.
Так что «плюс» в почте — это не защита от всех проблем, она сработает не на профи-взломщика, а на обычную массовку.
Я первым делом, сделал то же самое, сначала через постман запросы прокинул, потом на пайтоне написал скрипт, который шлет запросы в ручку. Но проблема в том, что сервак потом начинает блочить эти запросы и смысла в них уже нет. Я так понимаю к ним в бот приходят какие-то веб-хуки с данными пользователей из этой апихи и туда можно че угодно закинуть. И тут вопрос, получится ли отправить к ним на сервак скрипт, который как-то повлияет на работу этого сервера, либо же закинуть к ним туда ссылку, по нажатию на которую в тг появится возможность получить какой-то доступ к компу на котором ее открыли или сделать фотку с вебки, получить ip-адрес и тд. Думаю это можно проверить ))
Ну если его использовать на мошенниках я думаю, никто ничего не скажет. Тут важно понимать, если его использовать на территории РФ, то главное, что бы эти действия были согласованны, например в рамках баг-баунти программы или договоренности со сканируемой стороной
ну как минимум, на короткое время атаки прекратятся, так же я подал жалобы в РКН, МВД и НКЦКИ. Может быть как-то повлияет, да и статья написана в качестве просто интересного кейса и подсветка такой мошеннической атаки
Я нашел пока только 2 варианта: 1. с помощью api user generator https://randomuser.me/api/?inc=picture этот метод будет генерировать ссылки на картинки 2. С помощью ии, можно использовать qwen, он пока один из самых дешевых. С помощью ии можно генерить при генерации данных сразу, а можно заранее нагенерировать тож с помощью кода цикл сделать генерации, и распределить их по возрастам и потом забирать
Это не самые лучшие варианты конечно, есть ещё faker‑graphics но он генерирует плейсхолдеры, это не совсем то, что нужно. Я сам хотел найти бы вариант по-лучше, если что разыщешь, поделись, пожалуйста:)
А почему бы и не в тг, сайтов таких много, а ботов нормальных не видел. Сайты, которые сейчас есть, конечно лучше реализованы, есть даже апишки готовые, а бота нормального не видел
ахахаха да ладно, если б знал, то такую фигню б не делал вообще))) а я парился с добавлением имен, адресов, номеров телефона очень годная штука. Только я не нашел какие страны он поддерживает
Ключевое отличие моей идеи в цели: MSW — это про мокирование (имитацию ответов), а наш API — это про симуляцию живого бэкенда. Студенты учатся работать не с "заглушкой", а с реальным, пусть и простым, сервером, у которого есть состояние. Они могут отправить POST запрос, а затем GET запросом убедиться, что данные сохранились и изменились.
Плюс, я как преподаватель могу на лету менять логику, добавлять "баги" или новые эндпоинты, подстраиваясь под программу курса, чего с моками не сделаешь так гибко.
Ох уж эти API... Каждый микросервис норовит выставить наружу свой API, да еще и с документацией, которая, порой, выглядит как приглашение на вечеринку для всех желающих. И ладно бы только Swagger, там же еще и GraphQL, и всякие кастомные RPC, которые порой вообще без доки живут, но дыры в них не меньше.
Это, конечно, штука полезная. Типа пылесос для низковисящих фруктов. Находит то, что лежит на поверхности, и это уже хорошо. Потому что, поверьте, таких "подарков" до сих пор хватает. Вроде бы 2025 год на дворе, а базовые вещи до сих пор пролетают мимо ревью. Иногда кажется, что разработчики соревнуются, кто оставит более жирную дыру, чтобы потом пентестеры не скучали.
Вот вам история из жизни, без имен и паролей, разумеется:
Как-то раз, на одном из проектов, мы ковыряли внутренний API одной очень крупной, очень серьезной компании. Ну, знаете, такие, у которых бюджет на безопасность, как у маленькой страны. И вот, в процессе изучения, натыкаемся на эндпоинт, который, судя по названию, должен был возвращать какие-то внутренние логи. Ну, логи и логи, дело обычное. Но вот незадача: он возвращал не просто логи, а логи с полным стектрейсом, включая переменные окружения, пути к файлам и, что самое вкусное, часть конфигов с продакшн-сервера. Без какой-либо авторизации, разумеется. Просто GET-запрос, и вуаля! Весь внутренний мир компании как на ладони. Оказалось, что это был какой-то дебажный эндпоинт, который забыли выключить после релиза. "Ну, кто же его найдет?" – думали они. А вот Autoswagger или его ручной аналог – найдет. И найдет быстро. Это как оставить ключ от сейфа под ковриком у двери, а потом удивляться, почему кто-то зашел и взял все самое ценное.
Так что, господа, инструменты вроде Autoswagger – это не панацея, но очень важный первый шаг. Они помогают отсеять совсем уж вопиющие косяки. Но помните: настоящий хакер – это не тот, кто просто сканирует, а тот, кто умеет думать как разработчик, который очень сильно устал и хочет домой. И искать не только то, что явно торчит, но и то, что спрятано за семью печатями, но при этом открывается на стук. А еще, конечно, не забывайте про банальную гигиену: не оставляйте дебажные эндпоинты на проде, не выставляйте наружу то, что не должно быть наружу, и всегда, ВСЕГДА проверяйте авторизацию. Иначе потом будете рассказывать грустные истории на Хабре, а мы будем кивать головой и вспоминать свои похожие приключения. Удачи в поисках дыр, и пусть они будут только в тестовых средах!
У бизнеса два выбора: делать сервис для «Мариши» или для «гиков».
Но фишка в том, что «гик» - это как ресторанный критик. Да, он привередливый и на скидки не ведется. Но если уж ты смог накормить его так, что он остался доволен, то «Маришка» точно не отравится и будет в восторге.
А вот сервис, сделанный только для «Мариши», рано или поздно сломается, и пострадает именно она.
Так что «шарящие ребята» - это не проблема. Это бесплатный отдел качества, который работает на всех.
Привет! Спасибо за наброс, тут есть что обсудить. Давай по порядку.
Про нормализацию. Тут всё просто, никакого противоречия. В базе заводят два поля: одно для логина и проверки на дубликаты (
normalized_email
), другое - для отправки писем (original_email
, как ввел юзер). Проблема решена.Про "упущенную прибыль". Дело не в паре гиков с плюсами. Дело в том, что для шарящих ребят кривая валидация - это как красная тряпка. Сразу видно, что к качеству тут относятся наплевательски. Так что проблема на ровном месте - это как раз запрещать рабочую фичу, а не поддерживать ее.
Про безопасность и
wget
. Пример крутой, но он вообще о другом. Путать валидацию (проверку формата) и санитайзинг (обеззараживание данных) - это классическая ошибка.Винить RFC в том, что твой древний баш-скрипт можно взломать, - это как винить ГОСТ на колбасу в том, что ты этой колбасой порезался. Любые данные от юзера надо экранировать перед использованием. Всегда.
Согласен, это вообще другая лига идиотизма.
Их борьба с ботами - это фейс-контроль, который разворачивает тебя в пиджаке, потому что «слишком уникальный», но пропускает толпу в одинаковых масках.
Если, баг с плюсом - это досадная мелочь, то - уже осознанный выстрел себе в ногу. Из базуки.
Ну да))) Это и есть продвинутый уровень.
Основной ящик держишь только для своих и банков, а для всего остального мира - почту с "+"
В итоге всё, что прилетает на «голый» адрес без тега, с вероятностью 99% спам. По сути обратный фильтр.
Вопрос хороший, конечно, никто не мешает им почистить базу.
Но фишка в том, что почти все спамеры — дико ленивые ребята. Они гоняют гигантские сырые списки, и им просто лень заморачиваться с какой-то там «нормализацией». Главное быстро заспамить
И тут два варианта:
Спамер умный и почистил базу, ну окей, спам упадет в твой основной ящик. Ситуация ровно та же, как если бы ты не использовал тег. Ты ничего не потерял.
Спамер — лентяй, а он почти всегда лентяй и ты сразу видишь, кто слил твою почту.
Так что «плюс» в почте — это не защита от всех проблем, она сработает не на профи-взломщика, а на обычную массовку.
Возможно xss-инъекции можно попробовать, если соберу достаточно информации, напишу продолжение
Да, в комментах выше об этом говорили)))
Я первым делом, сделал то же самое, сначала через постман запросы прокинул, потом на пайтоне написал скрипт, который шлет запросы в ручку. Но проблема в том, что сервак потом начинает блочить эти запросы и смысла в них уже нет. Я так понимаю к ним в бот приходят какие-то веб-хуки с данными пользователей из этой апихи и туда можно че угодно закинуть. И тут вопрос, получится ли отправить к ним на сервак скрипт, который как-то повлияет на работу этого сервера, либо же закинуть к ним туда ссылку, по нажатию на которую в тг появится возможность получить какой-то доступ к компу на котором ее открыли или сделать фотку с вебки, получить ip-адрес и тд. Думаю это можно проверить ))
Ну если его использовать на мошенниках я думаю, никто ничего не скажет. Тут важно понимать, если его использовать на территории РФ, то главное, что бы эти действия были согласованны, например в рамках баг-баунти программы или договоренности со сканируемой стороной
ну как минимум, на короткое время атаки прекратятся, так же я подал жалобы в РКН, МВД и НКЦКИ. Может быть как-то повлияет, да и статья написана в качестве просто интересного кейса и подсветка такой мошеннической атаки
пока да, надеюсь это сработает
отличная идея, напишу
опечатался, "будет уничтожен" надеюсь)))
Я нашел пока только 2 варианта:
1. с помощью api user generator https://randomuser.me/api/?inc=picture этот метод будет генерировать ссылки на картинки
2. С помощью ии, можно использовать qwen, он пока один из самых дешевых. С помощью ии можно генерить при генерации данных сразу, а можно заранее нагенерировать тож с помощью кода цикл сделать генерации, и распределить их по возрастам и потом забирать
Это не самые лучшие варианты конечно, есть ещё faker‑graphics но он генерирует плейсхолдеры, это не совсем то, что нужно. Я сам хотел найти бы вариант по-лучше, если что разыщешь, поделись, пожалуйста:)
А почему бы и не в тг, сайтов таких много, а ботов нормальных не видел. Сайты, которые сейчас есть, конечно лучше реализованы, есть даже апишки готовые, а бота нормального не видел
Благодарю, полезная инфа
ахахаха да ладно, если б знал, то такую фигню б не делал вообще))) а я парился с добавлением имен, адресов, номеров телефона очень годная штука. Только я не нашел какие страны он поддерживает
ну если ты не будешь монетизировать это, то я думаю, что ничего страшного не случится