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