################################################## #####################################
# Title: LokiCMS Multiple Vulnerabilities through Authorization weakness
# Vendor: http://www.lokicms.com
# Bugs: Arbitrary File Overwrite,Code Injection,File Inclusion,Retrieve Admin's Hash
# Vulnerable Version: LokiCMS 0.3.4 (prior versions also may be affected)
# Exploitation: Remote with browser
# Impact: Very High
# Fix: N/A
################################################## #####################################
####################
- Description:
####################
LokiCMS is a content management system that is designed to be simple and clear.
Most cms systems are way to complicated if you just want to make a small mostly static site,
LokiCMS allows you to make a simple site with a few clicks.
####################
- Vulnerability:
####################
Its possible for a remote attacker to set "CMS main settings" without admin privileges.
There is a logical weakness in "admin.php" which could result in multiple vulnerabilitis
simply by set "LokiACTION" and desired parameters via http POST method.
####################
- Code Snippet:
####################
# admin.php Lines:24-42
if ( isset ( $_POST ) && isset ( $_POST['LokiACTION'] ) && strlen ( trim ( $_POST['LokiACTION'] )
) > 0 ) {
// we have an action to do
switch ( trim ( $_POST['LokiACTION'] ) ) {
case 'A_LOGOUT': // Logout
unset($_SESSION[PATH]);
break;
case 'A_LOGIN': // Login
if ( isset ( $_POST['login'] ) && sha1 ( $_POST['login'] ) == $c_password )
$_SESSION[PATH] = 'logged in lokicms030';
break;
case 'A_SAVE_G_SETTINGS': //save main settings
writeconfig ( $c_password, $_POST['title'], $_POST['header'], $_POST['tagline'],
$_POST['footnote'], $c_default, $_POST['theme'], $_POST['language'], $_POST['modrewrite'],
$_POST['simplelink'], $_POST['code'] );
$c_theme = $_POST['theme'];
include PATH . '/includes/Config.php';
include PATH . '/languages/' . $c_lang . '.lang.php';
$msg = $lang ['admin'] ['expressionSettingsSaved'];
break;
# includes/Functions.php Lines:163-200
function writeconfig ( $c_password, $c_title, $c_header, $c_tagline, $c_footnote, $c_default,
$c_theme, $c_lang, $c_modrewrite, $c_simplelink, $c_code )
{

Likes:

Quote