Audito muchos códigos, Escribo exploits , y he acumulado más de 50 CVE en el transcurso de unos 6 años de caza de errores.
Cuando fui a mi primera búsqueda de errores graves, estaba buscando proyectos débiles que no habían sido auditados extensivamente por la comunidad ( o milw0rm atrás en el día). Para hacer esto utilicé Búsqueda avanzada de SourceForge , que ha cambiado mucho. Básicamente estaba buscando un proyecto de PHP que la gente descargaba y usaba, pero no era muy popular. Digamos alrededor de ~ 1,000 descargas y menos de 1 año de edad. Encontré Ultimate PHP Board que resultó ser muy inseguro .
A medida que avanzaba el tiempo, me aburrían con proyectos inseguros, así que cambié mis tácticas por completo y comencé a perseguir proyectos populares. Por ejemplo, exploto PHPMyAdmin que es la aplicación PHP más descargada.
Después de años de pruebas de penetración y desarrollo de aplicaciones, obtienes una especie de sexto sentido sobre cómo funciona el código y dónde pueden estar las áreas problemáticas. Puede ver una pieza de funcionalidad y escribir una implementación en su cabeza y elegir dónde podrían salir las cosas mal. Así que en una prueba de penetración siempre me hago la misma pregunta: " ¿Qué es lo peor que podría pasar? ". Y luego salga y enfoque mis pruebas basadas en esta pregunta.
Te daré un buen ejemplo. Vi un anuncio de Paisaje canónico (Creador de Ubuntu). En el anuncio mostraba una función de Landscape donde podía ejecutar un comando en cada máquina que posee como root . Pensé para mí mismo, "¿Y si era vulnerable a CSRF?". Me inscribí en un rastro gratuito y, efectivamente, podría obtener una raíz remota en todas las máquinas utilizando una única solicitud HTTP falsificada. ¡Outch! (También obtuve raíz remota en cPanel con CSRF , y obtuve una métrica de gravedad:)
Otra falla que encontré en Google Music, cargué un MP3 que tenía JavaScript en todas las etiquetas ID3. Por supuesto, los nombres del artista y del álbum se imprimieron en la página, y obtuve $ 500 del programa de recompensas de errores con mi primera prueba. Una de las razones por las que elegí esta entrada es porque sabía que no sería ejercida por un escáner de vulnerabilidad tonta. Es como si supiera que fallaría antes de tiempo. Ese tipo de comprensión innata solo viene con años de práctica.