SecurityTracker.com
    Home    |    View Topics    |    Search    |    Contact Us    |   

SecurityTracker
Archives


 


Category:   Application (Database)  >   SAP DB Vendors:   SAP
SAP DB Web Server Stack Overflow Lets Remote Users Execute Arbitrary Code
SecurityTracker Alert ID:  1018341
SecurityTracker URL:  http://securitytracker.com/id/1018341
CVE Reference:   CVE-2007-3614   (Links to External Site)
Updated:  May 6 2008
Original Entry Date:  Jul 6 2007
Impact:   Execution of arbitrary code via network, User access via network
Fix Available:  Yes  Vendor Confirmed:  Yes  

Description:   A vulnerability was reported in SAP DB in the web server. A remote user can execute arbitrary code on the target system.

A remote user can send an HTTP GET request with a specially crafted Cookie Value to trigger a stack overflow in 'WAHTTP.exe' and execute arbitrary code on the target system. The code will run with the privileges of the target service.

The vendor was notified on January 11, 2007.

Mark Litchfield of NGSSoftware Insight Security Research discovered this vulnerability.

Impact:   A remote user can execute arbitrary code on the target system.
Solution:   The vendor has issued a fix.
Vendor URL:  www.sap.com/ (Links to External Site)
Cause:   Boundary error
Underlying OS:  Linux (Any), UNIX (HP/UX), UNIX (Solaris - SunOS), UNIX (Tru64), Windows (NT), Windows (2000), Windows (XP)

Message History:   None.


 Source Message Contents

Subject:  SAP DB Web Server Stack Overflow

=======
Summary
=======
Name: SAP DB Web Server Stack Overflow
Release Date:  5 July 2007
Reference: NGS00486
Discover: Mark Litchfield <mark@ngssoftware.com>
Vendor: SAP
Vendor Reference: SECRES-291
Systems Affected: All Versions
Risk: Critical
Status: Fixed

========
TimeLine
========
Discovered:  3 January 2007
Released: 19 January 2007
Approved: 29 January 2007
Reported: 11 January 2007
Fixed: 27 March 2007
Published:

===========
Description
===========
SAP DB is an open source database server sponsored by SAP AG that provides
a series of web tools to administer database servers via web browsers.
These tools can be integrated into third-party web servers such as IIS, or
run on its own web server which by default is installed to TCP Port 9999.

When installed as its own web server, the process waHTTP.exe is found to
be listening on TCP Port 9999.

=================
Technical Details
=================
http://target:9999/webdbm?Event=DBM_INTERN_TEST&Action=REFRESH

Looking at the 200 response we can determine the function offered by the
request:

******************************************

<body topmargin=0 leftmargin=0 marginwidth=0 marginheight=0
background=/WARoot/Images/tatami.gif>
<a href="javascript:parent.GotoWebDBMURL(this,
'Event=DBM_INTERN_TEST&Action=REFRESH')">Test</a><table
style="font-family:courier new,monospace; font-size:8pt;" border=1
cellspacing=0 cellpadding=1>
<tr><td>sapdbwa_GetRequestURI&nbsp;</td><td>/webdbm&nbsp;</td></tr>
<tr><td>sapdbwa_GetIfModifiedSince&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>sapdbwa_GetQueryString&nbsp;</td><td>Event=DBM_INTERN_TEST&Action=REFRESH&nbsp;</td></tr>
<tr><td>sapdbwa_GetPathInfo&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>sapdbwa_GetMethod&nbsp;</td><td>GET&nbsp;</td></tr>
<tr><td>sapdbwa_GetContentType&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>sapdbwa_GetContentLength&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>sapdbwa_GetPathTranslated&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>sapdbwa_GetServerName&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>AUTH_TYPE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>CONTENT_LENGTH&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>CONTENT_TYPE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>GATEWAY_INTERFACE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_ACCEPT&nbsp;</td><td>*/*&nbsp;</td></tr>
<tr><td>PATH_INFO&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>QUERY_STRING&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>REMOTE_ADDR&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>REMOTE_HOST&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>REMOTE_USER&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>REQUEST_METHOD&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>SCRIPT_NAME&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>SERVER_NAME&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>SERVER_PORT&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>SERVER_PROTOCOL&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>SERVER_SOFTWARE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_ACCEPT&nbsp;</td><td>*/*&nbsp;</td></tr>
<tr><td>HTTP_ACCEPT_CHARSET&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_ACCEPT_ENCODING&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_ACCEPT_LANGUAGE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_ACCEPT_RANGES&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_AGE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_ALLOW&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_AUTHORIZATION&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CACHE_CONTROL&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CONNECTION&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CONTENT_ENCODING&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CONTENT_LANGUAGE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CONTENT_LENGTH&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CONTENT_LOCATION&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CONTENT_MD5&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CONTENT_RANGE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_CONTENT_TYPE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_DATE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_ETAG&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_EXPECT&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_EXPIRES&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_FROM&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_HOST&nbsp;</td><td>localhost&nbsp;</td></tr>
<tr><td>HTTP_IF_MATCH&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_IF_MODIFIED_SINCE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_IF_NONE_MATCH&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_IF_RANGE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_IF_UNMODIFIED_SINCE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_LAST_MODIFIED&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_LOCATION&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_MAX_FORWARDS&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_PRAGMA&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_PROXY_AUTHENTICATE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_PROXY_AUTHORIZATION&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_RANGE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_REFERER&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_RETRY_AFTER&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_SERVER&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_TE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_TRAILER&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_TRANSFER_ENCODING&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_UPGRADE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_USER_AGENT&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_VARY&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_VIA&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_WARNING&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_WWW_AUTHENTICATE&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>HTTP_COOKIE&nbsp;</td><td>SID=E63A7F73B20A5021442BAF3C8F70B97A&nbsp;</td></tr>
<tr><td>HTTP_SESSION_ID&nbsp;</td><td>NULL&nbsp;</td></tr>
<tr><td>Event&nbsp;</td><td>DBM_INTERN_TEST&nbsp;</td></tr>
<tr><td>Action&nbsp;</td><td>REFRESH&nbsp;</td></tr>
</table>
</body>

******************************************************

By making the request again, but ammeding the Cookie Value, or if one is
not prersent, simply add it as an HTTP header request, we can cause a
stack based overflow within WAHTTP.exe

The same Overflow can also be achieved in numerous other fields.

If we take the sapdbwa_GetQueryString, we can simply pass an additional
parameter by  appending & + string

===============
Fix Information
===============
Please ensure you are running the latest version

NGSSoftware Insight Security Research
http://www.ngssoftware.com/
http://www.databasesecurity.com/
http://www.nextgenss.com/
+44(0)208 401 0070 

 
 


Go to the Top of This SecurityTracker Archive Page





Home   |    View Topics   |    Search   |    Contact Us

This web site uses cookies for web analytics. Learn More

Copyright 2020, SecurityGlobal.net LLC