Search
Write a publication
Pull to refresh
15
74.3

AQA Lead

Send message

Ключевое отличие моей идеи в цели: MSW — это про мокирование (имитацию ответов), а наш API — это про симуляцию живого бэкенда. Студенты учатся работать не с "заглушкой", а с реальным, пусть и простым, сервером, у которого есть состояние. Они могут отправить POST запрос, а затем GET запросом убедиться, что данные сохранились и изменились.

Плюс, я как преподаватель могу на лету менять логику, добавлять "баги" или новые эндпоинты, подстраиваясь под программу курса, чего с моками не сделаешь так гибко.

Ох уж эти API... Каждый микросервис норовит выставить наружу свой API, да еще и с документацией, которая, порой, выглядит как приглашение на вечеринку для всех желающих. И ладно бы только Swagger, там же еще и GraphQL, и всякие кастомные RPC, которые порой вообще без доки живут, но дыры в них не меньше.

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

Вот вам история из жизни, без имен и паролей, разумеется:

Как-то раз, на одном из проектов, мы ковыряли внутренний API одной очень крупной, очень серьезной компании. Ну, знаете, такие, у которых бюджет на безопасность, как у маленькой страны. И вот, в процессе изучения, натыкаемся на эндпоинт, который, судя по названию, должен был возвращать какие-то внутренние логи. Ну, логи и логи, дело обычное. Но вот незадача: он возвращал не просто логи, а логи с полным стектрейсом, включая переменные окружения, пути к файлам и, что самое вкусное, часть конфигов с продакшн-сервера. Без какой-либо авторизации, разумеется. Просто GET-запрос, и вуаля! Весь внутренний мир компании как на ладони. Оказалось, что это был какой-то дебажный эндпоинт, который забыли выключить после релиза. "Ну, кто же его найдет?" – думали они. А вот Autoswagger или его ручной аналог – найдет. И найдет быстро. Это как оставить ключ от сейфа под ковриком у двери, а потом удивляться, почему кто-то зашел и взял все самое ценное.

Так что, господа, инструменты вроде Autoswagger – это не панацея, но очень важный первый шаг. Они помогают отсеять совсем уж вопиющие косяки. Но помните: настоящий хакер – это не тот, кто просто сканирует, а тот, кто умеет думать как разработчик, который очень сильно устал и хочет домой. И искать не только то, что явно торчит, но и то, что спрятано за семью печатями, но при этом открывается на стук. А еще, конечно, не забывайте про банальную гигиену: не оставляйте дебажные эндпоинты на проде, не выставляйте наружу то, что не должно быть наружу, и всегда, ВСЕГДА проверяйте авторизацию. Иначе потом будете рассказывать грустные истории на Хабре, а мы будем кивать головой и вспоминать свои похожие приключения. Удачи в поисках дыр, и пусть они будут только в тестовых средах!

У бизнеса два выбора: делать сервис для «Мариши» или для «гиков».

Но фишка в том, что «гик» - это как ресторанный критик. Да, он привередливый и на скидки не ведется. Но если уж ты смог накормить его так, что он остался доволен, то «Маришка» точно не отравится и будет в восторге.

А вот сервис, сделанный только для «Мариши», рано или поздно сломается, и пострадает именно она.

Так что «шарящие ребята» - это не проблема. Это бесплатный отдел качества, который работает на всех.

Привет! Спасибо за наброс, тут есть что обсудить. Давай по порядку.

  1. Про нормализацию. Тут всё просто, никакого противоречия. В базе заводят два поля: одно для логина и проверки на дубликаты (normalized_email), другое - для отправки писем (original_email, как ввел юзер). Проблема решена.

  2. Про "упущенную прибыль". Дело не в паре гиков с плюсами. Дело в том, что для шарящих ребят кривая валидация - это как красная тряпка. Сразу видно, что к качеству тут относятся наплевательски. Так что проблема на ровном месте - это как раз запрещать рабочую фичу, а не поддерживать ее.

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

    Винить RFC в том, что твой древний баш-скрипт можно взломать, - это как винить ГОСТ на колбасу в том, что ты этой колбасой порезался. Любые данные от юзера надо экранировать перед использованием. Всегда.

Согласен, это вообще другая лига идиотизма.

Их борьба с ботами - это фейс-контроль, который разворачивает тебя в пиджаке, потому что «слишком уникальный», но пропускает толпу в одинаковых масках.

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

Ну да))) Это и есть продвинутый уровень.

Основной ящик держишь только для своих и банков, а для всего остального мира - почту с "+"

В итоге всё, что прилетает на «голый» адрес без тега, с вероятностью 99% спам. По сути обратный фильтр.

Вопрос хороший, конечно, никто не мешает им почистить базу.

Но фишка в том, что почти все спамеры — дико ленивые ребята. Они гоняют гигантские сырые списки, и им просто лень заморачиваться с какой-то там «нормализацией». Главное быстро заспамить

И тут два варианта:

Спамер умный и почистил базу, ну окей, спам упадет в твой основной ящик. Ситуация ровно та же, как если бы ты не использовал тег. Ты ничего не потерял.

Спамер — лентяй, а он почти всегда лентяй и ты сразу видишь, кто слил твою почту.

Так что «плюс» в почте — это не защита от всех проблем, она сработает не на профи-взломщика, а на обычную массовку.

Возможно xss-инъекции можно попробовать, если соберу достаточно информации, напишу продолжение

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

Ну если его использовать на мошенниках я думаю, никто ничего не скажет. Тут важно понимать, если его использовать на территории РФ, то главное, что бы эти действия были согласованны, например в рамках баг-баунти программы или договоренности со сканируемой стороной

ну как минимум, на короткое время атаки прекратятся, так же я подал жалобы в РКН, МВД и НКЦКИ. Может быть как-то повлияет, да и статья написана в качестве просто интересного кейса и подсветка такой мошеннической атаки

Я нашел пока только 2 варианта:
1. с помощью api user generator https://randomuser.me/api/?inc=picture этот метод будет генерировать ссылки на картинки
2. С помощью ии, можно использовать qwen, он пока один из самых дешевых. С помощью ии можно генерить при генерации данных сразу, а можно заранее нагенерировать тож с помощью кода цикл сделать генерации, и распределить их по возрастам и потом забирать

Это не самые лучшие варианты конечно, есть ещё faker‑graphics но он генерирует плейсхолдеры, это не совсем то, что нужно. Я сам хотел найти бы вариант по-лучше, если что разыщешь, поделись, пожалуйста:)

А почему бы и не в тг, сайтов таких много, а ботов нормальных не видел. Сайты, которые сейчас есть, конечно лучше реализованы, есть даже апишки готовые, а бота нормального не видел

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

ну если ты не будешь монетизировать это, то я думаю, что ничего страшного не случится

1

Information

Rating
143-rd
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Test Automation Engineer, Manual Test Engineer
Lead
Git
Python
SQL
PostgreSQL
Docker
Linux
MySQL
Database
XML
Web