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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 [74] 75 76 77
731  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 29 Julio 2014, 00:38 am
He probado a crear un archivo prueba.php que escribe en un archivo prueba.a de tal forma para comprobar que llega información:

Código:
<?php
$prueba=htmlspecialchars($_POST["prueba"]);
$fp=fopen("./archivos/prueba.a","wt");
fwrite($fp,$prueba);
fclose($fp);
?>

Sin éxito, puse el 1.1 y nada ni una variable coge, te llegaron los mp ivancea? xD

Ahora respecto a lo de daryo no se como va eso de las cabeceras del navegador, la verdad acabo de instalarme una extension en el filezilla que pusistes, y para que me vale eso? No pude ver ninguna cabecera de POST, de todas formas no es necesario pues el programa C debería ser capaz de enviar datos a la web sin necesidad de intermediarios.

Que cojones me voy a istalar el wire haber que sale xD...

Edito: Puedo verificar que reconoce conexiones a la ip del servidor TCP puerto 80, hay también paquetes de respuesta del server, pero no consigo encontrar la cabecera en ningún paquete.
732  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 28 Julio 2014, 18:38 pm
Te llegaron mis mensajes privados? Es que no me aparece nada en la bandeja de entrada, he separado el script para subir archivo del index.php, esta en el directorio public_html, y se llama script.php, tiene esto:

Código:
<?php
$nombre=htmlspecialchars($_POST["nombre"]);
$contenido=htmlspecialchars($_POST["contenido"]);
$fp=fopen("./archivos/" . $nombre . ".a","at");
fwrite($fp,$contenido);
fclose($fp);
?>

Ahora conecto a ese script, lo que tengo en el post es esto:

Código:
 len=strlen("nombre=post_ok&contenido=exito");
        itoa(len,cad,10);

        strcpy(buffer,"POST /script.php HTTP/1.0\r\n");
        strcat(buffer,"Host: mipagina.freedom.com\r\n");
        //strcat(buffer,"Referer: http://www.mipagina.freedom.com/index.php\r\n");
        strcat(buffer,"Content-type: application/x-www-form-urlencoded\r\n");
        strcat(buffer,"Content-length: ");
        strcat(buffer,cad);
        strcat(buffer,"\r\n\r\n");
        strcat(buffer,"nombre=post_ok&contenido=exito");
        printf("%s\n",buffer);

Pero no sube archivo al ejecutar el programa sigue sin ir xd
733  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 27 Julio 2014, 23:46 pm
Gracias a ambos por la respuesta, te he enviado un mp ivancea, pero no me aparece en la bandeja de salida, lo he vuelto a intentar y me ha dicho que ya lo había mandado antes, pero sigue sin aparecer nada xD

Respecto a lo del servidor local veo que es una buena idea, aunque no sabemos si se comportará por igual que el server web que tengo, de todas formas mañana lo probaré haber que tal, según parece es igual que el server web, pongo contenidos en la carpeta como hacía en public_html y conecto a localhost.
734  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 27 Julio 2014, 11:23 am
He probado con GET, con POST, con htmlspecialchars, sin htmlspecialchars en el php, la cabecera la dejo igual, si meto cosas en la cabecera como el referer me da error,  de momento solo tengo en la cabecera HOST, Content-type, Content-length, y las variables. No sé. He visto POST que usan el agente de navegación en la cabecera y más cosas, no sé si hará falta algo de eso.
735  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 26 Julio 2014, 19:37 pm
Ya lo he probado y también he probado a poner esto en el script php:

Código:
$nombre=$_POST["nombre"];
$contenido=$_POST["contenido"];

Pero nada no funciona, habéis probado si os va a vosotros, no se vosotros que entendéis quizás os cueste menos porque yo sin apuntes, puedo buscar en google pero apenas consigo nada.
736  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 26 Julio 2014, 13:27 pm
Sigo pensando en el tema, me pregunto si puede ser que para enviar las variables, sea necesario enviar el login y password del servidor, primero, yo creo que no debería ser necesario pero puede erradicar ahí un posible problema, también puede ser un fallo de cabecera o que falte algo, no se nada de cabeceras HTTP, bueno esta es la que tengo, igual podemos probar con admin y pass, no se xD.

