Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-01-2016
Avatar de FideRosado
FideRosado FideRosado is offline
Miembro
 
Registrado: jun 2010
Ubicación: Pinar del Rio Cuba
Posts: 146
Poder: 14
FideRosado Va por buen camino
Login con proveedor de internet

Hola amigos del foro, aca les traigo un reto tanto personal como profecional,hace unos meses en mi ciudad de instalaron unos equipos para la conexion wifi de acceso publico,pero ojo,no gratis, el sistema funciona con autentificacion del wirewall, usando un portal cautivo,quizas con pfSense, bueno no lo se del todo, pero si se que hay pasos que hay que completar para autenticarce a travez de la web de ese portal.

Un amigo me comento de cierto programa en android que hace la autenticacion,pero yo me propongo hacer uno para windows,pero yo no cuento con el conocimiento avanzado qque mucho de ustedes tienen, por eso creare este hilo para que entre todos aporten y me corrijan lo que ire haciendo.

ire tirando un poco de codigo aqui para que ustedes vean de que se trata y mientras pueden decirme que hacer.

Usando un ejemplo de un downloader de indy descargue la pagina de acceso aunke solo me devuelve cierta informacion indispensable para comenzar.

cuando accedemos a la web del proveedor:
http://login.serviciowifi.cu:8080/showlogin.do

nos devuelve esto

Código PHP:
<html><body>
<form name="CMCCWLANFORM" method="post" action="http://login.nauta.cu:8080/showlogin.do">  
  <input type="hidden" name="wlanuserip" value="100.68.33.178">  
  <input type="hidden" name="wlanacname" value="">
  <input type="hidden" name="portalurl" value="http://login.nauta.cu:8080/showlogin.do">  
  <input type="hidden" name="wlanparameter" value="d339387934a89b9a023fc18f8adbcac7e4b2f40fb76c7657">
</form>
  <script language='javascript'>CMCCWLANFORM.submit();</script>
  </body>
</html>
<!--
<?xml version="1.0" encoding="UTF-8"?>
<WISPAccessGatewayParam  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="http://www.acmewisp.com/WISPAccessGatewayParam.xsd">
<Proxy>
<MessageType>110</MessageType>
<NextURL>http://login.nauta.cu:8080/showlogin.do?wlanuserip=100.68.33.178&wlanacname=&wlanparameter=d339387934a89b9a023fc18f8adbcac7e4b2f40fb76c7657</NextURL>
<ResponseCode>200</ResponseCode>
</Proxy>
</WISPAccessGatewayParam>
-->
__________________
"Aquellos que dicen que algo no puede hacerse, suelen ser interrumpidos por otros que lo están haciendo"
Responder Con Cita
  #2  
Antiguo 28-01-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Qué raro esa respuesta. Genera un formulario invisible y lo envía automáticamente y sin espera. Y encima, con un XML comentado (y por tanto, inútil).
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 28-01-2016
Avatar de FideRosado
FideRosado FideRosado is offline
Miembro
 
Registrado: jun 2010
Ubicación: Pinar del Rio Cuba
Posts: 146
Poder: 14
FideRosado Va por buen camino
respuesta

Asie es, muchos no se dan uante porke pasa muy rapido, luego te envia a una web que te muestra otro form pero con mas dattos oultos, miren aca.

Código PHP:
ESTOS SON LOS VALORES NECESARIOS DEL FORMULARIO los limpie un poco de todo su estilo html pero es lo mismo.

<
form class="form" action="https://login.nauta.cu:8443//LoginServlet" method="post" id="formulario">
<
input type="hidden" name="wlanuserip" id="wlanuserip" value="100.68.33.178"/>
<
input type="hidden" name="wlanacname" id="wlanacname" value=""/>
<
input type="hidden" name="wlanmac" id="wlanmac" value="" />
<
input type="hidden" name="firsturl" id="firsturl" value="notFound.jsp" />
<
input type="hidden" name="ssid" id="ssid" value="" />
<
input type="hidden" name="usertype" id="usertype" value="1" />
<
input type="hidden" name="gotopage" id="gotopage" value="/nauta_etecsa/LoginURL/pc_login.jsp" />
<
input type="hidden" name="successpage" id="successpage" value="/nauta_etecsa/OnlineURL/pc_index.jsp" />
<
input type="hidden" name="loggerId" id="loggerId" value="20160126173347869" />
<
input type="hidden" name="lang" id="lang" value="es_ES" />
<
input type="text"   name="username" id="username" maxlength="253" class="input_text cred" >
<
input type="password" name="password" id="password" class="input_text cred" value="">
<
input type='hidden' name='CSRFToken_HW' value='e6b45eb31911c24279cf1f1d20d68917' />

