Существует несколько методов классификации уязвимостей. Наиболее общий — это то, каким образом эксплойт контактирует с уязвимым программным обеспечением. «Удалённый эксплойт» работает через
сеть и использует уязвимость в защите без какого-либо предварительного доступа к уязвимой системе. «Локальный эксплойт» требует предварительный доступ к уязвимой системе и обычно повышает привилегии для лица, запускающего эксплойт над уровнем, который был предоставлен
системным администратором. Эксплойт «подставного сервера» подвергает риску машину конечного пользователя в том случае, когда к нему был совершён доступ с помощью уязвимого клиентского приложения. Эксплойт против клиентского приложения может также требовать некоторого взаимодействия с пользователем уязвимого приложения и может быть использован в связке с методами
социального инжиниринга, то есть
несанкционированного доступа к информации без использования технических средств.