Código:
POST /index.php HTTP/1.0\r\n
Host: midominio.cam.com\r\n
//Referer: http://midominio.cam.com/index.php\r\n
Content-type: application/x-www-form-urlencoded\r\n
Content-length: 30 \r\n\r\n
nombre=post_ok&contenido=exito

Puede ser que falte algo, o sobre en la cabecera, si eso falla me pregunto si es necesario el login y password del server web para acceder a el envio de las variables que espero que no.
737  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 24 Julio 2014, 14:22 pm
Lo e intentado probar pero me da numerosos fallos, las variables en C se declaran solo en la cabecera, no se pueden poner a mitad de código como ocurre en java, hay algunas variables que no se para que sirven xD que no están definidas. Luego si tengo tiempo le dedico más tiempo, y lo retoco lo que pueda, gracias.
738  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 24 Julio 2014, 01:08 am
no se como hacer para recibir la respuesta del server, yo solo puse en el send lo que me dijiste conecto y mando el send, pero claro no puedo ver la respuesta, no tengo funcion en el programa para capturarla.

edito:
A que te refieres con pasar el dominio y subdominio en el  HOST, ahí solo tengo:
Código:
strcat(buffer,"Host: mipagina.free33.com\r\n");

Y la IP que uso es la que devuelve el ping a esa direccion.

edito con todo actualizado:

Código:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
#define ip "81.226.363.191"

int main()
{
    WSADATA wsa;
    struct sockaddr_in direccion;
    int sock, puerto=80,len;
    char buffer[200],cad[20];
    ssize_t n;

    WSAStartup(MAKEWORD(2,0),&wsa);

    if((sock=socket(AF_INET,SOCK_STREAM,0))==-1 )
    {
        printf("Problema al crear el socket");
        getch();
        exit(0);
    }
    else
    {
        direccion.sin_family=AF_INET;
        direccion.sin_port=htons(puerto);
        direccion.sin_addr.s_addr=inet_addr(ip);

        /*printf("%d\n",direccion.sin_family);
        printf("%d\n",direccion.sin_port);
        printf("%d\n",direccion.sin_addr.s_addr);*/

        len=strlen("nombre=nombre123correcto&contenido=123456");
        itoa(len,cad,10);
        strcpy(buffer,"POST /index.php HTTP/1.0\r\n");
        strcat(buffer,"Host: mipaginaweb.free33.com\r\n");
        strcat(buffer,"Content-type: application/x-www-form-urlencoded\r\n");
        strcat(buffer,"Content-length: ");
        strcat(buffer,cad);
        strcat(buffer,"\r\n");
        strcat(buffer,"nombre=nombre123correcto&contenido=123456");
        printf("%s\n",buffer);

        if(connect(sock,(struct sockaddr*)&direccion,sizeof(direccion))==-1)
        {
            printf("Error al conectar.\n");
            getch();
            exit(0);
        }
        printf("Conectado correctamente.\n");

        if((send(sock,buffer,strlen(buffer),0))==-1)
        {
            printf("Error Send.\n");
            getch();
            exit(0);
        }
        printf("Send realizado.\n");
    }
    return 0;
}


Ok he actualizado para no andar contando en el content-length he quitado un \r\n que creo que sobraba pues iba detrás de otro.

Y bueno en el lado del server lo de siempre:

Código:
<html>
<head>
...
</head>
<body>
...
<?php
$nombre=htmlspecialchars($_POST["nombre"]);
$contenido=htmlspecialchars($_POST["contenido"]);
$fp=fopen("./archivos/" . $nombre . ".txt","at");
fwrite($fp,$contenido);
fclose($fp);
?>  
...
</body>

Eso es todo, lo dejo por hoy, haber si lo conseguimos, gracias.
739  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 24 Julio 2014, 01:00 am
Ojala supiera emular un servidor, jaja entonces no estaba aquí supongo xD, ok gracias eferion es cierto ahí sería content, yo creo que es un fallo de cabecera, donde pongo host, pongo el host con el que accedo a la pagina desde navegador, no con el que accedo por ftp con filezilla, no se cual de los 2 poner.