CHEKEANDO EL LOGIN
<input class="btn" name="Enviar" value='Aceptar' type="button" onclick="checkLogin();">
</
form>

FUNCIONES PARA  DE LOGIN

function sendUserInfoForm(){
    var 
url '/EtecsaQueryServlet';
    var 
= $$("username");
    var 
= $$("password");
    if (
== null || b.value == "") {
        
alert(JSLocale.username_null);
        
b.focus();
        return 
false;
    }
    if (
== null || a.value == "") {
        
alert(JSLocale.pwd_null);
        
a.focus();
        return 
false;
    }
    $(
'#formulario').attr('action'url);
    $(
'#formulario').submit();
}

FUNCIONES EXTERNAS

var JSLocale =
{
    
username_null "Por favor introduce tu usuario",
    
pwd_null "Por favor introduce tu contraseña",
    
verifycode_null "Por favor introduce el código de verificación",
    
varify_wrong "Los caracteres introducidos no coinciden con la imagen",
    
end "" // end sign,no meaning
}


function $$(
a) {
    return 
document.getElementById(a);
}
function 
checkLogin() 
{
    var 
= $$("username");
    var 
= $$("password");
    var 
d=$$("validate");
    if (
== null || b.value == ""
    {
        
alert(JSLocale.username_null);
        
b.focus();
        return 
false;
    }
    if (
== null || a.value == ""
    {
        
alert(JSLocale.pwd_null);
        
a.focus();
        return 
false;
    }
    if(
d!=null)
    {
        if(
d.value=="")
        {
            
alert(JSLocale.verifycode_null);
            
d.focus();
            return 
false
        
}
        else
        {
            var 
c=d.value;
            
DWREngine.setAsync(true);
            
VerifyCode.checkJS(c,check_callback)
        }
    }
    $$(
"formulario").submit();
}
function 
switchLang(b) {
    
document.getElementById("lang").value=b;
    
document.getElementById("currentURL").value=currentURL;
    var 
changelang document.getElementById("changelang");
    
changelang.action "/changelang.do";
    
changelang.submit();
}
function 
RefreshImage(validate)
{
    var 
el = $$(validate+"img");
    
el.src '/verifycode?' Math.random(); //[false alarm:Insecure Randomness]
    
$$("validate").value="";
}

function 
check_callback(a)
{
    if(
0>a)
    {
        
alert(JSLocale.varify_wrong);
        $$(
"validate").value="";
        
RefreshImage("validate0");
        $$(
"validate").focus();
    return 
false
    
}
    else
    {
        $$(
"formulario").submit()
        return 
true
    
}

__________________
"Aquellos que dicen que algo no puede hacerse, suelen ser interrumpidos por otros que lo están haciendo"
Responder Con Cita
  #4  
Antiguo 28-01-2016
Avatar de FideRosado
FideRosado FideRosado is offline
Miembro
 
Registrado: jun 2010
Ubicación: Pinar del Rio Cuba
Posts: 146
Poder: 14
FideRosado Va por buen camino
TidHTTP para empesar

Creo que seria bueno empesar a usar este componente TidHTTP para tirar peticiones al servidor y ver que pasa. que me aconsejan, aunque creo que tendria que usar unas funciones para obtener los datos necesarios antes de enviar algo
__________________
"Aquellos que dicen que algo no puede hacerse, suelen ser interrumpidos por otros que lo están haciendo"
Responder Con Cita
  #5  
Antiguo 29-01-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Yo el mayor problema que veo es el analizar el HTML para saber qué campos tiene cada formulario. A partir de ahí no debería ser difícil generar una petición que envíe los datos apropiados.

Claro que el tema del JavaScript también es peliagudo, ya que a veces se usa para modificar o montar las peticiones, en lugar de que sea el <form > quien lo haga. Aunque por lo que he visto parece que aquí sólo se usa para comprobar los datos antes de enviarlos (por ejemplo, que no haya campos vacíos), pero al ser jQuery no quiero asegurarlo (ya es difícil con algunos JavaScript "limpios", como para encima intentar adivinarlo si se usa jQuery).

Mi recomendación es que, si es posible, te pongas en contacto con los propietarios/autores de la página y preguntarles a ellos. Quizá se pueda usar un web-service o similar que te facilitaría mucho las cosas.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #6  
Antiguo 30-01-2016
Avatar de FideRosado
FideRosado FideRosado is offline
Miembro
 
Registrado: jun 2010
Ubicación: Pinar del Rio Cuba
Posts: 146
Poder: 14
FideRosado Va por buen camino
Jquery

Con respecto a eso pues si ya veo que usa jquery en la web tambien vere de que forma la aislo eso del proyecto,modifico las funciones , y como dices es importante ver de que forma se obtiene determinado valor del html, estaba pensando convertirlo en un String para despues enontrar as posiciones de los objetos dentro del form, por suerte no hay mucha diferencia, solo queda programar.
__________________
"Aquellos que dicen que algo no puede hacerse, suelen ser interrumpidos por otros que lo están haciendo"
Responder Con Cita
  #7  
Antiguo 18-04-2016
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
Saludos amigos, hace un mes mas o menos logre hacer esto, prepare una clase que recupera esos formularios con una instancia de TIdHTTP, y analizo las respuestas con expresiones regulares para extrear la informacion de los formularios y posteriormente reenviarla al proximo URL, o sea: 1 - Formulario CMCCWLANFORM, 2 - Formulario de logueo, y finalmente cuando accedes te responde un pagina con informacion sobre la URL que debes consultar, por ejemplo, el "loggerid" y el "ATTRIBUTE_UUID" entre otros que por supuesto extraigo con expresiones regulares como les conte.

Bueno ahora, presento un problema que no comprendo, a veces trato de hacer la solicitud del formulario y el provedor no me responde, esto desde una PC conectada al Punto de Acceso, sin embargo, en ese mismo momento con un Smartphone hago la peticion de la URL por el browser y si me responde, alguien tiene alguna idea de que puede estar sucediento?

muchas gracias antemano.
aeff!
Responder Con Cita
  #8  
Antiguo 01-05-2016
Avatar de FideRosado
FideRosado FideRosado is offline
Miembro
 
Registrado: jun 2010
Ubicación: Pinar del Rio Cuba
Posts: 146
Poder: 14
FideRosado Va por buen camino
respuesta

el error debe estar al usar el componente tidhttp
__________________
"Aquellos que dicen que algo no puede hacerse, suelen ser interrumpidos por otros que lo están haciendo"
Responder Con Cita
  #9  
Antiguo 01-05-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por aeff Ver Mensaje
Saludos amigos
Para otra ocasión, crea un hilo nuevo con tu pregunta.
En este hilo, y en cualquier otro, solamente debes participar para colaborar en ayudar al que inició el hilo, no para hacer tus propias preguntas.
Gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Juez puede forzar a proveedor internet a bloquear web que viola derecho autor nlsgarcia La Taberna 2 27-11-2013 10:08:55
Obtener la ip de la red o de mi proveedor pedrolazarus Lazarus, FreePascal, Kylix, etc. 7 14-04-2013 02:02:49
Proveedor OLE DB 'MSDASQL' Alexander Conexión con bases de datos 3 13-09-2007 19:45:02
Bélgica obliga a un proveedor de internet a filtrar el P2P Bicho Noticias 1 10-07-2007 18:47:40
Proveedor De BD .gdb Novata2006 Firebird e Interbase 1 16-05-2006 09:37:04


La franja horaria es GMT +2. Ahora son las 07:25:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi