ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.8/__pycache__/cgi.cpython-38.opt-2.pyc
U

&.e@sfdZddlmZmZmZddlmZddlZddlZddl	Z
ddlmZddl
mZddlZddlZddlZddd	d
ddd
dddddgZdadaddZddZddZddZeadadejdddfdd	Zd0d d
Zd!d"Zd#dZGd$ddZ Gd%ddZ!ejfd&dZ"d1d'd
Z#ejfd(dZ$d)dZ%d*dZ&d+dZ'd,dZ(d-d.Z)e*d/krbe"dS)2z2.6)StringIOBytesIO
TextIOWrapper)MappingN)
FeedParser)MessageMiniFieldStorageFieldStorageparseparse_multipartparse_headertestprint_exception
print_environ
print_formprint_directoryprint_argumentsprint_environ_usagecGsFtr,ts,zttdaWntk
r*YnXts6tantat|dS)Na)logfilelogfpopenOSErrornologlogdologZallargsr/usr/lib64/python3.8/cgi.pyinitlog8sr cGst||ddS)N
)rwrite)Zfmtargsrrrr[srcGsdSNrrrrrr_srcCsdatrtdatadS)Nr)rrcloser rrrrrcloselogcs
r&c
Cs^|dkrtj}t|dr |j}nd}t|tr4|j}d|krDd|d<|ddkrt|d\}}|dkrxt|||dS|d	krt	|d
}t
r|t
krtd||
|}	nd}	d
|kr|	r|	d}	|	|d
}	n*tjddr|	r|	d}	|	tjd}	|	|d
<n<d
|kr |d
}	n(tjddr<tjd}	nd}	|	|d
<tjj|	||||dS)Nencodingzlatin-1REQUEST_METHODGETPOSTCONTENT_TYPEzmultipart/form-data)	separator!application/x-www-form-urlencodedCONTENT_LENGTHMaximum content length exceededrQUERY_STRING&)r'r,)sysstdinhasattrr'
isinstancerbufferrrintmaxlen
ValueErrorreaddecodeargvurllibr
Zparse_qs)
fpenvironkeep_blank_valuesstrict_parsingr,r'ctypepdictZclengthqsrrrr
vsL




utf-8replacer1csx|dd}d|}t}||z|d|d<Wntk
rLYnXt||||ddi|dfd	d
DS)Nboundaryasciiz multipart/form-data; boundary={}zCONTENT-LENGTHzContent-Lengthr(r*)headersr'errorsr@r,csi|]}||qSr)getlist).0kZfsrr
<dictcomp>sz#parse_multipart.<locals>.<dictcomp>)r<formatrZset_typeKeyErrorr	)r?rDr'rKr,rHrCrJrrOrrs


ccs|dddkr|dd}|d}|dkr`|dd||dd|dr`|d|d}q&|dkrpt|}|d|}|V||d}qdS)Nr2;r"\")findcountlenstrip)sendfrrr_parseparams
(
r^cCstd|}|}i}|D]}|d}|dkr|d|}||dd}t|dkr|d|dkrdkrnn |dd}|dd	d
d}|||<q||fS)NrS=rr2rVrTz\\\rU)r^__next__rWrZlowerrYrG)linepartskeyrDpinamevaluerrrrs
,
c@s<eZdZdZdZdZdZiZdZiZ	iZ
ddZddZdS)rNcCs||_||_dSr$rirjselfrirjrrr__init__	szMiniFieldStorage.__init__cCsd|j|jfS)NzMiniFieldStorage(%r, %r)rkrmrrr__repr__szMiniFieldStorage.__repr__)
__name__
__module____qualname__filenamelisttypefiletype_optionsdispositiondisposition_optionsrJrnrprrrrrsc@seZdZdddejdddddddfddZdd	Zd
dZdd
ZddZ	ddZ
ddZddZd9ddZ
d:ddZddZddZddZd d!Zd"d#Zd$d%ZdZd&d'Zd(d)Zd*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8ZdS);r	NrrFrGcCsZd}||_||_|
|_||_d|kr0|d}d|_|dksF|dkrd|krX|d}
ntjddrrtjd}
nd}
|
t	
d}
t|
}|dkrdd	i}|dkri}|d
krd	|d<d|kr|d|d<d|kr|d|_d|kr|d|d
<nt|t
tfstd||_|dkr*tjj|_n<t|tr@|j|_n&t|drXt|ds`td||_||_|	|_t|tstdt|j||_d|_||_di}}d|jkrt|jd\}}||_||_ d|_!d|kr|d|_!d|_"d|kr
|d|_"|j"dk	|_#d|jkr6t|jd\}}n(|jsH|d
krTdi}}n
d	i}}||_||_$d|kr|d|j|j|_%nd|_%d}d
|jkrzt&|jd
}Wnt'k
rYnXt(r|t(krt'd||_)|jdkr|dkr||_d|_*|_+d|_,|d	kr,|-n*|dddkrN|.|||n|/dS)Nr)r(ZHEADr0r2rsurrogateescapezcontent-typer-r*r+r.content-lengthz?headers must be mapping or an instance of email.message.Messager;readlinezfp must be file pointerz#outerboundary must be bytes, not %srzcontent-dispositionrirtz
text/plainrHr{r`r/
z
multipart/)0rArBmax_num_fieldsr,upper
qs_on_postr3r=encodelocaleZgetpreferredencodingrr6rr	TypeErrorrJr4r7r?rr5r'rKbytesrvrq
outerboundary
bytes_readlimitrryrzrirt_binary_filerx
innerboundaryr8r:r9lengthrurwdoneread_urlencoded
read_multiread_single)rmr?rJrr@rArBrr'rKrr,methodrEZcdisprDrCZclenrrrrn?s/












zFieldStorage.__init__cCs(z|jWntk
r"YnXdSr$)rwr%AttributeErrorrorrr__del__szFieldStorage.__del__cCs|Sr$rrorrr	__enter__szFieldStorage.__enter__cGs|jdSr$)rwr%)rmr#rrr__exit__szFieldStorage.__exit__cCsd|j|j|jfS)NzFieldStorage(%r, %r, %r))rirtrjrorrrrps
zFieldStorage.__repr__cCst|Sr$)iterkeysrorrr__iter__szFieldStorage.__iter__cCsT|dkrt||jr:|jd|j}|jdn|jdk	rL|j}nd}|S)Nrjr)rrwseekr;rurlrrr__getattr__s

zFieldStorage.__getattr__cCs^|jdkrtdg}|jD]}|j|kr||q|sBt|t|dkrV|dS|SdS)N
not indexabler2r)rurriappendrRrY)rmrffounditemrrr__getitem__s


zFieldStorage.__getitem__cCs8||kr0||}t|tr(dd|DS|jSn|SdS)NcSsg|]
}|jqSrrjrMxrrr
<listcomp>sz)FieldStorage.getvalue.<locals>.<listcomp>r6rurjrmrfdefaultrjrrrgetvalues
zFieldStorage.getvaluecCs4||kr,||}t|tr$|djS|jSn|SdSNrrrrrrgetfirsts

zFieldStorage.getfirstcCs:||kr2||}t|tr(dd|DS|jgSngSdS)NcSsg|]
}|jqSrrrrrrr.sz(FieldStorage.getlist.<locals>.<listcomp>r)rmrfrjrrrrL)s

zFieldStorage.getlistcCs*|jdkrtdttdd|jDS)Nrcss|]}|jVqdSr$rirMrrrr	<genexpr>8sz$FieldStorage.keys.<locals>.<genexpr>)rursetrorrrr4s
zFieldStorage.keyscs*|jdkrtdtfdd|jDS)Nrc3s|]}|jkVqdSr$rrrfrrr>sz,FieldStorage.__contains__.<locals>.<genexpr>)rurany)rmrfrrr__contains__:s
zFieldStorage.__contains__cCst|Sr$)rYrrorrr__len__@szFieldStorage.__len__cCs|jdkrtdt|jS)NzCannot be converted to bool.)rurboolrorrr__bool__Ds
zFieldStorage.__bool__c	Cs|j|j}t|ts0td|jt|jf||j	|j
}|jrT|d|j7}tj
j||j|j|j	|j
|j|jd}dd|D|_|dS)N%s should return bytes, got %sr1r'rKrr,cSsg|]\}}t||qSrrrMrfrjrrrrVsz0FieldStorage.read_urlencoded.<locals>.<listcomp>)r?r;rr6rr:rvrqr<r'rKrr>r
	parse_qslrArBrr,ru
skip_lines)rmrEqueryrrrrIs&
zFieldStorage.read_urlencodedcCsL|j}t|std|fg|_|jrftjj|j|j|j	|j
|j|j|j
d}|jdd|D|jpp|j}|j}t|tstd|jt|jf|jt|7_|d|jkr|r|j}|jt|7_q|j}|dk	r|t|j8}t}	d}
|j}|
|7}
|sq0q|
s:q@|jt|
7_|	|
|j
|j|	}d|krz|d=|jdkrdn
|j|j}
||j||||||
|j
|j||j
}|dk	r|d	8}|jr|t|j8}|d
krtd|j|j7_|j||j s@|j|j!kr4d
krnnq@q|"dS)Nz&Invalid boundary in multipart form: %rrcss|]\}}t||VqdSr$rrrrrrfsz*FieldStorage.read_multi.<locals>.<genexpr>r--r{r}r2rzMax number of fields exceeded)#rvalid_boundaryr:rurr>r
rrArBr'rKrr,extendFieldStorageClass	__class__r?r~r6rrvrqrrYrZrZfeedr<r%rrrrr)rmr@rArBZibrklassZ
first_linerparserZhdr_textdatarJrpartrrrr[s









(zFieldStorage.read_multicCs4|jdkr||n||jddSr)rread_binaryr
read_linesrwrrorrrrs


zFieldStorage.read_singlei cCs||_|j}|dkr|dkr|jt||j}t|tsVt	d|jt
|jf|jt
|7_|std|_q|j||t
|}qdS)Nrrr`)	make_filerwrr?r;minbufsizer6rr:rvrqrrYrr")rmZtodorrrrrs

zFieldStorage.read_binarycCs@|jrt|_|_nt|_|_|jr4|n|dSr$)rrrw_FieldStorage__filerrread_lines_to_outerboundaryread_lines_to_eofrorrrrs
zFieldStorage.read_linescCsv|jdk	rF|jt|dkrF||_|j}|j|d|_|jrZ|j|n|j||j	|j
dS)Ni)rtellrYrrwrr"rr<r'rK)rmrdrrrrZ__writes


zFieldStorage.__writecCs:|jd}|jt|7_|s*d|_q6||qdS)Nr`)r?r~rrYr_FieldStorage__write)rmrdrrrrszFieldStorage.read_lines_to_eofc	CsJd|j}|d}d}d}d}|jdk	rFd|jkr>|krFnnqF|jd}|jt|7_|t|7}|s~d|_qF|dkr||}d}|dr|r|}||krqF||krd|_qF|}|	d	rd	}|dd
}d}nL|	drd}|dd}d}n*|	dr.d}|dd}d}nd}d}|
||qdS)
Nrr{Trrr`
r2s

F)rrr?r~rrYr
startswithrstripendswithr)	rm
next_boundary
last_boundaryZdelimlast_line_lfendZ_readrdstrippedlineZodelimrrrrsN
$
z(FieldStorage.read_lines_to_outerboundarycCs|jr|jrdSd|j}|d}d}|jd}|jt|7_|sPd|_q|dr|r|}||krpq||krd|_q|d}q&dS)NrTrr`r2r)rrr?r~rrYrrZ)rmrrrrdrrrrrs$
zFieldStorage.skip_linescCs&|jrtdStjd|jddSdS)Nzwb+zw+r!)r'newline)rtempfileZ
TemporaryFiler'rorrrr(s
zFieldStorage.make_file)N)N) rqrrrsosr@rnrrrrprrrrrrLrrrrrrrrrrrrrrrrrrrrr	sJ+
&


E	
2cCstdttjt_zNt}ttt|t|t	dd}|fdd}td|Wnt
YnXtddaz&t}ttt|t|Wnt
YnXdS)	NzContent-type: text/htmlcSstddS)Nz,testing print_exception() -- <I>italics?</I>)execrrrrr][sztest.<locals>.fcSs
|dSr$r)r]rrrg]sztest.<locals>.gz9<H3>What follows is a test, not an actual exception:</H3>z*<H1>Second try with a small maxlen...</H1>2)printr3stdoutstderrr	rrrrrrr9)r@formr]rrrrr
Js4
c	Csx|dkrt\}}}ddl}ttd||||||}tdtd|ddt|df~dS)Nrz+<H3>Traceback (most recent call last):</H3>z<PRE>%s<B>%s</B></PRE>rr`)	r3exc_info	tracebackr	format_tbformat_exception_onlyhtmlescapejoin)rvrjtbrrrurrrrqs

c	Cs\t|}ttdtd|D]"}tdt|dt||q&tdtdS)Nz<H3>Shell Environment:</H3><DL><DT><DD></DL>)sortedrrrr)r@rrfrrrrs cCst|}ttd|s&tdtd|D]Z}tdt|ddd||}tdttt|d	td
tt|q2tdtdS)Nz<H3>Form Contents:</H3>z<P>No form fields.rr: )r\z<i>z</i>rr)rrrrrreprrv)rrrfrjrrrrsc
Csjttdzt}Wn6tk
rP}ztdtt|W5d}~XYnXtt|tdS)Nz#<H3>Current Working Directory:</H3>zOSError:)rrgetcwdrrrstr)pwdmsgrrrrs&cCs(ttdtttjtdS)Nz <H3>Command Line Arguments:</H3>)rr3r=rrrrrs

cCstddS)Na
<H3>These environment variables could have been set:</H3>
<UL>
<LI>AUTH_TYPE
<LI>CONTENT_LENGTH
<LI>CONTENT_TYPE
<LI>DATE_GMT
<LI>DATE_LOCAL
<LI>DOCUMENT_NAME
<LI>DOCUMENT_ROOT
<LI>DOCUMENT_URI
<LI>GATEWAY_INTERFACE
<LI>LAST_MODIFIED
<LI>PATH
<LI>PATH_INFO
<LI>PATH_TRANSLATED
<LI>QUERY_STRING
<LI>REMOTE_ADDR
<LI>REMOTE_HOST
<LI>REMOTE_IDENT
<LI>REMOTE_USER
<LI>REQUEST_METHOD
<LI>SCRIPT_NAME
<LI>SERVER_NAME
<LI>SERVER_PORT
<LI>SERVER_PROTOCOL
<LI>SERVER_ROOT
<LI>SERVER_SOFTWARE
</UL>
In addition, HTTP headers sent by the server may be passed in the
environment as well.  Here are some common variable names:
<UL>
<LI>HTTP_ACCEPT
<LI>HTTP_CONNECTION
<LI>HTTP_HOST
<LI>HTTP_PRAGMA
<LI>HTTP_REFERER
<LI>HTTP_USER_AGENT
</UL>
)rrrrrrscCs(ddl}t|trd}nd}|||S)Nrs^[ -~]{0,200}[!-~]$z^[ -~]{0,200}[!-~]$)rer6rmatch)r[rZ_vb_patternrrrrs

r__main__)rFrGr1)NNNN)+__version__iorrrZcollections.abcrr3rZurllib.parser>Zemail.parserrZ
email.messagerrrr__all__rrr rrr&rr9r@r
rr^rrr	r
rrrrrrrrqrrrr<module>sf#	
F
:'
/