#!/usr/bin/perl
use strict;
use warnings;
use CGI qw( -no_xhtml -nosticky );
use Data::Dumper ();
my $cgi=CGI->new();
my $f=$cgi->upload('f');
my $text=Data::Dumper->new([$cgi,\%ENV],['cgi','*ENV'])->Useqq(1)->Sortkeys(1)->Indent(1)->Quotekeys(0)->Dump();
print
$cgi->header(
-type=>'text/html'
),
$cgi->start_html(
-title=>'CGI Dump',
),
$cgi->start_multipart_form(),
$cgi->filefield(-name => 'f'),
$cgi->submit(),
$cgi->end_form(),
$cgi->pre($text),
$cgi->end_html();
####
$cgi = bless( {
".charset" => "ISO-8859-1",
".fieldnames" => {},
".parameters" => [
"f"
],
".tmpfiles" => {
"*File::Temp::\$fhnotepad.exe" => {
hndl => bless( \*{'File::Temp::$fh'}, 'CGI::File::Temp' ),
info => {
"Content-Disposition" => "form-data; name=\"f\"; filename=\"notepad.exe\"",
"Content-Type" => "application/x-msdownload"
},
name => "/tmp/lteASdfRPK"
}
},
escape => 1,
param => {
f => [
$cgi->{".tmpfiles"}{"*File::Temp::\$fhnotepad.exe"}{hndl}
]
},
use_tempfile => 1
}, 'CGI' );
%ENV = (
CONTENT_LENGTH => 193222,
CONTENT_TYPE => "multipart/form-data; boundary=---------------------------232441531115",
CONTEXT_DOCUMENT_ROOT => "/data/apache/cgi-bin/",
CONTEXT_PREFIX => "/cgi-bin/",
DOCUMENT_ROOT => "/data/apache/htdocs",
GATEWAY_INTERFACE => "CGI/1.1",
HTTP_ACCEPT => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
HTTP_ACCEPT_ENCODING => "gzip, deflate",
HTTP_ACCEPT_LANGUAGE => "en-US,en;q=0.5",
HTTP_CONNECTION => "keep-alive",
HTTP_HOST => "localhost",
HTTP_REFERER => "http://localhost/cgi-bin/file-upload-test",
HTTP_UPGRADE_INSECURE_REQUESTS => 1,
HTTP_USER_AGENT => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0",
LD_LIBRARY_PATH => "/usr/lib64/httpd",
PATH => "/sbin:/usr/sbin:/bin:/usr/bin",
QUERY_STRING => "",
REMOTE_ADDR => "192.168.2.140",
REMOTE_PORT => 49391,
REQUEST_METHOD => "POST",
REQUEST_SCHEME => "http",
REQUEST_URI => "/cgi-bin/file-upload-test",
SCRIPT_FILENAME => "/data/apache/cgi-bin/file-upload-test",
SCRIPT_NAME => "/cgi-bin/file-upload-test",
SERVER_ADDR => "192.168.2.10",
SERVER_ADMIN => "me\@localhost",
SERVER_NAME => "localhost",
SERVER_PORT => 80,
SERVER_PROTOCOL => "HTTP/1.1",
SERVER_SIGNATURE => "",
SERVER_SOFTWARE => "Apache"
);
####
$cgi = bless( {
".charset" => "ISO-8859-1",
".fieldnames" => {},
".parameters" => [
"f"
],
".tmpfiles" => {
"*File::Temp::\$fhfalse" => {
hndl => bless( \*{'File::Temp::$fh'}, 'CGI::File::Temp' ),
info => {
"Content-Disposition" => "form-data; name=\"f\"; filename=\"false\"",
"Content-Type" => "application/octet-stream"
},
name => "/tmp/KTh3vytRsd"
}
},
escape => 1,
param => {
f => [
$cgi->{".tmpfiles"}{"*File::Temp::\$fhfalse"}{hndl}
]
},
use_tempfile => 1
}, 'CGI' );
%ENV = (
CONTENT_LENGTH => 27458,
CONTENT_TYPE => "multipart/form-data; boundary=---------------------------18269427081793764907232401438",
CONTEXT_DOCUMENT_ROOT => "/data/apache/cgi-bin/",
CONTEXT_PREFIX => "/cgi-bin/",
DOCUMENT_ROOT => "/data/apache/htdocs",
GATEWAY_INTERFACE => "CGI/1.1",
HTTP_ACCEPT => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
HTTP_ACCEPT_ENCODING => "gzip, deflate",
HTTP_ACCEPT_LANGUAGE => "en-US,en;q=0.5",
HTTP_CONNECTION => "keep-alive",
HTTP_HOST => "localhost",
HTTP_REFERER => "http://localhost/cgi-bin/file-upload-test",
HTTP_USER_AGENT => "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0",
LD_LIBRARY_PATH => "/usr/lib64/httpd",
PATH => "/sbin:/usr/sbin:/bin:/usr/bin",
QUERY_STRING => "",
REMOTE_ADDR => "192.168.2.10",
REMOTE_PORT => 60266,
REQUEST_METHOD => "POST",
REQUEST_SCHEME => "http",
REQUEST_URI => "/cgi-bin/file-upload-test",
SCRIPT_FILENAME => "/data/apache/cgi-bin/file-upload-test",
SCRIPT_NAME => "/cgi-bin/file-upload-test",
SERVER_ADDR => "192.168.2.10",
SERVER_ADMIN => "me\@localhost",
SERVER_NAME => "localhost",
SERVER_PORT => 80,
SERVER_PROTOCOL => "HTTP/1.1",
SERVER_SIGNATURE => "",
SERVER_SOFTWARE => "Apache"
);
####
$cgi = bless( {
".charset" => "ISO-8859-1",
".fieldnames" => {},
".parameters" => [
"f"
],
".tmpfiles" => {
"*File::Temp::\$fhc:\\WINNT\\NOTEPAD.EXE" => {
hndl => bless( \*{'File::Temp::$fh'}, 'CGI::File::Temp' ),
info => {
"Content-Disposition" => "form-data; name=\"f\"; filename=\"c:\\WINNT\\NOTEPAD.EXE\"",
"Content-Type" => "application/octet-stream"
},
name => "/tmp/n93zfrd2Bf"
}
},
escape => 1,
param => {
f => [
$cgi->{".tmpfiles"}{"*File::Temp::\$fhc:\\WINNT\\NOTEPAD.EXE"}{hndl}
]
},
use_tempfile => 1
}, 'CGI' );
%ENV = (
CONTENT_LENGTH => 51165,
CONTENT_TYPE => "multipart/form-data; boundary=---------------------------7e122d10086",
CONTEXT_DOCUMENT_ROOT => "/data/apache/cgi-bin/",
CONTEXT_PREFIX => "/cgi-bin/",
DOCUMENT_ROOT => "/data/apache/htdocs",
GATEWAY_INTERFACE => "CGI/1.1",
HTTP_ACCEPT => "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*",
HTTP_ACCEPT_ENCODING => "gzip, deflate",
HTTP_ACCEPT_LANGUAGE => "en-us",
HTTP_CACHE_CONTROL => "no-cache",
HTTP_CONNECTION => "Keep-Alive",
HTTP_HOST => "enterprise",
HTTP_REFERER => "http://localhost/cgi-bin/file-upload-test",
HTTP_USER_AGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)",
LD_LIBRARY_PATH => "/usr/lib64/httpd",
PATH => "/sbin:/usr/sbin:/bin:/usr/bin",
QUERY_STRING => "",
REMOTE_ADDR => "192.168.2.178",
REMOTE_PORT => 1047,
REQUEST_METHOD => "POST",
REQUEST_SCHEME => "http",
REQUEST_URI => "/cgi-bin/file-upload-test",
SCRIPT_FILENAME => "/data/apache/cgi-bin/file-upload-test",
SCRIPT_NAME => "/cgi-bin/file-upload-test",
SERVER_ADDR => "192.168.2.10",
SERVER_ADMIN => "me\@localhost",
SERVER_NAME => "localhost",
SERVER_PORT => 80,
SERVER_PROTOCOL => "HTTP/1.1",
SERVER_SIGNATURE => "",
SERVER_SOFTWARE => "Apache"
);
####
$cgi = bless( {
".charset" => "ISO-8859-1",
".fieldnames" => {},
".parameters" => [
"f"
],
".tmpfiles" => {
"*File::Temp::\$fhnotepad.exe" => {
hndl => bless( \*{'File::Temp::$fh'}, 'CGI::File::Temp' ),
info => {
"Content-Disposition" => "form-data; name=\"f\"; filename=\"notepad.exe\"",
"Content-Type" => "application/octet-stream"
},
name => "/tmp/HPMuRUrcGC"
}
},
escape => 1,
param => {
f => [
$cgi->{".tmpfiles"}{"*File::Temp::\$fhnotepad.exe"}{hndl}
]
},
use_tempfile => 1
}, 'CGI' );
%ENV = (
CONTENT_LENGTH => 193222,
CONTENT_TYPE => "multipart/form-data; boundary=---------------------------7e1f72b202b8",
CONTEXT_DOCUMENT_ROOT => "/data/apache/cgi-bin/",
CONTEXT_PREFIX => "/cgi-bin/",
DOCUMENT_ROOT => "/data/apache/htdocs",
GATEWAY_INTERFACE => "CGI/1.1",
HTTP_ACCEPT => "text/html, application/xhtml+xml, */*",
HTTP_ACCEPT_ENCODING => "gzip, deflate",
HTTP_ACCEPT_LANGUAGE => "de-DE",
HTTP_CACHE_CONTROL => "no-cache",
HTTP_CONNECTION => "Keep-Alive",
HTTP_DNT => 1,
HTTP_HOST => "localhost",
HTTP_REFERER => "http://localhost/cgi-bin/file-upload-test",
HTTP_USER_AGENT => "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
LD_LIBRARY_PATH => "/usr/lib64/httpd",
PATH => "/sbin:/usr/sbin:/bin:/usr/bin",
QUERY_STRING => "",
REMOTE_ADDR => "192.168.2.140",
REMOTE_PORT => 49458,
REQUEST_METHOD => "POST",
REQUEST_SCHEME => "http",
REQUEST_URI => "/cgi-bin/file-upload-test",
SCRIPT_FILENAME => "/data/apache/cgi-bin/file-upload-test",
SCRIPT_NAME => "/cgi-bin/file-upload-test",
SERVER_ADDR => "192.168.2.10",
SERVER_ADMIN => "me\@localhost",
SERVER_NAME => "localhost",
SERVER_PORT => 80,
SERVER_PROTOCOL => "HTTP/1.1",
SERVER_SIGNATURE => "",
SERVER_SOFTWARE => "Apache"
);