Summary 04WebServer is a HTTP server developed by Soft3304 for Windows platforms. It is an easy-to-configure personal HTTP server that supports CGI, SSI, WebDAV and SSL/TLS. This advisory documents three vulnerabilities that were found in version 1.42 of 04WebServer. Tested System 04WebServer version 1.42 on English Win2K SP4 Details 04WebServer is a HTTP server developed by Soft3304 for Windows platforms. It is an easy-to-configure personal HTTP server that supports CGI, SSI, WebDAV and SSL/TLS. This advisory documents three vulnerabilities that were found in version 1.42 of 04WebServer. This includes a XSS vulnerability, lack of character filtering when writing to log file, and potential server restart problem after requesting a DOS device in the URL. 1. Cross-Site Scripting (XSS) Vulnerability in Default Error Page When the user requests for a non-existing page from the web server, the default error page Response_default.html will be served out to user. This page displays the user's requested URL without properly escaping HTML special characters. This may be exploited by a malicious user to execute malicious Javascript on the victim's browser, stealing his cookie. The following sample HTTP request demonstrates the XSS vulnerability by displaying a harmless popup dialog box. http://[hostname]/<script>alert('XSS');</script> 2. Lack of Character Filtering allows the attacker to Inject Arbitrary Characters into Log File User's HTTP requests are logged into a text file in the \04WebServer142\Logs directory. The server performs only minimally filtering on the request URL before writing it into the log file. This allows the attacker to inject arbitrary characters into the log file. In particular, it may be possible for the attacker to submit specifically crafted HTTP requests that would create fictious entries in the log. The following HTTP request, when submitted to a vulnerable 04WebServer, will create a fictious log entry. http://[hostname]/a%0a[22;45;24]%20<192.168.1.3>%20(74,632)%20[%90%b3%8f%ed%82%c9%8f%49%97%b9%82 %b5%82%dc%82%b5%82%bd]%20GET%20/hack The log entries that are created are shown below. The fake entry is highlighted in red. Note that the : character is filtered and hence, cannot be created correctly in the logs. [22:44:54] <10.0.0.4> (521,715) [ÄwÆ.é.é.é.âtâ@âCâïé.æ.ì.é.é.é.é±] GET /a [22;45;24] <192.168.1.3> (74,632) [É.Å.é.ÅIù.é.é.é.é.] GET /hack 3. Requesting COM2 or other DOS devices in the URL may prevent the Server from restarting properly The attacker may specify the COM2 device in the request URL. This will cause the web server to open a handle to the device. Doing so will prevent the server from restarting properly the next time it needs to be restarted using servercontroller.exe or using Window's Service Control Manager. The following sample HTTP request demonstrates this. If using COM2 doesn't work on your test server, try other DOS devices like COM1, AUX, PRN, etc, until the server managed to "open" a DOS device. http://[hostname]/COM2 The following screen capture shows the log display of servercontrol.exe when COM2 is "opened". Patch Author has been notified of this advisory by email, but has not released any fixes. Disclosure Timeline 30 Jul 04 - Vulnerabilites Discovered 30 Jul 04 - Initial Author Notification (no reply) 03 Aug 04 - Second Author Notification 04 Aug 04 - Author Reply (new version will be released by end August) 25 Oct 04 - Third Author Notification (no reply) 11 Nov 04 - Public Release Contacts For further questions and enquries, email them to the following. Overall-in-charge: Tan Chew Keong Reference http://www.security.org.sg/vuln/04webserver142.html Regards to my girl and friends ;p Jerome