Iloo

https://iloo.wordpress.com

Archivos por Etiqueta: SQL Injection

Web Applications Security: www.mingobierno.gob.bo (1)

Estoy cansado de ir avisando sobre las vulnerabilidades que existen en algunos sitios a sus respectivos administradores, esto porque no recibo ni siquiera un gracias, todo lo contrario, a una persona le hicieron un problema por comunicar algo que envió a este blog, cosa que demuestra que tales administradores son unos mediocres, así que: administradores se jod…

En este caso el sitio en cuestión es el Ministerio de Gobierno del Estado Plurinacional de Bolivia (www.mingobierno.gob.bo) No es necesario hacer un análisis minucioso para ver que el sitio tiene varias deficiencias en su implementación. Entre ellas: El enlace http://www.mingobierno.gob.bo/detalle_noticia.php?id=57 parece vulnerable, si cambiamos y lo dejamos de la siguiente manera: http://www.mingobierno.gob.bo/detalle_noticia.php?id=’, obtenemos un error:

Ya no queda más que hacer tiene un servidor windows con AppServ., vulnerable a SQL Injection y Blind SQL. Ahora el siguiente horror error es de del módulo encargado de la publicación de noticias:

Esta sección simplemente no tiene control de acceso, el nombre de la dirección es la más común, creo que no aprendieron que la seguridad por oscuridad no es seguridad.

Anuncios

Web Applications Security: www.presidencia.gob.bo (2)

Retomando la parte de administración.

Primero: En la sección de Gestionar Documentos.

Se observa un formulario para cargar archivos al servidor pero existe un error gravísimo, se puede cargar al servidor cualquier tipo de archivo (como veremos más adelante).

Recomendación: restringir la extensión y el tipo de archivo a subir al servidor.

Segundo: del punto anterior se puede cargar por ejemplo un shell php:

Recomendación: ver punto 1

Bueno ya teniendo el shell cargado se puede hacer prácticamente todo, cambiar nombres de directorios y archivos, subir y descargar archivos (se puede jugar una buena broma), también tener acceso a las bases de datos, etc, etc.

Lo dicho en el anterior post, el problema de la seguridad en el inicio de sesión se encuentra en la base de datos, así como no pude contactarme con el administrador, voy a arreglar yo mismo este problema, claro no es difícil, solo hay que borrar los registros nulos (espero que el administrador no haya colocado estos datos de manera consciente).

Ahora si iniciamos sesión de nuevo con los datos vacíos tenemos:

Por último y estoy seguro que la parte de inicio de sesión sigue siendo vulnerable a SQL Injection, con más tiempo voy a demostrar esta aseveración…

Web Applications Security: www.sicoes.gov.bo (2)

Continuando con el análisis del Sistemas de Contrataciones Estatales, SICOES (www.sicoes.gov.bo).

Voy a mostrar las vulnerabilidades que encontré y las recomendaciones para subsanar estas:

Vulnerabilidad: el nombre del archivo de conexión a la base de datos es muy obvio (conexion4.php), el cual está ubicado en: http://sicoes.sicoes.gov.bo/lib/.

Recomendación: cambiar el nombre, la ubicación y los permisos al archivo.

Vulnerabilidad: funciones (procedimientos) de la base de datos visibles en: http://sicoes.sicoes.gov.bo/lib/funciones.sql. Esta vulnerabilidad ayudaría a realizar un SQL Injection.

Recomendación: borrar el archivo, moverlo o renombrarlo y si fuera necesario almacenar los procedimientos dentro el gestionador de bases de datos.

Vulnerabilidad: error crítico en el archivo: http://sicoes.sicoes.gov.bo/lib/descargar.php, ya que permite descargar cualquier archivo del servidor (Source Code Disclosure).

  • Código de ejemplo en el servidor:

$nombre = $_GET[‘archivo’]; // Nombre del archivo

readfile($nombre);

  • Código sugerido:

