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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22
131  Programación / Programación Visual Basic / Re: enviar datos de visual basic a una pagina web en: 31 Agosto 2007, 02:02 am
Para aprender desde el fondo, no useis el winsock que es un ocx mas prefabricado.
Para hacer peticiones http usar las apis que os permiten mandar cabeceras, elegir el metodo, cookies, recibir la pagina y demas...
Código:
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

http://articulos.conclase.net/jm/prog/cpp/wininethttp_2.html

Sigo sosteniendo que el api wininet es un simplificador de todo esto, tanto  en el protocolo http como el ftp, no quiero discutir mal por todo esto, es mi punto de vista, esta api es propia del iexplorer, incluso maneja el mismo canche, pero que quede claro que no es la forma nativa de hacer las cosas, esto no ayuda a entender el protoclo solo ayuda a entender a usar el api wininet (no digo que este mal, nunca viene de mas) , pero el tema es que si algun dia quieres hacer un server y no un cliente, no vas a entender como se hace porque solo aprendiste a usar un simplificador y nunca aprendiste el protocolo.

Saludos



Esto lo iva a decir pero te adelantaste :P, lo mejor es usar directamente las apis que contiene la libreria wsock32.dll, ya que esta es la que trae por defecto el windows, como lo es recv, Send, setsockopt, getsockopt, entre otras.
Mi intencion era solo mostrar como manejar las cabeceras en las peticiones http. Si hago el ejemplo con las apis de wsock32.dll, quedaria lo mismo sino que con mas codigo :P
saludos y bueno, gracias ;)
132  Programación / Programación Visual Basic / Re: Programacion en red en: 30 Agosto 2007, 06:09 am
Me suena a conexion de una parte de argentina, Zinc sabe de que hablo :P, me parece que tu ISP asigna la misma IP para cada usuario, entonces la conexion saliente es una misma ip, y ni modo de comunicarte con ella, ahi te mando mi msn para que miremos que si da :P
Saludos ;)
133  Programación / PHP / Re: PHP e IRC en: 30 Agosto 2007, 06:06 am
Jeje q viva yashira! xD
Ahora continuando con el tema mira la pagina de donde podes descargar los applets: http://www.pjirc.com/main.php
Es el mismo sistema que usa wl Webchat de yashira, es gratis y facil de configurar :P
saludos ;)
134  Programación / Programación Visual Basic / Re: Hola, nececito una mano en: 30 Agosto 2007, 04:12 am
Gracias por apreciar la intencion :P, si encuentro algo referente a lo que buscas, te mando un mensaje donde lo podes encontrar o lo posteo aca mismo en el foro.
Saludos ;)
135  Programación / Programación Visual Basic / Re: enviar datos de visual basic a una pagina web en: 30 Agosto 2007, 04:09 am
Es bastante interesante el protocolo html, las cabeceras y demas, pero sino se quiere complicar que use el control de IE con el que puede rellenar formularios y mandarlos en dos lineas. Busca en este subforo que e puesto algun code.
No es por nada, pero eso que escribiste sono muy mediocre, me parece que la mejor forma de aprender algo es exprimiendolo hasta el fondo, no se trata de coger componentes que ya estan hechos y hacer una simple linea de codigo e indicarle que use tal evento de tal componente. Y no creo tampoco que TheWarrior se interese por cosas simples. Entonces mejor me dicen no vuelvo a hacer manualcillos, porque no voy a estar botando el tiempo como lo hice haciendo eso por personas que solo se interesan por lo facil.

Saludos ;)
136  Programación / PHP / Re: Generar archivo descargable en: 30 Agosto 2007, 03:10 am
Se puede algo como:
Código
  1. header("Information: ".filesize("archivo.xls"));
  2. $fp = fopen("archivo.xls","r");
  3. fpassthru($fp);
  4. fclose($fp);
  5.  

saludos ;)
137  Programación / Programación Visual Basic / Re: Como cRear un Cracker para Hotmail?(mito destruido) en: 30 Agosto 2007, 01:16 am
Tambien se puede programar de tal forma en donde se le asigne un rango de ataque a cada pc, y que si lo encuentra ponga el pass en una pagina. Algo asi como un tipo de ataque distribuido, imaginenses unas cientos de pcs dandole a un correo, no creo que tarde tanto...
jajaj solo son ideas :P no me culpen xD

saludos ;)
138  Programación / Programación Visual Basic / Re: Programacion en red en: 30 Agosto 2007, 01:06 am
La conexion se te filtraba porque lo que hace el cliente es ir hasta fuera de tu router y regresar, pero al regresar debe haber una regla que diga filtrar tal puerto. Lo que podes hacer es mejor vos cargas el cliente y que en otra pc este el servidor, asi no se te filtra la conexion. La conexion de salida si da, pero de entrada no...

