HTTP Requests



  • Ich schreibe gerade einen Scanner für Cross Site Scripting und hänge beim senden der Requests .:

    In der URL List stehen die URL im format
    "http://site.de/path/irgendwas="
    "http://site.de/path/path2/irgendwas="
    .
    .
    .
    und die funktion soll immer eine Seite nach der anderen mit angehängtem <script>alert('dd')</script> aufrufen.

    int send_request(const int sock, char *hostnamel)
    {   
    const char *p;
    
    char zeile[BUF_SIZ];
    string line;
    char xss[BUF_SIZ]="<script>alert('dd')</script>";
    
    ifstream myfile ("URL_List.txt");
    	if (myfile.is_open())
    	{
    		while (! myfile.eof() )
    		{
    
    		getline (myfile,line);
    p = line.c_str();
    strcpy( zeile , p);
    
    char request[BUF_SIZ];
    char querry[BUF_SIZ]; 
    
    snprintf(request, sizeof(request),
    "GET %s%s HTTP/1.1 \r\n"      
    "Host: %s\r\n"
    "Connection: Keep-Alive\r\n\r\n",zeile,xss,hostnamel); 
    cout<<request<<endl;
    
    if (send(sock, request, strlen(request), 0) == -1)
        {
            perror("send() failed");
            return 1;
        }  
    
        char response[BUF_SIZ];
        int bytes;
    
    recv(sock, response, sizeof(response), 0);
    
        while((bytes = recv(sock, response, sizeof(response), 0)) > 0)
           { fwrite(response, 1, bytes, stdout);}
    
        if (bytes < 0)
        {
            perror("recv() failed");
            return 1;
        }
    	 	}	
    	}	
    myfile.close();
    
    return 0;    
    }
    

    Doch irgendwie wird zwar scheinbar jedes Request gesendet aber es zeigt mir als response nur den response des erten requests an.

    Hoffe jemand findet einen Fehler .
    Danke :xmas1:



  • recv(sock, response, sizeof(response), 0);
    

    hab ich vergessen wieder rauszutun habe ich vorher reingemacht um zu testen ob im recv der Fehler liegt.


Anmelden zum Antworten