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.