!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.3.27 

uname -a: Linux pdx1-shared-a4-04 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64 

uid=6659440(dh_z2jmpm) gid=2086089(pg10499364) groups=2086089(pg10499364)  

Safe-mode: OFF (not secure)

/usr/share/doc/ksh93u+m/ksh/scripts/   drwxr-xr-x
Free 670.24 GB of 879.6 GB (76.2%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     cgi-lib.ksh.txt (2.43 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
typeset -A COOKIE HEADER
typeset Cgi _CGI_c _CGI_multipart

function cgi_header
{
	typeset h
	for h in "${!HEADER[@]}"
	do	printf '%s: %s\n' "$h" "${HEADER[$h]}"
	done
	print
}

function cgi_url 
{
	if [[ $SERVER_PORT != 80 ]]
	then	print "http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME"
	else	print "http://$SERVER_NAME$SCRIPT_NAME"
	fi
}

function cgi_parse
{
	if	[[ $REQUEST_METHOD == POST ]]
	then	if	[[ $CONTENT_TYPE ==  multipart/form-data* ]]
		then	_CGI_multipart=${TMPDIR-/tmp}/cgi-form-$$
			trap 'rm -rf "$_CGI_multipart"' EXIT
			mkdir $_CGI_multipart
			unset -f Cgi.set
			typeset -A Cgi.file
			typeset i b v
			pax --nosummary --read --edit ",.*/,," --edit ",^,$_CGI_multipart/,"
			for i in $_CGI_multipart/*
			do      b=${i##*/}
				if	[[ $b == +([a-z]) ]]
				then	 v=$(<$i)
					eval Cgi.$b='$v'
				else	Cgi.file[$b]=$i
				fi
			done
		else	Cgi=$(<&0)		# Read from stdin
		fi
	else	Cgi="$QUERY_STRING"
	fi
	cgi_cookie "$HTTP_COOKIE"
	HEADER["Content-type"]="text/html"
}

function cgi_cookie
{
	typeset cookie=$1 name val c IFS=';'
	set -- $cookie
	for c
	do
		IFS='='
		set -- $c
		name=${1##' '} val=${2##' '}		# trim white space
		name=${name%%' '} val=${val%%' '}
		COOKIE[$name]=$val
	done
}

function cgi_setcookie # name value
{
	HEADER["Set-Cookie"]="$1=$2; path=$SCRIPT_NAME"
}

## Cgi variable disciplines

function Cgi.set
{
	set -f
	typeset i j n val IFS='&'
	set -- ${.sh.value}
	for i
	do	n=${i%%=*}
		[[ $n == [[:alpha:]_]*([[:alnum:]_]) ]] || continue
		val=${i#$n=}
		val=${val//+/ }
		val=${val//@([\'\\])/'\'\1}
		eval j=\${#${.sh.name}.${n}[@]} \
			"${.sh.name}.${n}[j]=\$'${val//'%'@(??)/'\x'\1"'\$'"}'"
	done
}

function cgi_C_init
{
	integer i
	for ((i=1; i < 256; i++))
	do	if	(( i!=16#22 && i!=16#27 && i!=16#5C && i!=16#5B && i!=16#5D ))
		then	printf $'_CGI_c[$\'\\\\x%.2X\']=%%%.2X\n'  $i $i
		fi
	done
	print
}

function cgi_encode
{
	typeset v=$1
	var=${v//' '/+}
	cbrace='}'
	eval var=${var//@([!a-zA-Z0-9_+])/\${_CGI_c[\\\1]$cbrace}
	print -r -- "$var"
}

function Cgi.get
{
	typeset i val name vname
	if	[[ ! ${_CGI_c[\\]} ]]
	then	val='"'
		_CGI_c[""]=%00
		_CGI_c[$var]=%22
		_CGI_c[\']=%27
		_CGI_c[\]]=%5B
		_CGI_c[\[]=%5D
		_CGI_c[\\]=%5C
		eval $(cgi_C_init)
		unset -f cgi_C_init
	fi
	vname=${.sh.name}		# .sh.name contains variable name
	.sh.value=			# .sh.value stores value
	for i in ${!Cgi.@}
	do	
		name=${i#$vname.}
		nameref v=${i}
		val=$(cgi_encode "$v")
		.sh.value="${.sh.value}${.sh.value:+&}$name=$val"
	done
}


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0108 ]--