Saludos!
Vulnerabilidad es un término demasiado amplio, ya que abarca cualquier fallo explotable, por tanto estamos englobando tanto defectos a nivel programación de aplicaciones (por ejemplo Buffer Overflows), como tambien bugs a nivel web.
En caso de referirte a los bugs a nivel web. Te recomiendo que primero estudies los principales lenguajes con que se hacen las webs (PHP, SQL y HTML) para poder comprender como funciona esa web y como trabaja, para poder ver si deja algún rescoldo en el que podamos intervenir. Por rescoldo me refiero a falta de filtrar variables, include () de archivos mediante peticiones tipo GET, etc.
Mucha gente recomienda pasarle escanners tipo SSS o Acunetix para ver posibles bugs... Pero estos escaneadores solo buscan bugs muy genéricos, y dejan de lado otros bugs suculentos que pueda contener la web, a parte de que si el webmaster denunciase, o simplemente hechara un vistazo a sus logs, podría comprobar que ha sido escaneado... y de una forma muy tosca..
Como bien apuntaba Raki0n, algo indispensable a la hora de buscar algun exploit pre-hecho, es el saber qué servicios corren para poder buscar algún exploit que los ataque.
Normalmente los exploits suelen venir con fallas para evitar que Script Kiddies y lammers en general puedan usarlos. Por ello te vuelvo a recomendar que aprendas programación, a parte de PHP, HTML y SQL (no es un lenguaje este último, pero para tratar con bases de datos es esencial) estutides C y PERL. Además, todos no funcionan igual... existen exploits que hay que correrlos en un entorno local al de la aplicación qeu se desea atacar, otros se pueden hacer de forma remota, otros hay que hacer qeu lo ejecuten otro sprogramas (como el bug de BoF que hay en el reproductor de Windows media).
Byt3z y espero haberte aclarado un poco
