Creo que es una mezcla de los dos y realmente depende de la aplicación que intentes explotar. No creo que haya un método verdaderamente “sistemático” que le diga si existe o no una vulnerabilidad. Es cierto que al observar el flujo de información, puede probar en papel que una aplicación es segura. Sin embargo, hay ciertas cosas, como las fugas en los canales laterales, que simplemente no puede tener en cuenta. Fugas de canal lateral en aplicaciones web: una realidad hoy, un desafío mañana.
Un método, posiblemente sistemático, para encontrar una vulnerabilidad es intentar realizar ingeniería inversa en el software. Teóricamente, podrías aplicar ingeniería inversa a cualquier pieza de software que se ejecute en tu computadora. Podrías desmontarlo y descubrir qué está haciendo. Este proceso puede ayudarlo a encontrar puntos débiles en el software que pueden ser explotados, por ejemplo, un desbordamiento del búfer.
Los servicios en línea / sitios web son otra cuestión. No conozco ningún método sistemático para determinar si un sitio web tiene una vulnerabilidad de scripting entre sitios (XSS). La forma más fácil de determinar si existe una vulnerabilidad XSS es simplemente por prueba y error. Si un sitio web toma información de una fuente no confiable y la incrusta en su página sin desinfectar, entonces eres dorado. Además, si hay desinfección, aún puede haber un caso de explotación, por ejemplo, si la aplicación está usando un filtro rígido, puede haber casos de esquina que no tiene en cuenta. Realmente solo puede encontrarlos a través de prueba y error.
- ¿Qué es el phishing?
- ¿Hay alguna institución que ofrezca piratería ética como curso?
- ¿Cómo j-hack Asphalt 8?
- ¿Cuál es la forma más efectiva de navegar anónimamente en Internet?
- ¿Cómo puedo aprender a hackear? No tengo ningún conocimiento al respecto.