Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-04-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Dark_Code Ver Mensaje
Esta es mi cuenta registrada del foro:

USUARIO: caaf95
CONTRASEÑA: clubdelphi
Estos datos no me dan acceso.
Error de usuario y/o contraseña incorrectos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 23-04-2018
Dark_Code Dark_Code is offline
Miembro
NULL
 
Registrado: ene 2018
Posts: 11
Poder: 0
Dark_Code Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Estos datos no me dan acceso.
Error de usuario y/o contraseña incorrectos.


Nueva Cuenta Registrada:

USUARIO: DarkCode99
CONTRASEÑA: clubdelphi

Foro: https://www.worldhack.net/foro/login.php


Código Delphi [-]
uses WinInet;

function URLEncode(Str: string): string;
var
  i: integer;
begin
  Result:= '';
  for i:= 1 to Length(Str) do
    if Str[i] in ['A'..'Z','a'..'z','0'..'9','-','_','.'] then
      Result:= Result + Str[ i ]
    else
      Result:= Result + '%' + IntToHex(Ord(Str[ i ]),2);
end;

function SendRequest(Server, Uri: string; Port: Word; Params: TStringList;
  Response: TStream): Boolean;
var
  hNet: HINTERNET;
  hCon: HINTERNET;
  hReq: HINTERNET;
  Context: DWORD;
  Buffer: array[0..10240] of Char;
  BytesRead: DWORD;
  i: integer;
  Str: String;
  Success: Boolean;
begin
  Context:= 0;
  Result := FALSE;
  hNet := InternetOpen('Agente', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if (hNet <> nil) then
  begin
    hCon:= InternetConnect(hNet,PChar(Server),Port,nil,nil,
      INTERNET_SERVICE_HTTP,0,Context);
    if (hCon <> nil) then
    begin
      if Params <> nil then
        hReq:= HttpOpenRequest(hCon,'POST',PChar(Uri),nil,nil,nil,
          INTERNET_FLAG_RELOAD,Context)
      else
        hReq:= HttpOpenRequest(hCon,'GET',PChar(Uri),nil,nil,nil,
          INTERNET_FLAG_RELOAD,Context);
      if (hReq <> nil) then
      begin
        if Params <> nil then
        begin
          Str:= Emptystr;
          for i:= 0 to Params.Count - 1 do
            Str:= Str + '&' + URLEncode(Params.Names[i]) + '=' +
              URLEncode(Params.ValueFromIndex[i]);
          Delete(Str,1,1);
          Success:= HttpSendRequest(hReq,
           'Content-Type: application/x-www-form-urlencoded',Cardinal(-1),
            PChar(Str),Length(Str));
        end else
          Success:= HttpSendRequest(hReq,nil,0,nil,0);
        if Success and (Response <> nil) then
        try
          while (InternetReadFile(hReq,@Buffer,sizeof(Buffer),BytesRead)) do
          begin
            if (BytesRead = 0) then
            begin
              Result := TRUE;
              break;
            end;
            Response.Write(Buffer,BytesRead);
          end;
        except end;
        InternetCloseHandle(hReq);
      end;
      InternetCloseHandle(hCon);
    end;
    InternetCloseHandle(hNet);
  end;
end;

procedure TfrmMain.btn1Click(Sender: TObject);
var
  Campos: TStringlist;
  Respuesta: TStringStream;
begin
  txtInfo.Clear;
  Application.ProcessMessages;
  txtUsuario.Text:= Trim(txtUsuario.Text);
  txtPassword.Text:= Trim(txtPassword.Text);
  if (txtUsuario.Text = EmptyStr) or (txtPassword.Text = EmptyStr) then
  begin
    txtInfo.Lines.Add('Introduce el nombre de usuario y contraseña');
    Exit;
  end;
  Campos:= TStringList.Create;
  Respuesta:= TStringStream.Create('');
  try
    Campos.Values['vb_login_username']:= txtUsuario.Text;
    Campos.Values['vb_login_password']:= txtPassword.Text;
    Campos.Values['do']:= 'login';
    txtInfo.Lines.Add('Enviando usuario y contraseña');
    if SendRequest('www.worldhack.net','/foro/login.php',80,Campos,Respuesta) then
    begin
      if Pos('Gracias',Respuesta.DataString) > 0 then
      begin
        FreeAndNil(Respuesta);
        Respuesta:= TStringStream.Create('');
        txtInfo.Lines.Add('Usuario Conectado Correctamente');
      end else txtInfo.Lines.Add('El usuario o la contraseña no son validos');
    end else txtInfo.Lines.Add('No puedo acceder al servidor');
  finally
    Campos.Free;
    Respuesta.Free;
  end;
end;

Ese codigo estoy que uso, pero lo que pasa es que al ingresar con mis datos ID y Password, no se puede conectar al foro.
Archivos Adjuntos
Tipo de Archivo: rar Login Foro Delphi.rar (3,9 KB, 1 visitas)

Última edición por Dark_Code fecha: 23-04-2018 a las 17:48:01.
Responder Con Cita
  #3  
Antiguo 23-04-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Hola a todos

si compruebas los campos que tiene el formulario HTML de ingreso, son algunos mas de los que tienes insertados en tu código, aquí abajo puedes ver las etiquetas que se envían, en el HTML de ingreso y que son las mismas que tu necesitas enviar por POST:

Código:
<form id="navbar_loginform" action="https://www.worldhack.net/foro/login.php?do=login" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)">
<input type="text" class="textbox default-value loginInput" name="vb_login_username" id="navbar_username" size="10" accesskey="u" tabindex="101" value="Usuario">
<input type="password" class="loginInput" tabindex="102" name="vb_login_password" id="navbar_password" size="10" style="display: none;">
<input type="text" class="loginInput" tabindex="102" name="vb_login_password_hint" id="navbar_password_hint" size="10" value="Contraseña" style="display: inline;">
<input type="image" src="images/styles/DeFraction/style/loginButton.png" tabindex="104" value="Iniciar sesión" title="Escribe tu nombre de usuario y contraseña en los campos para iniciar la sesión, o pulsa el botón 'registrarse' para crearte un perfil." accesskey="s">
<input type="checkbox" name="cookieuser" value="1" id="cb_cookieuser_navbar" class="cb_cookieuser_navbar" accesskey="c" tabindex="103">
<input type="hidden" name="s" value="">
<input type="hidden" name="securitytoken" value="guest">
<input type="hidden" name="do" value="login">
<input type="hidden" name="vb_login_md5password">
<input type="hidden" name="vb_login_md5password_utf">
</form>
Ademas la dirección a la que debes de enviar esa informacion con los correspondientes campos es la que esta en la etiqueta action del form "https://www.worldhack.net/foro/login.php?do=login", incluido el parámetro do=login que se pasa tanto por GET como por POST.

