Underc0de

[In]Seguridad Informática => Seguridad web y en servidores => Mensaje iniciado por: Mortal_Poison en Julio 06, 2018, 05:12:10 PM

Título: Explotación de las malas prácticas de desarrollo
Publicado por: Mortal_Poison en Julio 06, 2018, 05:12:10 PM
Muchos son los problemas que se explotan sin impunidad alguna por los atacantes en la actualidad. Independientemente de la vulnerabilidad(bien sea técnica y/o de capa 8[errores humanos]) el atacante la aprovechará. Una de las características principales de esta problemática, se debe al desconocimiento y desinterés por parte de los desarrolladores para minimizar cualquier brecha de seguridad en su sistema que creen utópicamente infalible.

Basándonos con ésta premisa, podemos entonces deducir que, la mayoría de las casas de desarrollo, se enfocan en sacar sistemas escalables, flexibles y pensados a futuro, cumpliendo netamente con la ideología de alta cohesión y bajo acoplamiento.


¿Eres desarrollador/a?

Si eres desarrollador, deberías hacerte las siguientes preguntas básicas antes de proseguir a lo técnico:


Es difícil, realmente difícil protegerse ante cualquier amenaza, porque el precedente es y será el riesgo de los activos con los que contemos. Pero si de algo estoy seguro, es que nosotros como Pentesters, debemos desarrollar el ojo clínico para lo que hacemos. Cada cosa afecta al sistema que queremos romper, es el entorno que se convertirá en nuestro habitat y una vez lo conozcamos, podremos conocer las posibles vulnerabilidades y explotarlas.

Sin más preámbulo, vamos a lo técnico y les mostraré algunas vulnerabilidades que podrán parecer de impacto bajo, pero bien explotadas, pueden afectar hasta al mismo gerente de una empresa.

REDIRECCIONES CONTROLABLES

(https://i.imgur.com/Tv1qB57.png)
Ilustración 1. Plugin de Firefox para controlar las direcciones.

El plugin de NoRedirect, nos permite controlar las redirecciones de sitio y tomar control a nuestro antojo. Si nosotros desearamos ingresar a www.sitio.com/administracion/index.php, no nos dejaría, porque siempre nos va a redireccionar a login.php. Si lo viéramos desde el código, sería algo como esto:
[/list]
Código (php) [Seleccionar]

<?php
if(isset($_COOKIE['id_user'])){
header('Location: index.php');
}else{
//Si la cookie no existe, entonces que siempre me lleve al login.php
header('Location: login.php');
}
    
?>




Desde ese punto de vista, lo único que haríamos es bajar el plugin para firefox, instalarlo y luego añadir el sitio del panel de administración con alguna expresion regular si lo deseamos.

(https://i.imgur.com/yGVMI2u.png)
Ilustración 2. Añadir sitio para bloquear el redirect.


ABRIR NUEVAS PESTAÑAS

La etiqueta de a href es una de las más usadas en cualquier aplicativo web. De hecho, es usada con el atributo "_blank" para abrirle una nueva pestaña al usuario y evitarle molestias a este. Un claro ejemplo, es este:
Código (html5) [Seleccionar]

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href="https://google.com" target="_blank">Google</a>
</body>
</html>


(https://i.imgur.com/U3Yu0xV.png)
Ilustración 3. Hipervinculo de HTML.

Si presionamos en el hipervinculo, nos llevará a Google, claro está. El problema es que la mayoría de páginas web implementan opciones como: "el usuario podrá crear un link de su biografia y poner un sitio web o incluso, comentar con un link de su sitio web". Generalmente(si lo vemos desde el lado de los Frameworks), validan desde el Controlador que el link debe ir de una forma en particular. Si un atacante logra observar que puede crear un link del siguiente estilo, podrá redireccionar sin que se de cuenta al usuario a una página para realizar phishing:
Código (html5) [Seleccionar]
<a target="_blank" href="http://viinacademy.com/PoCUnderc0de/index.html"> Mi sitio! </a>

Y se vería de la siguiente forma:

(https://i.imgur.com/n9y8Nld.png)
Ilustración 4. Como se vería el hipervinculo del atacante.

Donde el link del atacante(el que está en el atributo de href) contiene lo siguiente:

Código (html5) [Seleccionar]
<html>
<script>
if (window.opener) window.opener.parent.location.replace('https://underc0de.org/foro');
if (window.parent != window) window.parent.location.replace('https://underc0de.org/foro');
</script>

The rules of life:

</html>


Ahora, si un usuario da click y tiene muchas pestañas abiertas(la mayoría de las personas siempre las tienen), le va a abrir una nueva pestaña que abrirá el link de http://viinacademy.com/PoCUnderc0de/index.html y le mostrará "The rules of life" pero a la página original(la de localhost/Test/index.html) la redireccionará a https://underc0de.org/foro. Esa redirección, bien podría ser un scam o una página maliciosa, dependiendo de la creatividad del atacante.

Resumiendo esta técnica, parándonos como atacantes, serían los siguientes pasos:


¿Cómo es posible solucionarlo?

Siempre deberás usar rel="noopener noreferrer" cuando uses el atributo target="_blank". Esto no permitirá redirigir a los usuarios.

INYECCIONES SQL

Qué más que las más conocidas como inyecciones SQL. Daré algunos tips desde el lado del pentester para descubrir inyecciones en lugares donde no se cree que las aplicaciones las tienen. Al ser una de las vulnerabilidades más explotadas, creo que los desarrolladores deben enfocarse en el BUEN filtro de sus campos.


Algunas de éstas vulnerabilidades me han servido para estar en el HoF(Hall Of Fame) de algunas empresas y créanme, los desarrolladores generalmente cometen las mismas fallas debido al uso de metodologías ágiles, de tiempo o de cualquier otro factor que pueda afectar su rendimiento vs cumplimiento.

Cualquier duda,opinión y/o sugerencia, será bien recibida.

Un saludo.
Título: Re:Explotación de las malas prácticas de desarrollo
Publicado por: LKI en Julio 12, 2018, 02:50:47 PM
Hola probé con el método de NoRedirect y al tratar de entrar a un panel de administrador recibía una página en blanco con lo siguiente:

HTTP/302: http://www.xxxx.ar/xxx/Default.aspx
Object moved to here.

al hacer click me volvía a redirigir al Default (INDEX).