elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Login automático autenticación fba
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Login automático autenticación fba  (Leído 2,238 veces)
el_doctor

Desconectado Desconectado

Mensajes: 57


Ver Perfil
Login automático autenticación fba
« en: 13 Octubre 2015, 06:50 am »

¿Es posible autenticarse de forma automática en un sitio que usa autenticación basada en formularios? Poder enviar mediante un post un usuario y contraseña un membership ya configurado en la base de datos y que estén estáticos en el web.config del sitio externo para ingresar.


En línea

el_doctor

Desconectado Desconectado

Mensajes: 57


Ver Perfil
Re: Login automático autenticación fba
« Respuesta #1 en: 16 Octubre 2015, 17:16 pm »

Hola haciendo un poco de investigación encontré una posible solución haciendo un post con httpWebRequest; actualmente puedo hacer un post al sitio externo desde mi sitio enviando el post con los mismos valores que el sito externo los envía esto verificándolo con tamper de firefox; y me retorna el contenido html de la página html que muestra después de logearse; pero lo que quiero es validar la autenticación en el navegador por lo que necesito la cookie que entrega el host cuando uno se logea desde el navegador; pero no logro obtenerla; si alguien puede ayudarme se los agradezco. Dejo el código que tengo hasta el momento:

Código
  1. string url = ConfigurationManager.AppSettings.Get("url");
  2.  
  3.            CookieContainer myCookie = new CookieContainer();
  4.  
  5.            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
  6.  
  7.            request.CookieContainer = myCookie;
  8.            request.Method = "GET";
  9.            request.KeepAlive = false;
  10.  
  11.            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  12.  
  13.            Stream responseStream = response.GetResponseStream();
  14.  
  15.            StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
  16.  
  17.            string src = reader.ReadToEnd();
  18.  
  19.            //Get ViewState
  20.            string VSFlag = "id=\"__VIEWSTATE\" value=\"";
  21.  
  22.            int i = src.IndexOf(VSFlag) + VSFlag.Length;
  23.            int j = src.IndexOf("\"", i);
  24.  
  25.            string viewState = src.Substring(i, j - i);
  26.  
  27.            //Get ViewStateGenerator
  28.            string VSGenF = "id=\"__VIEWSTATEGENERATOR\" value=\"";
  29.  
  30.            i = src.IndexOf(VSGenF) + VSGenF.Length;
  31.            j = src.IndexOf("\"", i);
  32.  
  33.            string viewStateGenerator = src.Substring(i, j - i);
  34.  
  35.            //Event Validation
  36.            string eventValidationF = "id=\"__EVENTVALIDATION\" value=\"";
  37.            i = src.IndexOf(eventValidationF) + eventValidationF.Length;
  38.            j = src.IndexOf("\"", i);
  39.  
  40.            string eventValidation = src.Substring(i, j - i);
  41.  
  42.            string submit = "Sign In";
  43.            string user = ConfigurationManager.AppSettings.Get("user");
  44.            string password = ConfigurationManager.AppSettings.Get("pass");
  45.  
  46.            viewState = HttpUtility.UrlEncode(viewState);
  47.            eventValidation = HttpUtility.UrlEncode(eventValidation);
  48.            viewStateGenerator = HttpUtility.UrlEncode(viewStateGenerator);
  49.            submit = HttpUtility.UrlEncode(submit);
  50.            user = HttpUtility.UrlEncode(user);
  51.            password = HttpUtility.UrlEncode(password);
  52.  
  53.            string strPost = "POSTDATA=__LASTFOCUS=&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE={0}"
  54.                + "&__VIEWSTATEGENERATOR={1}&__EVENTVALIDATION={2}&ctl00%24PlaceHolderMain%24signInControl%24UserName={3}"
  55.                + "&ctl00%24PlaceHolderMain%24signInControl%24password={4}&ctl00%24PlaceHolderMain%24signInControl%24login={5}";
  56.  
  57.            string postStr = string.Format(strPost, viewState, viewStateGenerator, eventValidation, user, password, submit);
  58.  
  59.            byte[] postData = Encoding.ASCII.GetBytes(postStr);
  60.  
  61.            request = WebRequest.Create(url) as HttpWebRequest;
  62.            request.Method = "POST";
  63.            request.Referer = url;
  64.            request.KeepAlive = true;
  65.            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0";
  66.            request.ContentType = "application/x-www-form-urlencoded";
  67.            request.CookieContainer = myCookie;
  68.  
  69.  
  70.  
  71.            Cookie ck = new Cookie("SworkCookie", string.Empty);
  72.  
  73.            ck.Domain = request.RequestUri.Host;
  74.  
  75.            request.CookieContainer.Add(ck);
  76.            request.CookieContainer.Add(response.Cookies);
  77.  
  78.            request.CookieContainer = myCookie;
  79.            request.ContentLength = postData.Length;
  80.  
  81.            //------------
  82.  
  83.  
  84.            //submit
  85.            Stream outputStream = request.GetRequestStream();
  86.            outputStream.Write(postData, 0, postData.Length);
  87.            outputStream.Close();
  88.  
  89.            //accept
  90.            response = request.GetResponse() as HttpWebResponse;          
  91.  
  92.  
  93.            responseStream = response.GetResponseStream();
  94.            reader = new StreamReader(responseStream, Encoding.UTF8);
  95.  
  96.            string srcString = reader.ReadToEnd();


En línea

OscarCadenas_91

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Login automático autenticación fba
« Respuesta #2 en: 24 Octubre 2015, 07:54 am »

Hola, si dices que encontraste la posible solucion entonces solo tienes que encontrar  el lugar donde entrega las cookies
la propiedad httpresponse.cookies: https://msdn.microsoft.com/es-es/library/system.net.httpwebresponse.cookies%28v=vs.110%29.aspx
  proporciona una instancia de la CookieCollection clase que contiene las cookies asociadas a esta respuesta.

Supongo que si despues de hacer la peticion para iniciar sesion en el response te mandara las cookies de inicio de sesion.
Solo tendrias que crear una funcion para Iniciar Sesion  y que el tipo de retorno sea CookieCollection
No se si estoy en lo correcto, pero es lo unico que se me ocurre.

con relacion a codigo no te puedo ayudar ya que aun no se mucho.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Autenticación web
Hacking Wireless
miguelskk 2 2,560 Último mensaje 3 Enero 2012, 21:48 pm
por miguelskk
Autenticación wpa
Hacking Wireless
andrexpunk 0 2,141 Último mensaje 17 Agosto 2012, 13:36 pm
por andrexpunk
Login Automatico
Scripting
kran19 1 1,861 Último mensaje 22 Julio 2017, 20:38 pm
por engel lex
[Pregunta]: ¿Cómo desactivo este login automático que tiene google?
Desarrollo Web
Leguim 0 2,174 Último mensaje 21 Diciembre 2022, 17:57 pm
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines