Easy File Sharing Web Server 6.8 stack buffer overflow
By setting UserID in the cookie to a long string, we can overwrite EDX which allows us to control execution flow when the following instruction is executed. We can point EDX+28 to a location in the stack containing a pointer to instructions we want to execute. This pointer can be placed at 0x01??6969. Under Windows XP Professional SP2/SP3, the first, third, and fourth bytes in the address are always the same. The second byte is random so we need to bruteforce it. This takes at most 255 tries and the server doesn't crash so we can keep trying. The pointer placed at 0x01??6969 is a pointer to a CALL ESI. ESI points to a small space in our payload. We fill this small space with instructions to jump further down the stack where our shellcode is stored. Tested with Easy File Sharing Webserver installed in the default location at C:EFS SoftwareEasy File Sharing Web Server