$nombre = $_GET[‘archivo’]; // Nombre del archivo
$folder = ‘archivos_permitidos’;
$enlace = $folder.’/’.$nombre;
..
readfile($enlace);

Por ejemplo, hacemos una prueba con el archivo de conexión a la base de datos conexion4.php:


Vulnerabilidad: del punto anterior tenemos un Path Traversal, por ejemplo podemos obtener el siguiente archivo del sistema operativo: /etc/passwd

Recomendación: /bin/false a diferencia de /sbin/nologin añade un restricción extra como es la conexión mediante ftp. Y tomar en cuenta la recomendación del punto 3.

Aún sigue siendo mucho lo que he podido encontrar, así que nuevamente voy a dividir en una tercera entrada lo que viene que será temas de seguridad en el sistema que controla la publicación de las licitaciones.

Web Applications Security: www.sicoes.gov.bo (1)

Voy a comenzar con una nueva sección, me avocaré principalmente a las aplicaciones que interactúan en el país que me encuentro ya que es una necesidad contar con aplicaciones que sean seguras y fiables.

La primera aplicación a ser analizada (fue) es el Sistema de Contrataciones Estatales (SICOES) cuyo sitio en internet es http://www.sicoes.gov.bo, desarrollado por la Dirección General de Sistemas de Gestión de Información Fiscal (http://www.sigma.gov.bo).

El SICOES brinda información de las entidades del sector público referida a: procesos de contratación; solicitudes de propuestas; adjudicación y contrato de bienes, obras, servicios generales y servicios de consultoría; recursos administrativos interpuestos; contrataciones por excepción, etc…” (http://www.sicoes.gov.bo/paginicio/info.html)

Cabe mencionar que envié mensajes a las siguientes direcciones: convocatorias@sicoes.gov.bo, consultas@sicoes.gov.bo, sugerencias@sicoes.gov.bo, sugerencia@sigma.gov.bo, mencionando las vulnerabilidades que encontré así como también las sugerencias para corregir lo antes mencionado. No recibiendo respuesta y al ver que el sitio sigue con las vulnerabilidades (que son importantes) lo voy a hacer por este medio.

Lo primero para ir probando el sitio es buscar una dirección vulnerable, en el sitio hay bastantes pero busquemos la sección principal que es referente a las convocatorias: http://sicoes.gov.bo/general/frames.php?direccion=../contrat/procesos.php.

Sobre esto se puede decir mucho pero principalmente tres puntos importantes:

  • El uso de marcos dificulta la navegación y ahí ya podemos explotar (como veremos más adelante) algunos errores de programación.
  • Encontramos un Full Path Disclosure, lo encontramos en: http://sicoes.gov.bo/general/frames.php?direccion=”.
  • Una sugerencia es el de NO usar menús flash esto denota una falta de conocimiento y experiencia por parte de los desarrolladores, ya que es más fácil poner un menú flash que se invoque de todas las páginas que hacer uno para cada página, pero esto se soluciona haciendo un solo menú y llamándolo con: include(‘menu.htm’), en el mismo lenguaje en el que esta hecha la aplicación, PHP.

Continuemos, la página que esta “enmarcada” es en realidad: http://www.sicoes.gov.bo/contrat/procesos.php, aquí hay varios errores tanto de los diseñadores y programadores.

  • Parte de la sentencia SQL es completamente visible, con esto ya es más fácil ejecutar un SQL Injection.

  • Si introducimos https://iloo.wordpress.com (más las comillas) en uno de los campos input yo lo haré en el campo Entidad claramente vemos que se ve un Cross site scripting a demás de seguirse viendo parte del código SQL.

Un ejemplo del porque no usar marcos en http://sicoes.gov.bo/general/frames.php?direccion=../paginicio/contactenos.php:

Para terminar el formulario que aparece en la sección de Contáctenos no funciona a demás de que no valida los datos introducidos a lo que se suma otro punto de vulnerabilidad. Ya que son muchas las vulnerabilidades que pude encontrar voy a dividir la entrada la siguiente parte estará más interesante ya que son datos del servidor los que se tocarán.