Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_cgi.cpython-310.pyc
o

�9jY�@s�ddlZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZddlm
Z
Gdd�d�Ze�e_Gdd	�d	�Zd
d�Zded
�fded
�fded
�fdifdifdddgifded
�fded
�fded�fdddgifdddgifdddgifdddgifded
�fd ed!�fd"d#gd$gd%�fd&dd#d'gifd(d)gd*gd+gd,�fd-d.gd/gd0gd1gd2gd3gd4gd5gd6�fd7d8gd9gd:gd)gd;gd<gd=�fgZd>d?�Zd@dA�ZdBdC�ZdDdE�ZGdFdG�dGej�ZdHZdIZdJZdKZdLZedMkr�e��dSdS)N�N)�
namedtuple)�StringIO�BytesIO)�support)�warnings_helperc@seZdZgZejZdS)�HackedSysModuleN)�__name__�
__module__�__qualname__�argv�sys�stdin�rr�$/usr/lib/python3.10/test/test_cgi.pyrs
rc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ComparableExceptioncCs
||_dS�N)�err)�selfrrrr�__init__�
zComparableException.__init__cCs
t|j�Sr)�strr�rrrr�__str__rzComparableException.__str__cCs*t|t�stS|jj|jko|jj|jkSr)�
isinstance�	Exception�NotImplementedr�	__class__�args)r�anExcrrr�__eq__s

�zComparableException.__eq__cCst|j|�Sr)�getattrr)r�attrrrr�__getattr__ �zComparableException.__getattr__N)rr	r
rrrr"rrrrrs
rc
Cs�i}|dkrd}d|d<||d<n"|dkr-t|�d��}d|d<d|d<tt|��|d<ntd	|��z	tj||d
d�WStyR}z
t|�WYd}~Sd}~ww)N�GET�REQUEST_METHOD�QUERY_STRING�POST�latin-1�!application/x-www-form-urlencoded�CONTENT_TYPE�CONTENT_LENGTHzunknown method: %s�)�strict_parsing)	r�encoder�len�
ValueError�cgi�parserr)�buf�method�env�fprrrr�do_test#s"
��r7��bad query field: ''�&z&&�=z=&=z=a�az&=az=a&z=&a�bad query field: 'a'zb=a�bzb+=azb za=b=aza=+b=az b=az&b=azb&=a�bad query field: 'b'za=a+b&b=b+c�a b�b c�r<r>za=a+b&a=b+a�b azx=1&y=2.0&z=2-3.%2b0�1�2.0�2-3.+0��x�y�zz�Hbc5161168c542333633315dee1182227:key_store_seqid=400006&cuyer=r&view=bustomer&order_id=0bb2e248638833d48cb7fed300000f1b&expire=964546263&lobale=en-US&kid=130003.300038&ss=env�400006�r�	964546263z
130003.300038zen-US� 0bb2e248638833d48cb7fed300000f1br5�bustomer)z1Hbc5161168c542333633315dee1182227:key_store_seqid�cuyer�expire�kid�lobale�order_id�ss�viewzQgroup_id=5470&set=custom&_assigned_to=31392&_status=1&_category=100&SUBMIT=Browse�Browse�31392�100�5470�custom)�SUBMIT�_assigned_to�	_category�_status�group_id�setcCst|td�S)N)�key)�sorted�repr)�seqrrr�norm_r#rfcC�dd�|D�S)NcSsg|]}|d�qS)rr��.0�prrr�
<listcomp>cszfirst_elts.<locals>.<listcomp>r��listrrr�
first_eltsb�rncCrg)NcSs g|]}|d|ddf�qS)rr,rrhrrrrkfs z%first_second_elts.<locals>.<listcomp>rrlrrr�first_second_eltserorpcCshd}t|�|��}|�d�tj|||d�}i}t|���D]\}}t|t�r,|�	|�p.|j
||<q|S)Nr(r)r6�environ�encoding)rr.�seekr1�FieldStorage�dict�itemsrrm�getlist�value)�datarqrr�
fake_stdin�form�result�k�vrrr�
gen_resulths
 rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
jed�dd��Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%d&gd'd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6S)7�CgiTestscCsPtt�d��}t�d�dd�}t�||�}dgdgdgdgd�}|�||�dS)	N�latin1�558��boundaryzCONTENT-LENGTH� Add �1234�
Testing 123.
r8)�submit�id�file�title)r�POSTDATAr.�BOUNDARYr1�parse_multipart�assertEqual)rr6r5r|�expectedrrr�test_parse_multipartvs��zCgiTests.test_parse_multipartcCsFd}t|�d��}dd�d�i}t�||�}ddgi}|�||�dS)NzY--JfISa01
Content-Disposition: form-data; name="submit-name"