Aunque lo realmente "complicado" del acceso para esta pagina es que los campos securitytoken, vb_login_md5password y vb_login_md5password_utf seguramente se rellenen con una función javascript que llama el propio form antes de enviarse,
Código:
onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)"
y que seguramente se encargue de codificar ciertos datos de una determinada manera. Por lo que debes de realizar tu también una función en DELPHI que te realice las mismas operaciones en esos respectivos campos.

Un saludo
Responder Con Cita
  #4  
Antiguo 24-04-2018
Dark_Code Dark_Code is offline
Miembro
NULL
 
Registrado: ene 2018
Posts: 11
Poder: 0
Dark_Code Va por buen camino
Cita:
Empezado por bucanero Ver Mensaje
Hola a todos si compruebas los campos que tiene el formulario HTML de ingreso...
Entonces como seria el codigo para que se loguee perfectamente en delphi ?
Responder Con Cita
  #5  
Antiguo 24-04-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Cuando capturas la lista de campos que envía el formulario estos es los que se obtiene para establecer la conexión:
Código:
    [vb_login_username] => DarkCode99
    [vb_login_password] => 
    [vb_login_password_hint] => clubdelphi
    [x] => 74
    [y] => 59
    [s] => 
    [securitytoken] => guest
    [do] => login
    [vb_login_md5password] => 		d41d8cd98f00b204e9800998ecf8427e
    [vb_login_md5password_utf] => 	d41d8cd98f00b204e9800998ecf8427e
como ya te puse en mi anterior post, algunos de estos campos los ingresa o modifica el javascript que se ejecuta al enviar el formulario, y aquí no te puedo ayudar mucho mas por que el JAVASCRIPT lo desconozco, aunque aquí tienes el código por si deseas analizarlo

https://www.worldhack.net/foro/clien...n_md5.js?v=425

en cuanto a tu código suponiendo que se establezca bien la conexión SSL con el servidor, entonces deberías de añadir los campos faltantes:

Código Delphi [-]
function codificarPassword(const password:String):string;
begin
  /// esta función debe hacer lo mismo que la función original de JAVASCRIPT.
  if password='clubdelphi' then 
    /// para el password 'clubdelphi' el valor que retorna es este:
    result := 'd41d8cd98f00b204e9800998ecf8427e'
  else 
    result := 'aquí falta poner las funciones que hace la librería de JAVASCRIPT con el password';
end; 

  ...
  try
    ///estos son los campos que debes de insertar
    Campos.Values['vb_login_username']:= txtUsuario.Text;
    Campos.Values['vb_login_password']:= '';
    Campos.Values['vb_login_password_hint'] := txtPassword.Text;
    Campos.Values['x'] := '74';
    Campos.Values['y'] := '59';
    Campos.Values['s'] := '';
    Campos.Values['securitytoken'] := 'guest';
    Campos.Values['do'] := 'login';
    Campos.Values['vb_login_md5password'] := CodificarPassword(txtPassword.Text);
    Campos.Values['vb_login_md5password_utf'] := Campos.Values['vb_login_md5password'];

    ...
    // aquí he modificado la URL de destino e importante: el puerto ha de ser SSL y por defecto es el 443, aunque dependiendo de la configuración del servidor pudiera se cualquier otro.
    if SendRequest('www.worldhack.net','/foro/login.php?do=login', 443,Campos,Respuesta) then
    begin
        ....
    end;
  finally
     ...
  end;

Ya por ultimo no he podido probar todo esto por que ademas las credenciales a la pagina parecen no funcionar incluso ingresandolas a mano.

Un saludo
Responder Con Cita
  #6  
Antiguo 24-04-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por bucanero Ver Mensaje
Ya por ultimo no he podido probar todo esto por que ademas las credenciales a la pagina parecen no funcionar incluso ingresandolas a mano.
+1
Siguen sin funcionar.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



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
necesito ayuda alopezikari Varios 1 04-05-2010 21:54:57
Necesito ayuda MrCuCo Varios 2 24-03-2010 03:35:39
Necesito Ayuda vicoxl16 Internet 1 03-01-2010 20:58:35
Necesito ayuda RoyTan Conexión con bases de datos 1 27-08-2006 06:23:15
Necesito ayuda!! DiRHoP Varios 7 16-09-2005 02:44:42


La franja horaria es GMT +2. Ahora son las 00:36:46.


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