Autor
|
Tema: Captcha con dataid (Leído 12,209 veces)
|
.:Weeds:.
Desconectado
Mensajes: 122
|
Bueno queria que me dierais un poco de orientacion sobre este reto captcha La web en cuestion es http://www.mysms.es/El get: nation=0034&number= 6********&message= TEXTO+A+ENVIAR&Len=140&gcode=8223&dataid= 6ux82x749vvdwu&send=Send+SMS En el fiddler 2 me sale esto: http://www.mysms.es/img/image.php?dataid=6ux82x749vvdwuEsa es la url del captcha, pero no se como aplicarlo a mi programa, alguien que me explique un poco que hacer Saludos
|
|
|
En línea
|
|
|
|
.::IT::.
Desconectado
Mensajes: 167
|
.:Weeds:. como se que usas visual basic Private Function ReadCaptcha() As Image Try myCookie = New CookieContainer() ' Variable que contiene la Url de la funcion que devuelve el captcha Dim UrlCaptcha As String = "http://www.mysms.es/img/image.php?dataid=6ux82x749vvdwu" ' Declaramos la peticion Http Dim _HttpWebRequest As HttpWebRequest = CType(WebRequest.Create(UrlCaptcha), HttpWebRequest) ' Aqui asignamos el contenedor de las cookies ese mismo contenedor se ' usara cuando se realice la peticion para consultar el numero en el ' Procedimiento(GetInfo) _HttpWebRequest.CookieContainer = myCookie ' cuando un navegador hace una peticion envia sus credenciales que lo ' identifican(nombre de navegador,sistema operativo etc) entonces usar ' las credenciales por defecto de Internet Explorer _HttpWebRequest.Credentials = CredentialCache.DefaultCredentials ' Ahora Recuperamos la respuesta del servidor Dim _HttpWebResponse As HttpWebResponse = CType(_HttpWebRequest.GetResponse(), HttpWebResponse) ' Leer los bytes enviados por el servidor Dim _Stream As Stream = _HttpWebResponse.GetResponseStream ' Como savemos que los Bytes devueltos son una imagen entonces hacemos la convercion ; ' ah veces no son imagenes si no codigo html,binarios etc entonces la siguiente linea retornara error ' Ahora para saber que tipo de archivo tienes que leer los primeros bytes pero eso ya es otro cuento ' como se que es una imagen entonces lo convierto y eso es todo Return Image.FromStream(_Stream) Catch ex As Exception Throw ex End Try End Function
Donde myCookie es una variable global de tipo CookieContainer para que puedas usarla en otra peticion(POST GET) Nota: estoy revisando el codigo fuente del portal y encontre <input name='dataid' type='hidden' value='p427t7t6336cm4'> donde value es el id de la imagen entonces primero recoge el cookie container del portal junto con el id de la imagen, Otro punto por ejemplo si id=6ux82x749vvdwu siempre el codigo captcha es "8223" solo cambia el color de fondo direccion de la imagen, claro que podria cambiar pero es lo que ahora me eh dado cuenta.
|
|
« Última modificación: 28 Noviembre 2010, 15:32 pm por .::IT::. »
|
En línea
|
Simplemente .::IT::.
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
Aaaaa creo que lo empiezo a entender, entonces primero habria que leer el stream y identificar la id, despues de eso formar la imagen con esa id y hacer el get
Pero una cuestion, el fiddler 2 no me encuentras cookies, puede ser que no hagan falta en esta web?
Saludos y gracias por tus sabias respuestas .::IT::.
|
|
|
En línea
|
|
|
|
.::IT::.
Desconectado
Mensajes: 167
|
jaja esa pagina como que su reto captcha es muy deprimente basta con enviar el Id y el codigo captcha que se le asigno y eso seria todo no hay cookies tienes razón pero seguro en estos días se dan cuenta y lo arreglan, lo que si me gustaría saber es como hacen para enviar los mensajes gratis ????? Nota: de repente esos códigos cambian diariamente y talves para mañana o de aquí a unos días ya no sean validos, y tomando en cuenta que no hay cookies pues hombre recoge el html de la pagina con un HttpWebRequest lee el codigo pide la imagen , has tu envio POST-GET(para mi en la practican son lo mismo todo es conseptual,asi otros digan lo contrario jajaja).
|
|
« Última modificación: 28 Noviembre 2010, 17:17 pm por .::IT::. »
|
En línea
|
Simplemente .::IT::.
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
Mira llevo esto Dim vCodigoFuente As String = "" Dim id As String = "" Private Sub sms_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load sacarid() PictureBox1.Image = ReadCaptcha() End Sub Public Function sacarid() Try Dim req As HttpWebRequest = CType(WebRequest.Create("http://www.mysms.es"), HttpWebRequest) Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse) If res IsNot Nothing Then If res.StatusCode = HttpStatusCode.OK Then Dim stream As Stream = res.GetResponseStream() Using reader As New StreamReader(stream) vCodigoFuente = reader.ReadToEnd() End Using End If res.Close() End If Dim Lines() As String = vCodigoFuente.Split(vbNewLine) Me.id = Lines(0) id = Mid(id, 4898, 14) Catch MsgBox("Error") End Try End Function Private Function ReadCaptcha() As Image Try Dim UrlCaptcha As String = "http://www.mysms.es/img/image.php?dataid=" & id Dim _HttpWebRequest As HttpWebRequest = CType(WebRequest.Create(UrlCaptcha), HttpWebRequest) _HttpWebRequest.Credentials = CredentialCache.DefaultCredentials Dim _HttpWebResponse As HttpWebResponse = CType(_HttpWebRequest.GetResponse(), HttpWebResponse) Dim _Stream As Stream = _HttpWebResponse.GetResponseStream Return Image.FromStream(_Stream) Catch ex As Exception Throw ex End Try End Function
La imagen se me muestra correctamente pero no consigo hacer el post, no lo consigo nisiquiera poniendo el get en el chrome(cambiando la id y las letras del captcha), por que me pasa eso? Saludos
|
|
|
En línea
|
|
|
|
.::IT::.
Desconectado
Mensajes: 167
|
En el codigo que pusiste arriba veo que solo recoges el id y invocas ah la imagen captcha!!!!!!!
Nota: estas seguro que la pagina puede enviar mensajes gratis??
|
|
|
En línea
|
Simplemente .::IT::.
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
En el codigo que pusiste arriba veo que solo recoges el id y invocas ah la imagen captcha!!!!!!!
Nota: estas seguro que la pagina puede enviar mensajes gratis??
Si que los envia, lo he probado con mi movil El code de el get se me a olvidao ponerlo jaajajaja, pero lo estaba haciendo asi Dim webClient As System.Net.WebClient = New System.Net.WebClient() Dim result As String = webClient.DownloadString("http://www.mysms.es/?nation=0034&number=" & numero.text & "&message=TEXTO&Len=135&gcode=" & captcha.Text & "&dataid=" & id & "&send=Send+SMS")
|
|
|
En línea
|
|
|
|
.::IT::.
Desconectado
Mensajes: 167
|
usa un HttpWebRequest en lugar de un webclient prueba ah cambiar " http://www.mysms.es/?nation=0034&number=" & numero.text & "&message=TEXTO&Len=135&gcode=" & captcha.Text & "&dataid=" & id & "&send=Send+SMS" por " http://www.mysms.es/?nation=0034&number=" & numero.text & "&message=TEXTO&Len=135&gcode=" & captcha.Text & "&dataid=" & id Ahurita tengo que salir has prubas y mas pruebas primero con la url en el navegador ah ver si funciona y de hay ya lo automatizas con un lenguaje de programacion Nota: analiza bien las limitaciones del portal de repente solo permite un determinado numero de mensajes por ip o por celular.
|
|
« Última modificación: 28 Noviembre 2010, 19:32 pm por .::IT::. »
|
En línea
|
Simplemente .::IT::.
|
|
|
|
anikillador
Desconectado
Mensajes: 57
|
Mira llevo esto Dim vCodigoFuente As String = "" Dim id As String = "" Private Sub sms_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load sacarid() PictureBox1.Image = ReadCaptcha() End Sub Public Function sacarid() Try Dim req As HttpWebRequest = CType(WebRequest.Create("http://www.mysms.es"), HttpWebRequest) Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse) If res IsNot Nothing Then If res.StatusCode = HttpStatusCode.OK Then Dim stream As Stream = res.GetResponseStream() Using reader As New StreamReader(stream) vCodigoFuente = reader.ReadToEnd() End Using End If res.Close() End If Dim Lines() As String = vCodigoFuente.Split(vbNewLine) Me.id = Lines(0) id = Mid(id, 4898, 14) Catch MsgBox("Error") End Try End Function Private Function ReadCaptcha() As Image Try Dim UrlCaptcha As String = "http://www.mysms.es/img/image.php?dataid=" & id Dim _HttpWebRequest As HttpWebRequest = CType(WebRequest.Create(UrlCaptcha), HttpWebRequest) _HttpWebRequest.Credentials = CredentialCache.DefaultCredentials Dim _HttpWebResponse As HttpWebResponse = CType(_HttpWebRequest.GetResponse(), HttpWebResponse) Dim _Stream As Stream = _HttpWebResponse.GetResponseStream Return Image.FromStream(_Stream) Catch ex As Exception Throw ex End Try End Function
La imagen se me muestra correctamente pero no consigo hacer el post, no lo consigo nisiquiera poniendo el get en el chrome(cambiando la id y las letras del captcha), por que me pasa eso? Saludos acaso entiendes el codigo?' toca cojones........... eso es un aporte de IT que te dio en otro hilo, pero vamos me da que no sabes ni lo que es un while.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
captcha en php
PHP
|
wizache
|
2
|
2,603
|
31 Julio 2007, 23:11 pm
por wizache
|
|
|
Descifrar Captcha
Programación Visual Basic
|
& eDu &
|
5
|
8,415
|
25 Agosto 2008, 23:36 pm
por Lambda
|
|
|
Decodificar Captcha.
Ingeniería Inversa
|
garraSS
|
6
|
9,063
|
26 Octubre 2009, 18:02 pm
por garraSS
|
|
|
Captcha vb.net
.NET (C#, VB.NET, ASP)
|
diego_lp
|
1
|
5,221
|
25 Septiembre 2010, 03:01 am
por [D4N93R]
|
|