Iloo

https://iloo.wordpress.com

Archivos por Etiqueta: sigma

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

Creo que con esto terminamos, al parecer el SICOES (www.sicoes.gov.bo) no estuvo funcionando por un par de días ya estaba pensando que era para mejorar el sistema pero veo que sigue igual. Ahora veremos parte del sistema encargado de la publicación y manejo de las licitaciones

Si bien podemos ver que el acceso esta restringido por un nombre de usuario y contraseña, como veremos más adelante no todo el sistema esta protegido.

Al revisar un poco el directorio nos encontramos con lo siguiente:

Y es justo aquí donde el sitio esta completamente sin protección:

Ahora las recomendaciones:

  • Si bien se puede proteger el contenedor (php, html, etc) de un archivo swf, esta protección se extiende para el archivo swf, para esto se tiene que hacer otro punto de seguridad obviamente usando ActionScript.
  • Personalmente no recomiendo la mezcla de php y flash, ya que podríamos tener un mejor resultado usando simplemente php y obviamente la velocidad de respuesta es más rápida.
  • Nuevamente recalco que es importante restringir el acceso a todo el sistema se pueden usar sesiones , cookies, etc, y no solo a la página o las páginas de inicio.

Para terminar con el análisis, las pruebas que se realizo al SICOES no fueron grandes hazañas no fueron técnicas de tipo “power ranger”, la verdad fueron muy simples y es un poco preocupante que un sistema donde se manejan millones de dolares y bolivianos no tenga la seguridad mínima para la protección de sus datos.

Anuncios

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.