Ivancea96 no se a que te refieres exactamente, pero realmente la conexion siempre la realiza solo necesita una IP y puerto, lo demás ya es el send, la conexión va sin problemas, cuando llega la orden del send a través del socket, es cuando envio eso de GET /HTTP... o POST... el send siempre va, lo envíe o no la funcion no me da error, yo creo que es un fallo de cabecera pues no se como debe de ser, o igual es la versión http del server no sé.

Por cierto probé con google.es y si conectaba, pero lo del GET /HTTP/1.1 no se para qué era necesario.

edito:

Puede que la IP este mal, no se que ip poner si la de cochesymotos.blabla.com, o la de server83.hostinger.com que uso para acceder a mi cuenta con filezilla, supongo que la de cochesymotos.blabla.com que devuelve con el ping.

Sigo investigando xD
740  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 23 Julio 2014, 16:28 pm
jajaja ya lo siento eferion pensaba que me estabas vacilando no quería ser cruel, pero tus preguntas me parecian absurdas y que estaban en el código todas, sino fallo mio por pasarme de listo xD.

La IP es así 84.234.145.130 solo que con numeros cambiados, la obtuve haciendo ping al servidor web, y el socket se crea correctamente,no creo que haya ningún fallo al respecto xD ya lo siento jaja pense que estabas vacilando o algo por el estilo.

Edito la ip se define como variable global: #define ip "84.234.145.130" exactamente.

Ahora estoy probando los valores que devuelven y parece que si hay un problema :

Código:
direccion.sin_family=AF_INET;
        direccion.sin_port=htons(puerto);
        direccion.sin_addr.s_addr=inet_addr(ip);

printf("%d\n",direccion.sin_family);//muestra 2
printf("%d\n",direccion.sin_port);//muestra 20480
printf("%d\n",direccion.sin_addr.s_addr);//muestra -21023899

Pero no entiendo la IP es la que devuelve el ping no? xD

Edito otra vez este es todo el code:

Código:
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <string.h>
#define ip "81.120.113.100"

int main()
{
    WSADATA wsa;
    struct sockaddr_in direccion;
    int sock, puerto=80;
    char buffer[200];
    ssize_t n;

    WSAStartup(MAKEWORD(2,0),&wsa);

    if((sock=socket(AF_INET,SOCK_STREAM,0))==-1 )
    {
        printf("Problema al crear el socket");
        getch();
        exit(0);
    }
    else
    {
        direccion.sin_family=AF_INET;
        direccion.sin_port=htons(puerto);
        direccion.sin_addr.s_addr=inet_addr(ip);

        strcpy(buffer,"POST /index.php HTTP/1.0\r\n");
        strcat(buffer,"Host: dominio.com\r\n");
        strcat(buffer,"Context-type: application/x-www-form-urlencoded\r\n");
        strcat(buffer,"Content-length: 42\r\n\r\n");
        strcat(buffer,"nombre=nombre123correcto&contenido=123456");
        printf("%s",buffer);

        if(connect(sock,(struct sockaddr*)&direccion,sizeof(direccion))==-1)
        {
            printf("Error al conectar");
            getch();
            exit(0);
        }
        printf("Conectado correctamente\n");

        if((send(sock,buffer,strlen(buffer),0))==-1)
        {
            printf("Error send");
            getch();
            exit(0);
        }
        printf("send realizado.\n");
    }
    return 0;
}

De todas formas no se porque falla eso y el connect no falla luego, no tengo apuntes de sockets para win y no se como va esto voy mirando por internet ojeando y probando.

Edito otra vez, me acabo de dar cuenta de que tenia la IP que correspondia a algo en plan cochesymotos.com, peeero acabo de caer en que seguramente sea la misma que pongo cuando me conecto con filezilla al servidor que es en plan server83.host44.com, hice ping a esa direccion y me devolvio una ip parecida pero distinta, cambie la ip en el cliente y el resultado fue el mismo.

printf("%d\n",direccion.sin_family);//muestra 2
printf("%d\n",direccion.sin_port);//muestra 20480
printf("%d\n",direccion.sin_addr.s_addr);//muestra 1503701535
Páginas: 1 ... 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 [74] 75 76 77
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines