Вопрос, который всегда привлекает мамкиных хакеров :)
Такие скучные темы, как "какими качествами я должен обладать?", "какие знания требуются?", на худой конец "какие книжки читать?" их никогда не интересуют. Только "как находят" и "как взламывают" :)
Это же ведь просто! Спросил на Хабре, тебе ответили - и вот уже загадочная романтическая профессия освоена.
Ответ, кстати, всегда один и тот же:
Если ты спрашиваешь, то уже не подходишь.
Потому что ключевым навыком взломщика является умение работать с информацией. И если ты самостоятельно не смог найти ответ даже на такой общий вопрос, то найти даже пустячную уязвимость тебе точно не по зубам.
как хакеры находят?
С помощью нечеловеческой концентрации и терпения. И плюс вагона разнообразных знаний в куче смежных областей, от архитектуры процессоров до тонкостей генерации pdf. Сидишь, пробуешь тысячу разных подходов. В одном появляется зацепка. Ты уже к этой зацепке пробуешь тысячу подходов. В одном появляется зацепка. Ты пробуешь уже к этой зацепке тысячу подходов. Но ни один не работает. Возвращаешься к предыдущей. Там тоже больше ничто никуда не ведет. Возвращаешься к самому началу, и пробуешь что-то ещё.
Где-то год назад на Хабре вроде была статья, которая довольно подробно описывала процесс поиска уязвимости, который в итоге привел к RCE через unserialize в пхп.
Как использовать
Для этого надо понять, как работает программа на атакуемом сервере. А дальше всё просто: скормить ей такие данные, которые приведут к выполнению содержащегося в них кода.
Самый тупой пример - SQL инъекция, описанная в известном
комиксе, которая заставляет сервер выполнить код, удаляющий таблицу пользователей из БД.