memset(&serv_addr, '0', sizeof(serv_addr));
That doesn't seem to be correct. The digit character 0 is not the same as the null character ('\0'). Just write 0 or use `struct sockaddr_in serv_addr = { 0 };`. memset(&serv_addr, '0', sizeof(serv_addr));
That doesn't seem to be correct. The digit character 0 is not the same as the null character ('\0'). Just write 0 or use `struct sockaddr_in serv_addr = { 0 };`.All the script-kids need to do is find someone to help them, so I don't really think this helps anyone.
http://en.m.wikipedia.org/wiki/Null_character http://www.bibase.com/images/ascii.gif
If the connect() fails, it will use file descriptor 1 which is usually stdout and write the request to it and try to read from it.
And there is a problem with strstr() not getting a null terminated string (if the stack memory for recvBuff wasn't automatically zero'd out which some compilers can do).
Why do these people bother writing the exploit in C? A curl one liner is good enough.
Also the check for 'The request has an invalid header name' seems dubious to me because a proxy in front would likely return a different error (the header name is not invalid but rather the range not satisfyable).
'0' == 48