just a string

--JfISa01--
r�r��JfISa01�submit-namezjust a string
)rr.r1r�r�)rr�r6r5r|r�rrr�+test_parse_multipart_without_content_lengths
z4CgiTests.test_parse_multipart_without_content_lengthcCs�d}d}t|�d��}|�d�tt|�d���d�}tj||ddd�}d	d
gi}|�||�|�d�d�|d	d�dd��dS)
Nr�u]--JfISa01
Content-Disposition: form-data; name="submit-name"
Content-Length: 3

☃
--JfISa01�utf8r�r��ascii�surrogateescape)rr�errorsr�u	���u☃r)rr.rr/r1r�r�)rr�r�r6r5r|r�rrr�%test_parse_multipart_invalid_encoding�s�
�
�z.CgiTests.test_parse_multipart_invalid_encodingcCs^t��}|�|�|�dt|��|�t|�t|����|j�t	dd�d��|�
|�dS)Nrt�MockFieldStorage�name�
fieldvalue)r1rt�assertFalse�assertInrdr�rm�keys�appendr�
assertTrue�r�fsrrr�test_fieldstorage_properties�s
z%CgiTests.test_fieldstorage_propertiescCsL|jttjdddid�|�ttjdd�tjddid	�}|�tt|�dS)
Nznot-a-file-objr%�PUT�rq�foo�barzcontent-type�
text/plain)�headers)�assertRaises�	TypeErrorr1rt�boolr�rrr�test_fieldstorage_invalid�s�z"CgiTests.test_fieldstorage_invalidcCstD]}\}}t|d�}|�||dt|��t|d�}|�||dt|��d|i}tj|d�}t|t�r|�t|�t|��|�	|�
�|�
��|�|�dd�d�|�
�D]'}||}|�||�t|�d	krs|�|�|�|�qW|�|�|�|d
�qWqdS)Nr$zError parsing %s method GETr'zError parsing %s method POSTr&r�znonexistent field�defaultr,r)
�parse_strict_test_casesr7r�rdr1rtrrur/�assertCountEqualr��getvaluer�)r�orig�expect�dr5r�rb�
expect_valrrr�test_strict�s&


��zCgiTests.test_strictcCsddgdgd�fddgdgdgd�fdtd	�fd
td	�fdtd�fd
td	�fdtd�fddgdgd�fddddgifg	}|D]@\}}d|i}tjd|d�}t|t�r~|��D]'}||}|�||�t|�dkrr|�|�	|�|�qV|�|�	|�|d�qVq>dS)Nz	x=1;y=2.0rDrE)rHrIzx=1;y=2.0;z=2-3.%2b0rFrG�;r9z;;z=;ar=z;b=azb;=ar?za=a+b;b=b+cr@rArBza=a+b;a=b+ar<rCr&)�	separatorrqr,r)
r0r1rtrrur�r�r/r�r�)r�parse_semicolonr�r�r5r�rbr�rrr�test_separator�s,




�
��zCgiTests.test_separator)�categorycCs�t�d�t�t_t�dd�t�dd�|�tj��d�tj�	tj
�r?dt_tj
t_t�dd�|�tj
�t�d�dSdS)N�Testingz%szTesting initlog 1z
Testing log 2z Testing initlog 1
Testing log 2
z
Testing log 3z
Testing log 4)r1�logr�logfp�initlogr�r��os�path�exists�devnull�logfile�
addCleanup�closelogrrrr�test_log�s
�zCgiTests.test_logcCs~Gdd�d�}|t�d��}|�|j�|�dd�|�d�ddi}tj||d	�}|�|jj�|�	|j
d
�|��dS)Nc@s&eZdZdd�Zddd�Zdd�ZdS)	z=CgiTests.test_fieldstorage_readline.<locals>.TestReadlineFilecSs||_d|_dS)Nr)r��numcalls)rr�rrrr�s
zFCgiTests.test_fieldstorage_readline.<locals>.TestReadlineFile.__init__NcSs(|jd7_|r|j�|�S|j��S)Nr,)r�r��readline)r�sizerrrr��s
zFCgiTests.test_fieldstorage_readline.<locals>.TestReadlineFile.readlinecSs.|jd}t||�}t|t�st|||�|S)Nr�)�__dict__r r�int�setattr)rr�r�r<rrrr"s



zICgiTests.test_fieldstorage_readline.<locals>.TestReadlineFile.__getattr__r)rr	r
rr�r"rrrr�TestReadlineFile�s
r�zwb+sxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxirr%r��r6rq�)�tempfile�
TemporaryFiler��close�writersr1rtr��
assertGreaterr�)rr��fr5r�rrr�test_fieldstorage_readline�s
z#CgiTests.test_fieldstorage_readlinec	Cs�dd�t�dd�}tt�d��}tj||dd�}|�t|j	�d�ddd	d
�dddd
�d
ddd
�dddd
�g}t
t|j	��D]}||��D]\}}t|j	||�}|�||�qFq>dS)Nr'� multipart/form-data; boundary={}r��r%r*r+r(�rqrr�r�r��r��filenamerxr�r8r��test.txtr�r�r��
�formatr�rr�r.r1rtr�r/rm�rangervr �	rr5r6r�r�rHr}�exp�gotrrr�test_fieldstorage_multiparts$�



���z$CgiTests.test_fieldstorage_multipartc	Cs�dd�t�dd�}tdt�d��}tj||dd�}|�t|j	�d�d	dd
d�ddd
d�dddd�dddd�g}t
t|j	��D]}||��D]\}}t|j	||�}|�||�qHq@dS)Nr'r��560r�s
r(r�r�r�r�r�r�r8r�r�r�r�r�r�r�rrr�.test_fieldstorage_multipart_leading_whitespace&s$�



���z7CgiTests.test_fieldstorage_multipart_leading_whitespacec
Cs�dd�t�dd�}dD]D}tt�|��}tj|||d�}|�t|j	�d�ddd	d
�g}t
t|j	��D]}||��D]\}}t|j	||�}	|�|	|�q;q3qdS)Nr'r�r�r�)z
iso-8859-1zutf-8r�r,r�uçñ€r�)
r�r�r�POSTDATA_NON_ASCIIr.r1rtr�r/rmr�rvr )
rr5rrr6r�r�rHr}r�r�rrr�%test_fieldstorage_multipart_non_ascii9s ����z.CgiTests.test_fieldstorage_multipart_non_asciics^d}d�_�fdd�}|d|d�|d|dd�|d|ddd|d�dS)NicsDd�dd�|}tt|��ddd�}��t||�d|�d�i�dS)	Nzp---123
Content-Disposition: form-data; name="upload"; filename="fake.txt"
Content-Type: text/plain

%s
---123--
�
z
�"multipart/form-data; boundary=-123r'�r+r*r%�uploadr�)�replacerr/r�rr.)�contentryrqrrr�checkLs
�
��z;CgiTests.test_fieldstorage_multipart_maxline.<locals>.checkrHr,�
rI)�maxDiff)r�maxliner�rrr�#test_fieldstorage_multipart_maxlineHs$z,CgiTests.test_fieldstorage_multipart_maxlinec
Csdd�t�ttt��d�}tt�d��}tj||dd�}|�	t|j
�d�|�	|j
djd�|�	|j
djd	�|�	|j
d
jd�|j
d
j}|�	t|�d�ddd
d�dddd�g}t
t|��D]}||��D]\}}t|||�}	|�	|	|�qkqcdS)Nr'r�r�r(r�r�rr��Larryr,�filesz	file1.txts... contents of file1.txt ...r�z	file2.gifs...contents of file2.gif...)r��BOUNDARY_W3rr/�POSTDATA_W3rr.r1rtr�rmr�rxr�rvr )
rr5r6r�r�r�rHr}r�r�rrr�test_fieldstorage_multipart_w3c_s*
�

���z(CgiTests.test_fieldstorage_multipart_w3ccCs~d}d}dd�|�tt|��d�}t|�d��}tj||dd�}|�t|j�d�|�|jd	j	d
�|�|jd	j
d�dS)Nr�z_--JfISa01
Content-Disposition: form-data; name="submit-name"
Content-Length: 5

Larry
--JfISa01r'r�r�r(r�r,rr�r�)r�rr/rr.r1rtr�rmr�rx)rr�r�r5r6r�rrr�%test_fieldstorage_part_content_lengthts
�z.CgiTests.test_fieldstorage_part_content_lengthcCs@td�}dd|d�}tj||d�}|�t|dj���d�dS)Nsa--MyBoundary
Content-Disposition: form-data; name="my-arg"; filename="foo"

Test

--MyBoundary--
r'z(multipart/form-data; boundary=MyBoundary)r%r*z
wsgi.inputr�zmy-arg�)rr1rtr�r/r��read)rr6r5�fieldsrrr�.test_field_storage_multipart_no_content_length�s�z7CgiTests.test_field_storage_multipart_no_content_lengthcCs�td�}ddi}tj||d��}|j��}|�|jj�Wd�n1s&wY|�|jj�|�|d�|�	t
d��|j��Wd�dS1sOwYdS)Ns
xxxxxxxxxxr%r�r��
xxxxxxxxxxzI/O operation on closed file)rr1rtr�r�r��closedr�r��assertRaisesRegexr0)rr6r5r�r�rrr�$test_fieldstorage_as_context_manager�s
�"�z-CgiTests.test_fieldstorage_as_context_manager�value1�value2x�value2y�value3�value4)�key1�key2�key3�key4cC�6d}tt|��dddd�}t||�}|�|j|�dS)Nz$key2=value2x&key3=value3&key4=value4r)zkey1=value1&key2=value2yr'�r+r*r&r%�rr/rr��
_qs_result�rryrqr~rrr�testQSAndUrlEncode�s
�
zCgiTests.testQSAndUrlEncodecCs�d�dgd�}tt|��ddd�}|�t��tjt|���|dd�Wd�n1s.wYd	}tt|��d
ddd�}|�t��tjt|���|d
d�Wd�n1s\wYtjt|���|dd�dS)Nr:za=a�r)r'r��
)r6rq�max_num_fieldsz�---123
Content-Disposition: form-data; name="a"

3
---123
Content-Type: application/x-www-form-urlencoded

a=4
---123
Content-Type: application/x-www-form-urlencoded

a=5
---123--
r�za=1&a=2rr�r�)	�joinrr/r�r0r1rtrr.)rryrqrrr�test_max_num_fields�s<
�
��
�
��

�zCgiTests.test_max_num_fieldscCr
)Nz�---123
Content-Disposition: form-data; name="key2"

value2y
---123
Content-Disposition: form-data; name="key3"

value3
---123
Content-Disposition: form-data; name="key4"

value4
---123--
r��key1=value1&key2=value2xr'rrrrrr�testQSAndFormData�s
�
zCgiTests.testQSAndFormDatacCsLd}tt|��dddd�}|j��}|�ddi�t||�}|�||�dS)NaE---123
Content-Disposition: form-data; name="key2"

value2y
---123
Content-Disposition: form-data; name="key3"

value3
---123
Content-Disposition: form-data; name="key4"

value4
---123
Content-Disposition: form-data; name="upload"; filename="fake.txt"
Content-Type: text/plain

this is the content of the fake file

---123--
r�rr'rr�s%this is the content of the fake file
)rr/r�copy�updaterr�)rryrqr|r~rrr�testQSAndFormDataFiles
�
�
zCgiTests.testQSAndFormDataFilecCs�|�t�d�dif�|�t�d�dif�|�t�d�dddif�|�t�d�dddif�|�t�d�ddd	d
�f�|�t�d�dd
dif�|�t�d�dd
dif�|�t�d�dddd�f�|�t�d�dddd�f�dS)Nr�ztext/vnd.just.made.this.up ; ztext/vnd.just.made.this.upztext/plain;charset=us-ascii�charsetzus-asciiztext/plain ; charset="us-ascii"z,text/plain ; charset="us-ascii"; another=opt�opt)r�anotherz attachment; filename="silly.txt"�
attachmentr�z	silly.txtz#attachment; filename="strange;name"zstrange;namez-attachment; filename="strange;name";size=123;�123)r�r�z-form-data; name="files"; filename="fo\"o;bar"z	form-datar�zfo"o;bar)r�r�)r�r1�parse_headerrrrr�test_parse_header#sH��
�
��
�
���zCgiTests.test_parse_headercCshd�}tj|t|d�dS)N>	r��dologr��nolog�maxlenr�r�r��valid_boundary)�not_exported)r�check__all__r1)rr(rrr�test_all@szCgiTests.test_allN)rr	r
r�r�r�r�r�r�r�r�ignore_warnings�DeprecationWarningr�r�r�r�r�r�r�r�r�rrrrrrr#r*rrrrr�ts<	

%�6"r�z6---------------------------721837373350705526688164684a-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="id"

1234
-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="title"


-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain

Testing 123.

-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="submit"

 Add 
-----------------------------721837373350705526688164684--
u�-----------------------------721837373350705526688164684
Content-Disposition: form-data; name="id"

çñ€
-----------------------------721837373350705526688164684
�AaB03xa�--AaB03x
Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="files"
Content-Type: multipart/mixed; boundary=BbC04y

--BbC04y
Content-Disposition: file; filename="file1.txt"
Content-Type: text/plain

... contents of file1.txt ...
--BbC04y
Content-Disposition: file; filename="file2.gif"
Content-Type: image/gif
Content-Transfer-Encoding: binary

...contents of file2.gif...
--BbC04y--
--AaB03x--
�__main__) r1r�rr��unittest�collectionsr�iorr�testr�test.supportrrrr7r0r�rfrnrpr�TestCaser�r�r�r�r�r�r�mainrrrr�<module>s�







�����*V�

Youez - 2016 - github.com/yon3zu
LinuXploit