Descargo de responsabilidad. Todos los eventos tuvieron lugar en 2017. Todas las vulnerabilidades especificadas en el artículo se informaron a los representantes de la compañía lo antes posible desde el momento en que se descubrieron. Algunos recursos, para 2019, se han actualizado por completo (frontend y backend).
El artículo es puramente informativo y de naturaleza educativa.Al revisar las carpetas antiguas, encontré las capturas de pantalla guardadas que hice para representantes de un par de compañías notorias en nuestro mercado de TI financiera.
Todo comenzó con el hecho de que decidí cambiar mi perfil de trabajo y probarme en un control de calidad o una profesión relacionada, pero no como un autodidacta solitario, sino para hacerlo en el personal de una gran organización, para tener a alguien de quien aprender, trabajar en equipo ...
Después de publicar el currículum, Sberbank Technologies, el Bank of Discovery sobre el que se contará una pequeña historia, se cruzó conmigo.
Después de la invitación a chatear, decidí ver qué vive en los dominios de las empresas para vulnerabilidades interesantes. Siempre es bueno tener una carta de triunfo en la manga en las negociaciones.
Sberbank
Sberbank está asociado principalmente con Rusia, pero tiene sucursales en otros países. Por lo tanto, decidí tomar el camino "simple". Casi después de un par de intentos, se encontraron dos vulnerabilidades pasivas de XSS en la interfaz web del Sberbank
bielorruso .
El primer error de los niños es no verificar los datos entrantes del usuario. Como resultado, la creación de scripts entre sitios en el campo de búsqueda y el formulario de inicio de sesión para Sberbank Online.


Un punto separado en el formulario de inicio de sesión en línea de Sberbank es que, aunque el formulario transmitió valores a través de POST, los scripts en el servidor web procesaron con éxito mi solicitud GET.
También decidí mirar el dominio desde el cual HR Sberbank me escribió. Resultó ser el portal "Talentos Sberbank".
Después de atormentar diferentes formas y campos ocultos, no obtuve nada bueno, excepto que el portal está girando en ASP.NET.
Después de revisar una vez más la fuente de la página HTML principal, noté que todos los archivos JS y CSS se proporcionan a través de un script que combina y comprime los archivos especificados en la solicitud GET.
El segundo error de los niños es no limitar la lista de archivos / directorios que se pueden descargar del servidor a la lista blanca.

Como resultado, obtuve acceso al archivo de configuración del servidor web. Y también, a un archivo de registro más interesante, donde se indicaron las contraseñas de SQL y otros servicios, así como los tokens API actuales para publicar en redes sociales.

Descubrimiento
Aquí, también decidí no perder el tiempo en el portal principal, sino mirar de inmediato a cuál de mis recursos web está vinculando el banco. El "Portal de la Carrera del Banco Otkritie" se convirtió en un tema, por analogía aleatoria con Sberbank.
Resultó que el portal se ejecuta en CMS Bitrix. Como regla general, los motores comerciales grandes o los motores de código abierto no contienen errores secundarios, pero ...
Ok Google, ¿cómo acceder al panel de administración de Bitrix?
El tercer error de los niños es no cerrar la lista del directorio en el servidor.En principio, todo está claro: Apache se configuró para que los directorios sin archivos de índice mostraran su contenido. Este no es un problema muy crítico, si no fuera por una fatídica combinación de circunstancias. En el portal profesional puede cargar sus datos de contacto y su archivo de currículum. Un par de minutos y ya estoy buscando enumerar el directorio con los datos de los solicitantes.


Todo esto es interesante, pero no el panel de administración. Por lo tanto, hojeamos todas las carpetas con la esperanza de encontrar algo.
No es un error de la infancia: el factor humano. No sé cómo, y lo más importante, por qué, pero en uno de los directorios con archivos PDF / RTF / DOC había un archivo sin extensión, que era un script PHP.

Gracias a este archivo, se obtuvo un nuevo vector de búsqueda: la carpeta / estaff /, donde se mostraban los registros para agregar / eliminar vacantes con un par de nombre de usuario / contraseña, scripts de módulo, así como en uno de los detalles de los archivos que se ajustan al panel de administración de Bitrix.


Ahora, Sharik, correrás tras él por otro medio día, para dar fotos ...
Lamentablemente, para mí esta historia terminó sin un final feliz. En primer lugar, tuve que buscar un representante real del banco relacionado con TI durante mucho tiempo. La primera línea de apoyo para los bancos (así como los recursos humanos mismos), en principio, no entendía el problema, lo que se esperaba, pero no podía transmitir esta información a colegas de los departamentos necesarios.
La solución fue LinkedIn y el envío de mensajes personales a los jefes de varios departamentos, al menos de alguna manera relacionados con la infraestructura de TI.
En segundo lugar, ambos bancos no tienen un programa Bug Bounty, como resultado, todo se limitó a un conciso "Gracias".
Y en tercer lugar, RR.HH. de ambos bancos no consideró mi currículum, citando una falta de experiencia.