Если хочешь вникнуть в тему уязвимостей, первый шаг — понять, что это не только про поиск багов или взлом. Уязвимости — это слабые места в коде, настройках или инфраструктуре, через которые кто-то может навредить. Поэтому сначала надо научиться их искать в своих проектах, а не чужих, и главное — фиксить.
Как проверять? Лично я начинаю с того, что смотрю на самую очевидную базу: слабые пароли, устаревшие версии софта, небезопасные конфиги. Потом пробую самые стандартные уязвимости — SQL-инъекции, XSS, настройку прав доступа. Лучше всего вести чек-лист с этими моментами, чтобы ничего не пропустить.
Точно, кроме кода важно внимание к настройкам. Даже самый крутой код сломается, если где-то права на файлы неправильно поставлены или сервисы открыты на все подряд. Главное — не только находить, но и понимать, как это кто-то может использовать, чтобы потом закрыть дырку, а не просто отметить в чек-листе. Это и есть реальный навык.
Ну, всё это понятно, но часто новички слишком заморачиваются на всяких мелочах и забывают про элементарные вещи — банальные пароли или обновления. Проверять на безопасность надо, но не стоит превращать это в сверхсложный квест, иначе быстро забьёшь. Если на базу не смотреть, весь этот поиск уязвимостей может просто не иметь смысла.