Depende en gran medida de para qué intenta encontrar errores. Y puedo decirles ahora que nunca habrá un enfoque de talla única para este . Encontrar errores en algo como OpenSSL será bastante diferente a encontrar errores para una aplicación web orientada al público.
Como mencionó la plataforma de recompensas de errores y varios lenguajes de scripts web (tal vez no tanto C ++), asumo que la plataforma es más para aplicaciones / sitios web públicos que cualquier otra cosa.
En mi experiencia con la piratería de aplicaciones web, si tiene acceso al código fuente, e incluso si no lo tiene, el mejor lugar para comenzar es con la mentalidad de: Como usuario externo, ¿cómo puedo hacer que esta aplicación falle de una manera que sea beneficiosa para mí.
Podría comenzar a ver qué entrada puede y no puede enviar a la aplicación. Si tiene acceso al código fuente, puede hacer un poco de trampa y simplemente ver cómo la aplicación maneja la entrada del usuario. Quizás la aplicación simplemente agregue la entrada a una cadena de consulta de mysql. Eso sería un error que vale la pena informar.
Otro aspecto a tener en cuenta es la forma en que la aplicación sirve a su contenido, muchas aplicaciones web utilizan instancias de apache y nginx mal configuradas, pero a veces las aplicaciones web se sirven a sí mismas y la gente no las configura a menudo.
En cuanto a las herramientas, puedes encontrar algunas herramientas generales para explotar aplicaciones web comunes (como wordpress), pero en general escribirás tus propias herramientas. Si el lenguaje y / o el marco de la aplicación admite pruebas unitarias, puede escribir algunas y ejecutarlas en una instancia en ejecución del código fuente.
La principal conclusión de este post debería ser que nunca habrá un enfoque único para este aspecto y, si quieres ser un pirata informático en busca de errores en las aplicaciones web, lo mejor. el lugar para comenzar es pensar: Como usuario externo, ¿cómo puedo hacer que esta aplicación falle de una manera que sea beneficiosa para mí?