Una breve historia sobre un cliente inadecuado y encontrar una vulnerabilidad en un sitio en 1 minuto .
No esperaba que esta historia en particular fuera mi primer artículo sobre Habré. Estoy escribiendo mientras hace calor!Todo lo que lee más adelante no es un llamado a la acción o un intento de "comprometer" a nadie.5 de abril de 2020.Vi un mensaje en linkedin : “Buenas tardes. Estamos buscando un desarrollador para finalizar el proyecto en yii2 ... tel: + 79 ... whatsapp "Publicado en whatsapp :" Buen día. Soy de linkedin, envíe TK, si corresponde.En respuesta, recibió un gran mensaje con enlaces al sitio, un tablero en trello y un pequeño TK.
Estudiado Trello . Según la junta, al menos 4 desarrolladores trabajaron en el proyecto.6 de abril de 2020Debido a la cuarentena, en mi opinión, la gente está empezando a volverse loca. Esto es lo que vi en WhatsApp cuando desperté:
Todo parece ser nada, leer y olvidar. Pero algo dentro no daba descanso, había una sensación de incompletitud, de lo que realmente quería deshacerme.No quedaba nada más que entrar en el proyecto del "delincuente" y deshacerse de las sensaciones desagradables en su interior: D.La cuenta atrás ha comenzado.00:00Abro el sitio.Veo el formulario de búsqueda e intento verificar la inyección SQL que conocía anteriormente :' UNION SELECT
1,group_concat(username,0x7c,password),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
fRom user
Como era de esperar, no funciona , pero valió la pena intentarlo.00:20El sitio tiene la oportunidad de registrarse de dos maneras: como usuario y como empresa .Basado en las capturas de pantalla vistas en trello , decidí registrarme y trabajar con la cuenta personal de la Compañía .Complete los campos donde el frente permite las líneasSELECT * FROM users;
Solo para mejorar el "efecto de presencia" de los desarrolladores cuando buscan en la base de datos.00:40Después de un registro exitoso, se nos redirige a la página de perfil de la Compañía .Abra el elemento de menú "Cargar documentos" (muy conveniente, no es así: D) e intente cargar el archivo php .
Primero descargué adminer.php , ya que estaba disponible. El archivo se cargó correctamente y los desarrolladores me prepararon cuidadosamente una redirección a la página con un enlace al archivo.
Se abrió por el enlace: /upload/certified/15861775921.php
y funcionó correctamente.¡Ese fue el principio del fin!1:00A continuación, cargue el php-web-shell más simple a través del mismo formulario.Primero debe comprender quiénes somos y dónde estamos:pwd && whoami
Veamos la lista de archivos de directorio del sitio:ls /var/www/admin/data/www/_/
Vemos la estructura estándar del marco Yii2 , que esperábamos allí.Tenemos acceso a la base de datos, que se puede ingresar en el adminer.php previamente cargado :cat /var/www/admin/data/www/_/config/db.php
De hecho, me sorprendió que tales vulnerabilidades aún existan. Y aún más porque se pueden encontrar tan fácil y rápidamente.Por cierto, este fue un proyecto de una compañía de los EAU, que se dedica al suministro de productos industriales y de perforación para las industrias de petróleo, gas y perforación.Fui agregado a la lista negra en WhatsApp después del último mensaje y no podía hablar sobre la vulnerabilidad, así que dejé los huevos de Pascua en el servidor para los desarrolladores.¡No se olvide de verificar el tipo de archivo en el lado del servidor y, en general, preste más atención a la seguridad de su código!