Saludos :P
139  Programación / Programación Visual Basic / Re: enviar datos de visual basic a una pagina web en: 30 Agosto 2007, 00:56 am
Ya esta:
Bueno, es un rollo interesante, tenemos que conocer muy bien la estructura de una peticion HTTP
primero miremos con el metodo GET y luego con el POST

Metodo GET.
1er paso: Identificar Variables
Entremos a mirar cualquier pagina, en este caso la pagina que valida los html (http://validator.w3.org/) y en esta localizamos en el codigo fuente la parte de los datos del formulario:
Código
  1. <form method="get" action="check">
  2. ...
  3. <label title="Address of page to Validate" for="uri">Address:</label>
  4. <input type="text" name="uri" id="uri" size="45" /> <!-- Variable1 -->
  5. ...
  6. <input type="submit" title="Submit for validation" value="Check" />
  7. </form>
  8.  
Las variables en este caso usadas para la peticion es unicamente una: "uri", y el contenido es la web que queremos validar.
El "Action" define a que pagina se le pasan los parametros, y el "Method" el metodo usado, puede ser GET o POST. En este caso GET.
Cuando hacemos click al boton de Check, lo que pasa es que estas variables son enviadas usando la URL. Queda entonces asi:
http://validator.w3.org/check?uri=http://web

2do paso: Metodo GET en peticiones http
La estructura para enviar datos por metodo get es el siguiente:

Código:
GET /pagina?var1=xxx&var2=xxx HTTP/1.1
Host: Servidor
Connection: close[enter]
[enter]

3er paso: Armando el codigo en visual
Vamos a poner un componente Winsock, dos cajas de texto, dos botones y un timer:
Winsock: Para enviar datos al servidor
Caja1: Contiene variable 1 que se va a pasar por el GET = Multiline a true, para soportar varias lineas
Caja2: Recibe la respuesta del servidor = Propiedad enabled a False
Boton1: Conecta
Boton2: Envia datos
Timer: Para vigilar el estado del winsock = Intervalo a 500 milisegundos

Código
  1. Const Host As String = "validator.w3.org" 'Constante del host
  2. Private Sub Command1_Click()
  3. Winsock1.Connect Host, 80 'Conectamos al host
  4. End Sub
  5.  
  6. Private Sub Command2_Click()
  7. Dim Peticion$
  8. Peticion = "GET /check?uri=http://" & Text2.Text & " HTTP/1.1" & vbCrLf & _ 'Text2.text = A la web que queremos validar .. /check?uri=http://...
  9.            "Host: " & Host & vbCrLf & _
  10.            "Connection: close" & vbCrLf & vbCrLf 'Armamos la peticion segun la estructura que te di
  11. Winsock1.SendData Peticion 'Mandamos la peticion
  12. End Sub
  13.  
  14. Private Sub Timer1_Timer()
  15. If Winsock1.State = sckConnected Then 'Checamos si la conexion es activa o no
  16.    Command1.Enabled = False
  17.    Command2.Enabled = True
  18. Else
  19.    Command1.Enabled = True
  20.    Command2.Enabled = False
  21. End If
  22. End Sub
  23.  
  24. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  25. Dim Datos$
  26. Winsock1.GetData Datos, vbString, bytesTotal 'Obtenemos los datos
  27. Text1.Text = Datos
  28. End Sub
  29.  
  30. 'Si queres grabar la respuesta en un html podes reemplazar lo anterior a
  31. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  32. Dim Datos$, Cabecera, Html$, Canal% 'Declaramos variables
  33. Winsock1.GetData Datos 'Obtenemos datos
  34. Text1.Text = Datos 'Ponemos contenido en la caja de texto
  35. If InStr(1, Datos, vbCrLf & vbCrLf, vbTextCompare) <> 0 And InStr(1, Datos, "HTTP/1.1 200 OK", vbTextCompare) Then 'Si es cabecera de servidor entonces..
  36.    Cabecera = Split(Datos, vbCrLf & vbCrLf, 2) 'Dividimos la respuesta en dos partes, la cabecera y el html
  37.    Html = Cabecera(1) 'El html es la segunda parte, la que es luego de los dos vbCrLf
  38. Else
  39.    Html = Datos 'Sino es cabecera entonces el html son los datos recibidos
  40. End If
  41. Canal = FreeFile
  42. Open App.Path & "\Respuesta.html" For Binary Access Write As Canal 'Abrimos el archivo de respuesta.html en modo binario
  43. Put #Canal, LOF(Canal) + 1, Html 'Escribimos al final del archivo
  44. Close #Canal 'Cerramos canal
  45. End Sub
  46.  

Metodo POST:
1er paso: Identificar variables
Al igual que el anterior caso, vamos a ver una pagina para poder enviar el post, en este caso quiero hacerle post a elhacker.net en un script php que tiene para cifrar cosas :P, nos vamos a http://elhacker.net/sneak.php
En este caso vemos un codigo diferente al anterior:
Código
  1. <form action="/sneak.php" method="post">
  2. ...
  3. <textarea name="text" ... ></textarea>
  4. <select name="cryptmethod">
  5. ...
  6. <option value="md5">MD5 Crypt (one way)</option>
  7. ...
  8. </select>
  9. <input type="submit" name="submit" value="Codificar" />
  10. ...
  11. </form>
  12.  
Ahora, lo enviado es lo que vamos a codificar, probemos con "HaDeS", text=HaDeS
El name cryptmethod es el metodo que vamos a elegir para cifrar el contenido, cryptmethod=md5
Y enviamos igualmente el valor del submit, submit=Codificar
La peticion entonces seria: text=HaDeS&cryptmethod=md5&submit=Codificar

2do paso: Metodo Post en peticiones http
La estructura del metodo post va asi:

Código:
POST /pagina HTTP/1.1
Host: Servidor
Connection: close
Content-Length: Longitud de lo que enviamos[enter]
[enter]
Lo que enviamos

3er paso: Armando el codigo en visual
Vamos a poner el mismo codigo anterior, pero modificando la peticion...
Código
  1. Const Host As String = "validator.w3.org" 'Constante del host
  2. Private Sub Command1_Click()
  3. Winsock1.Connect Host, 80 'Conectamos al host
  4. End Sub
  5.  
  6. Private Sub Command2_Click()
  7. Dim Peticion$, Datos$
  8. Datos = "text=" & Text2.Text & "&cryptmethod=md5&submit=Codificar"
  9. Peticion = "POST /sneak.php HTTP/1.1" & vbCrLf & _
  10.            "Host: " & Host & vbCrLf & _
  11.            "Connection: close" & vbCrLf & _
  12.            "Content-Type: application/x-www-form-urlencoded" & vbCrLf & _
  13.            "Content-Length: " & Len(Datos) & vbCrLf & vbCrLf & _
  14.            Datos
  15. Winsock1.SendData Peticion
  16. End Sub
  17.  
  18. Private Sub Timer1_Timer()
  19. If Winsock1.State = sckConnected Then 'Checamos si la conexion es activa o no
  20.    Command1.Enabled = False
  21.    Command2.Enabled = True
  22. Else
  23.    Command1.Enabled = True
  24.    Command2.Enabled = False
  25. End If
  26. End Sub
  27.  
  28. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  29. Dim Datos$
  30. Winsock1.GetData Datos, vbString, bytesTotal 'Obtenemos los datos
  31. Text1.Text = Datos
  32. End Sub
  33.  
  34. 'Si queres grabar la respuesta en un html podes reemplazar lo anterior a
  35. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  36. Dim Datos$, Cabecera, Html$, Canal% 'Declaramos variables
  37. Winsock1.GetData Datos 'Obtenemos datos
  38. Text1.Text = Datos 'Ponemos contenido en la caja de texto
  39. If InStr(1, Datos, vbCrLf & vbCrLf, vbTextCompare) <> 0 And InStr(1, Datos, "HTTP/1.1 200 OK", vbTextCompare) Then 'Si es cabecera de servidor entonces..
  40.    Cabecera = Split(Datos, vbCrLf & vbCrLf, 2) 'Dividimos la respuesta en dos partes, la cabecera y el html
  41.    Html = Cabecera(1) 'El html es la segunda parte, la que es luego de los dos vbCrLf
  42. Else
  43.    Html = Datos 'Sino es cabecera entonces el html son los datos recibidos
  44. End If
  45. Canal = FreeFile
  46. Open App.Path & "\Respuesta.html" For Binary Access Write As Canal 'Abrimos el archivo de respuesta.html en modo binario
  47. Put #Canal, LOF(Canal) + 1, Html 'Escribimos al final del archivo
  48. Close #Canal 'Cerramos canal
  49. End Sub
  50.  

Y listo, creo que eso es, ya si queres hacer todo automatico con el winsock, podes dividir la respuesta en lineas, analizando cada linea, sacas las variables y el metodo, y aplicas lo de arriba
saludos :P
140  Programación / Programación Visual Basic / Re: enviar datos de visual basic a una pagina web en: 29 Agosto 2007, 23:54 pm
ya te doy la respuesta :P estoy elaborando manualcillo xD
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines