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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [SOLUCIONADO] Headers HttpWebRequest
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Headers HttpWebRequest  (Leído 8,239 veces)
TMarmol

Desconectado Desconectado

Mensajes: 89


Just Learning


Ver Perfil WWW
[SOLUCIONADO] Headers HttpWebRequest
« en: 30 Junio 2014, 23:07 pm »

Hace tiempo que descubrí un addon de Firefox que "enmascara" tu dirección IP, más concretamente genera una dirección aleatoria para los siguientes headers:
Código:

HTTP_X_FORWARDED_FOR :

HTTP_CLIENT_IP :

HTTP_VIA :

Hoy se me ha ocurrido implementar eso en un programa de Visual .Net, no tengo mucha esperiencia con el WebRequest, esto es lo que he intentado:
Código
  1.            MyHttpWebRequest.Headers.Add("HTTP_X_FORWARDED_FOR", "122.141.229.153")
  2.            MyHttpWebRequest.Headers.Add("HTTP_CLIENT_IP", "122.141.229.153")
  3.            MyHttpWebRequest.Headers.Add("HTTP_VIA", "122.141.229.153")                  'La IP es una aleatoria que me he inventado
  4.            MyHttpWebRequest.Headers.Set("HTTP_X_FORWARDED_FOR", "122.141.229.153")
  5.            MyHttpWebRequest.Headers.Set("HTTP_CLIENT_IP", "122.141.229.153")
  6.            MyHttpWebRequest.Headers.Set("HTTP_VIA", "122.141.229.153")
Pero no  da resultado, lo he probado con la propia pagina del addon que te devuelve estos valores para que compruebes si te funciona bien, pero en la respuesta del servidor, no les asigna ningún valor (la pagina en cuestión es esta : http://ipflood.paulds.fr/?p=demo), si todo funcionase bien, debería devolver lo siguiente:
Código:
HTTP_X_FORWARDED_FOR :122.141.229.153

HTTP_CLIENT_IP :122.141.229.153

HTTP_VIA :122.141.229.153
pero los devuelve en blanco.
Leí en el MSDN de Microsoft que el método "Add" produce una excepción si se intenta modificar un Header protegido, pero mi programa no devuelve ninguna excepción, así que no debe de estar protegido.
¿Alguna sugerencia?
Gracias.


« Última modificación: 4 Julio 2014, 22:28 pm por kub0x » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda Headers HttpWebRequest
« Respuesta #1 en: 30 Junio 2014, 23:56 pm »

¿Ese addon SOLO modifica esos campos? Podría ser que haga algo más, y por eso el servidor ese no te lo reconoce.


En línea

TMarmol

Desconectado Desconectado

Mensajes: 89


Just Learning


Ver Perfil WWW
Re: Ayuda Headers HttpWebRequest
« Respuesta #2 en: 1 Julio 2014, 00:19 am »

¿Ese addon SOLO modifica esos campos? Podría ser que haga algo más, y por eso el servidor ese no te lo reconoce.

Sinceramente, no lo sé.
Estas son las paginas que hablan sobre el addon:
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: Ayuda Headers HttpWebRequest
« Respuesta #3 en: 1 Julio 2014, 00:50 am »

No soy un experto en Redes, pero a mi entender "Simular el uso de un proxy" como explican en la página del addon, no creo que "simular" signifique solamente setear un par de Headers... o quizás si, no lo se, pero seguramente que ese servicio haga algo más como te han comentado...

Aquí tienes algunas posibles razones por las que los valores que obtienes están en blanco, quizás pueda servir para descartar, según esto, se supone que si no usas un proxy los valores estarán vacios:

In above sample code, HTTP_VIA is used to judge whether the client is using proxy server. If client uses proxy server, then the web method will try to obtain IP address behind the proxy server. In many situations, the IP addresses we get are probably the addresses of proxy server. Below is the information on HTTP proxy:

 

1.  Not Use Any Proxy Server:

REMOTE_ADDR = IP address of client
HTTP_VIA = No value or No display
HTTP_X_FORWARDED_FOR = No value or No display

2.  Use Transparent Proxies:

REMOTE_ADDR = IP address of proxy server
HTTP_VIA = IP address of proxy server
HTTP_X_FORWARDED_FOR = Real IP address of client

3.  Use Normal Anonymous Proxies:

REMOTE_ADDR = IP address of proxy server
HTTP_VIA = IP address of proxy server
HTTP_X_FORWARDED_FOR = IP address of proxy server

4.     Use Distorting Proxies:

REMOTE_ADDR = IP address of proxy server
HTTP_VIA = IP address of proxy server
HTTP_X_FORWARDED_FOR = Random IP address

5.     Use High Anonymity Proxies (Elite proxies):

REMOTE_ADDR = IP address of proxy server
HTTP_VIA = No value or No display
HTTP_X_FORWARDED_FOR = No value or No display

Saludos
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda Headers HttpWebRequest
« Respuesta #4 en: 1 Julio 2014, 01:41 am »

por otro lado... si cambias tu ip de cliente en la cabecera no esperes respuesta, ya que esa es la dirección a la cual el servidor responderá
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda Headers HttpWebRequest
« Respuesta #5 en: 1 Julio 2014, 02:20 am »

por otro lado... si cambias tu ip de cliente en la cabecera no esperes respuesta, ya que esa es la dirección a la cual el servidor responderá

El servidor responde por el socket abierto, ¿no es así?


El addon ese a lo mejor redirige el tráfico a través de un proxy de su servidor, o algo así.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda Headers HttpWebRequest
« Respuesta #6 en: 1 Julio 2014, 02:24 am »

no se como es el asunto... pero insisto si cambias la ip de origen, el servidor responderá a esa ip...


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
TMarmol

Desconectado Desconectado

Mensajes: 89


Just Learning


Ver Perfil WWW
Re: Ayuda Headers HttpWebRequest
« Respuesta #7 en: 1 Julio 2014, 10:04 am »

El servidor responde por el socket abierto, ¿no es así?


El addon ese a lo mejor redirige el tráfico a través de un proxy de su servidor, o algo así.

He "investigado" un poco y la traducción de un fragmento de la web del addon dice lo siguiente:

Citar
¿Cómo funciona?
Puedes pensar que si se pudiera sobrescribir cualquier información existente sobre tu IP yo lo habría hecho(o alguien lo hubiera hecho hace tiempo)
Pero actualmente es un poco mas complicado: Cuando mandamos un petición a un servidor, le proporcionas varia información sobre tu dirección IP : Tres de ellos provienen de la capa de aplicación (Application Layer) y el ultimo viene de la capa de Transporte (Transport Layer). Este ultimo no puedo modificarlo: no obtendrías ninguna respuesta a tu petición si lo estuviera. Pero las otras tres pueden ser sobrescritas sin ninguna consecuencia para tu navegación...

Estos tres Headers fueron creados para proporcionar informacion de la IP real de una persona que nevega a través de un servidor proxy. Así que cuando activas IPFuck, las paginas webs que visites pensaran que tu IP real es un servidor Proxy y (Si la pagina web está hecha correctamente) se centrará en la IP falsa que estás mandando...

Muchas paginas webs tratan de averiguar quien está detras de un servidor proxy. Si no me crees ( no me importa), comprueba esta busqueda de google :http://www.google.com/#hl=en&source=hp&q=get+real+ip+address+php Muchos de los snipplets que salen ahí comprobarán los HTTP Headers (los que hemos modificado) antes que la informacion de "Transport Layer" ('REMOTE_ADDR').

La traducción es cosa mía, puede que no esté bien del todo.  :silbar:
Aún que al principio se contradice un poco con el resto del texto, según eso simplemente está sobrescribiendo los Headers que mencioné en el primer post.


EDITO

Ya lo he solucionado, el problema era el nombre de los headers, el nombre correcto es
Citar
HTTP_X_FORWARDED_FOR    ---  X-Forwarded-For
HTTP_CLIENT_IP                  ---  CLIENT-IP
HTTP_VIA                            ---  VIA

Cambiando eso en mi código ya me permite modificarlo:
Código
  1. 'GetNext es una función para generar un numero aleatorio
  2. MyHttpWebRequest.Headers.Set("X-Forwarded-For", GetNext(25, 255) & "." & GetNext(25, 255) & GetNext(25, 255) & "." & GetNext(25, 255))
  3. MyHttpWebRequest.Headers.Set("CLIENT-IP", GetNext(25, 255) & "." & GetNext(25, 255) & GetNext(25, 255) & "." & GetNext(25, 255))
  4. MyHttpWebRequest.Headers.Set("VIA", GetNext(25, 255) & "." & GetNext(25, 255) & GetNext(25, 255) & "." & GetNext(25, 255))
  5.  
Aquí pongo unas capturas de mi programa:
Interfaz                                                                          Boton Refresh
 
Boton Renew                                                                          Boton Renew
 

En el HTTP_VIA solo se ven los primeros digitos por un problema al parsear la respuesta, ya lo he solucionado, pero me da pereza arreglar las capturas.
El codigo basicamente es este:
Código
  1. Public Function Web(url As String, IP As Boolean)
  2.        Dim MyUrl As String = String.Format(url)
  3.        Dim MyHttpWebRequest As HttpWebRequest = CType(HttpWebRequest.Create(MyUrl), HttpWebRequest)
  4.        MyHttpWebRequest.Credentials = CredentialCache.DefaultCredentials
  5.        'MyHttpWebRequest.Proxy = New WebProxy("86.51.26.20:8888")
  6.        MyHttpWebRequest.UserAgent = "Mozilla/4.0"
  7.        If IP = True Then  'Al pulsar el boton Renew el parametro IP es = a True mientras que el Boton Refres el parametro IP = False
  8.            MyHttpWebRequest.Headers.Set("X-Forwarded-For", GetNext(25, 255) & "." & GetNext(25, 255) & GetNext(25, 255) & "." & GetNext(25, 255))
  9.            MyHttpWebRequest.Headers.Set("CLIENT-IP", GetNext(25, 255) & "." & GetNext(25, 255) & GetNext(25, 255) & "." & GetNext(25, 255))
  10.            MyHttpWebRequest.Headers.Set("VIA", GetNext(25, 255) & "." & GetNext(25, 255) & GetNext(25, 255) & "." & GetNext(25, 255))
  11.        End If
  12.        Dim MyHttpWebResponse As HttpWebResponse = CType(MyHttpWebRequest.GetResponse(), HttpWebResponse)
  13.        Dim MyStream As Stream = MyHttpWebResponse.GetResponseStream
  14.        Dim MyStreamReader As StreamReader = New StreamReader(MyStream)
  15.        Dim MyHtml As String = MyStreamReader.ReadToEnd
  16.        'Dim MyHtmlEnLineas() As String = Split(MyHtml,vbCrLf)
  17.        'Dim MyLinea As String = MyHtmlEnLineas(linea)
  18.        'MyLinea = Mid(MyLinea, mid1, Len(MyLinea) - mid2)
  19.        Return MyHtml
  20.        MyUrl = Nothing
  21.        MyHttpWebRequest = Nothing
  22.        MyHttpWebResponse = Nothing
  23.        MyStream = Nothing
  24.        MyStreamReader = Nothing
  25.        MyHtml = Nothing
  26.    End Function

Y ya está listo para implementarlo en cualquier programa, ahora probaré si también funciona con el WebBrowser.
Gracias por la información que me habéis proporcionado
« Última modificación: 1 Julio 2014, 13:42 pm por TMarmol » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda Headers HttpWebRequest
« Respuesta #8 en: 1 Julio 2014, 13:37 pm »

ahh ya, lo que hace es invertir los papeles XD
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
TMarmol

Desconectado Desconectado

Mensajes: 89


Just Learning


Ver Perfil WWW
Re: Ayuda Headers HttpWebRequest
« Respuesta #9 en: 1 Julio 2014, 13:51 pm »

La opción de insertar código de la web tiene algún que otro bug, si lo haces a la primera todo va bien.


Si modificas el mensaje 1 vez pasa esto:



Cuando modificas por 3ª vez y arreglas los numeros esos pasa esto.



No se si solo me pasa a mi, pero molesta
« Última modificación: 1 Julio 2014, 13:56 pm por TMarmol » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA] Usar Httpwebrequest
.NET (C#, VB.NET, ASP)
.:Weeds:. 7 6,485 Último mensaje 7 Octubre 2010, 18:40 pm
por .::IT::.
¿Qué es un HTTPWEBREQUEST / WEBREQUEST?
.NET (C#, VB.NET, ASP)
avmiitxe 4 4,828 Último mensaje 18 Abril 2012, 17:31 pm
por avmiitxe
Pregunta HttpWebRequest c#
.NET (C#, VB.NET, ASP)
lamique 1 2,365 Último mensaje 22 Febrero 2013, 17:49 pm
por lamique
Problema al intentar publicar contenido con HttpWebRequest
.NET (C#, VB.NET, ASP)
lombervid 9 5,650 Último mensaje 12 Septiembre 2013, 22:11 pm
por lombervid
Enviar cookies en HttpWebRequest C#
.NET (C#, VB.NET, ASP)
Miguel2706 1 2,290 Último mensaje 1 Noviembre 2013, 00:22 am
por Spiritdead5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines