~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Advisory Name: ALLO ALLO WS_FTP Server Impact : Arbitrary code execution as SYSTEM Discovered by: Hugh Mann email@example.com Tested progs : Ipswitch WS_FTP Server 4.0.2.EVAL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Description ~~~~~~~~~~~ A user who can upload files, and also has a max number of files limit or max total file size limit, can read any memory address the WS_FTP Server can read. With the right address, the user can cause a buffer overflow and execute arbitrary code as SYSTEM.
Details ~~~~~~~ There's a vulnerability in the ALLO handler when it sends an error string to the client. Instead of pushing an ASCIIZ string, it pushes a 64-bit value equal to total size of all files in user's dir and any sub-dirs. This is a value we can easily control if we exploit the WS_FTP Server REST vulnerability. If we change this value to a string of size equal to ~256 bytes, we can overwrite the return address and execute arbitrary code as SYSTEM.
Exploit ~~~~~~~ See the attached source code.
Get rid of annoying pop-up ads with the new MSN Toolbar – FREE! http://clk.atdmt.com/AVE/go/onm00200414ave/direct/01/