OwlCyberSecurity - MANAGER
Edit File: cgi.cpython-36.opt-2.pyc
3 �Qgc�������������������@���s���d�Z�ddlmZmZmZ�ddlmZ�ddlZddlZddl Z ddlmZ�ddl mZ�ddlmZ�ddlZddlZddlZdd d ddd dddddddddgZdadadd��Zdd��Zdd��Zdd��Zeadadejdddfd d �Zd4d!d�Zd5d"d�Z d#d ��Z!d$d%��Z"d&d��Z#G�d'd��d�Z$G�d(d ��d �Z%ejfd)d�Z&d6d*d�Z'ejfd+d�Z(d,d��Z)d-d��Z*d.d��Z+d/d��Z,d7d0d�Z-d1d2��Z.e/d3k�r�e&���dS�)8z2.6�����)�StringIO�BytesIO� TextIOWrapper)�MappingN)� FeedParser)�Message)�warn�MiniFieldStorage�FieldStorage�parse�parse_qs� parse_qsl�parse_multipart�parse_header�test�print_exception� print_environ� print_form�print_directory�print_arguments�print_environ_usage�escape��c��������������G���sH���t�r.t�r.ytt�d�aW�n�tk r,���Y�nX�ts8tantat|����d�S�)N�a)�logfile�logfp�open�OSError�nolog�log�dolog)�allargs��r"����/usr/lib64/python3.6/cgi.py�initlog:���s���� r$���c�������������G���s���t�j|�|�d���d�S�)N� )r����write)Zfmt�argsr"���r"���r#���r ���]���s����r ���c��������������G���s���d�S�)Nr"���)r!���r"���r"���r#���r���a���s����r���c���������������C���s���da�trtj���d�atad�S�)Nr���)r���r����closer$���r���r"���r"���r"���r#����closeloge���s ����r)���c������� ������C���s\��|�d�krt�j}�t|�d�r |�j}nd}t|�t�r4|�j}�d|krDd|d<�|d�dk�rt|d��\}}|dkrxt|�||d�S�|d kr�t |d ��}t r�|t kr�td��|�j|�j |�} nd} d |kr�| r�| d�} | |d ��} n*t�jdd����r| r�| d�} | t�jd��} | |d <�n<d |k�r |d �} n(t�jdd����r<t�jd�} nd} | |d <�tjj| |||d�S�)N�encodingzlatin-1�REQUEST_METHOD�GET�POST�CONTENT_TYPEzmultipart/form-data)� separatorz!application/x-www-form-urlencoded�CONTENT_LENGTHzMaximum content length exceededr����QUERY_STRING�&����)r*���)�sys�stdin�hasattrr*���� isinstancer����bufferr���r����int�maxlen� ValueError�read�decode�argv�urllibr���r���) �fp�environ�keep_blank_values�strict_parsingr/���r*����ctype�pdict�clength�qsr"���r"���r#���r���x���sH���� �� c�������������C���s ���t�dtd��tjj|�|||d�S�)Nz=cgi.parse_qs is deprecated, use urllib.parse.parse_qs instead����)r/���)r����DeprecationWarningr?���r���r���)rG���rB���rC���r/���r"���r"���r#���r�������s����c�������������C���s ���t�dtd��tjj|�|||d�S�)Nz?cgi.parse_qsl is deprecated, use urllib.parse.parse_qsl insteadrH���)r/���)r���rI���r?���r���r ���)rG���rB���rC���r/���r"���r"���r#���r �������s����c�������������C���s���dd�l�}d}d|kr|d�}t|�s2td|f���d|�}d|�d�}i�}d}�x�||k�r�d}d�} |r�|jj|��} | jd�}|r�yt|�}W�n�tk r����Y�nX�|dkr�tr�|tkr�td��|�j|�} nd} g�}xD|�j ��} | s�|}P�| j d��r| j��}|||fk�rP�|j| ��q�W�| d�k�r&qR|dk��r�|�r�|d�} | dd���d k�r^| d�d��} n| dd���dk�r|| d�d��} | |d<�dj |�} | d�} | �s�qRt| �\}}|d k�r�qRd|krR|d�}nqR||k�r�||�j| ��qR| g||<�qRW�|S�)Nr���������boundaryz&Invalid boundary in multipart form: %rs���--r3���zcontent-lengthzMaximum content length exceededrH���s��� ���� zcontent-dispositionz form-data�name���rN������rO���rN���rN���rN���)Zhttp.client�valid_boundaryr;���ZclientZ parse_headers�getr9���r:���r<����readline� startswith�rstrip�append�joinr���)r@���rE���ZhttprK���ZnextpartZlastpartZpartdict� terminator�bytes�data�headersrF����lines�line�keyZparamsrM���r"���r"���r#���r�������s|���� c�������������c���s����x�|�d�d��dkr�|�dd���}�|�j�d�}x<|dkrd|�jdd|�|�jdd|��d�rd|�j�d|d��}q*W�|dk�rvt|��}|�d�|��}|j��V��|�|d���}�qW�d�S�)Nr3����;r����"z\"rH���)�find�count�len�strip)�s�end�fr"���r"���r#����_parseparam/��s���� * rg���c�������������C���s����t�d|���}|j��}i�}x�|D�]�}|jd�}|dkr|d�|��j��j��}||d�d���j��}t|�dkr�|d�|d ���ko�dkn��r�|dd��}|jdd�jd d�}|||<�qW�||fS�)Nr^����=r���r3���rH���r_���z\\�\z\"rN���rN���)rg����__next__r`���rc����lowerrb����replace)r\����partsr]���rE����p�irM����valuer"���r"���r#���r���;��s���� ,c���������������@���s<���e�Zd�ZdZdZdZdZi�ZdZi�Z i�Z dd��Zdd��ZdS�)r ���Nc�������������C���s���||�_�||�_d�S�)N)rM���rp���)�selfrM���rp���r"���r"���r#����__init__a��s����zMiniFieldStorage.__init__c�������������C���s���d|�j�|�jf�S�)NzMiniFieldStorage(%r, %r))rM���rp���)rq���r"���r"���r#����__repr__g��s����zMiniFieldStorage.__repr__) �__name__� __module__�__qualname__�filename�list�type�file�type_options�disposition�disposition_optionsrZ���rr���rs���r"���r"���r"���r#���r ���S��s���c���������������@���s����e�Zd�Zdddejdddddddfdd�Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zd:dd�Z d;dd�Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��ZdZd&d'��Zd(d)��Zd<Zd,d-��Zd.d/��Zd0d1��Zd2d3��Zd4d5��Zd6d7��Zd8d9��ZdS�)=r ���NrJ���r���zutf-8rl���c�������������C���sR��d}||�_�||�_| |�_||�_d|kr0|d�j��}d�|�_|dksF|dkr�d|krX|d�} ntjdd���rrtjd�} nd} | jt j ��d�} t| �}|d�kr�dd i}|d�kr�i�}|d kr�d |d<�d|kr�|d�|d<�d|kr�|d�|�_d|kr�|d�|d <�nt|t tf��std��||�_|d�k�r*tjj|�_n<t|t��r@|j|�_n&t|d��oTt|d��s`td��||�_||�_| |�_t|t��s�tdt|�j���||�_d|�_||�_di��}}d|�jk�r�t|�jd��\}}||�_||�_ d�|�_!d|k�r�|d�|�_!d�|�_"d|k�r |d�|�_"|�j"d�k |�_#d|�jk�r6t|�jd��\}}n(|�j�sH|d k�rTdi��}}n d i��}}||�_||�_$d|k�r�|d�j|�j�|�_%nd|�_%d}d |�jk�r�yt&|�jd ��}W�n�t'k �r����Y�nX�t(�r�|t(k�r�t'd��||�_)|�jd�k�r�|�r�||�_d��|�_*|�_+d|�_,|d k�r$|�j-���n*|d�d��dk�rF|�j.|||��n|�j/���d�S�)Nr,���r+���ZHEADr1���r3���r����surrogateescapezcontent-typez!application/x-www-form-urlencodedr-���r.���r0���zcontent-lengthz?headers must be mapping or an instance of email.message.Messager<���rR���zfp must be file pointerz#outerboundary must be bytes, not %sr���zcontent-dispositionrM���rw���z text/plainrK���rJ���zMaximum content length exceeded� ���z multipart/rN���)0rB���rC����max_num_fieldsr/����upper� qs_on_postr4���r>����encode�locale�getpreferredencodingr���r7���r���r���� TypeErrorrZ���r5���r8���r@���r���r6���r*����errorsrX���ry���rt���� outerboundary� bytes_read�limitr���r|���r}���rM���rw����_binary_filer{���� innerboundaryr9���r;���r:����lengthrx���rz����done�read_urlencoded� read_multi�read_single)rq���r@���rZ���r����rA���rB���rC���r����r*���r����r����r/����methodrG���ZcdisprE���rD���Zclenr"���r"���r#���rr������s�����/ zFieldStorage.__init__c�������������C���s(���y|�j�j���W�n�tk r"���Y�nX�d�S�)N)rz���r(����AttributeError)rq���r"���r"���r#����__del__;��s����zFieldStorage.__del__c�������������C���s���|�S�)Nr"���)rq���r"���r"���r#���� __enter__A��s����zFieldStorage.__enter__c�������������G���s���|�j�j���d�S�)N)rz���r(���)rq���r'���r"���r"���r#����__exit__D��s����zFieldStorage.__exit__c�������������C���s���d|�j�|�j|�jf�S�)NzFieldStorage(%r, %r, %r))rM���rw���rp���)rq���r"���r"���r#���rs���G��s����zFieldStorage.__repr__c�������������C���s���t�|�j���S�)N)�iter�keys)rq���r"���r"���r#����__iter__L��s����zFieldStorage.__iter__c�������������C���sT���|dkrt�|��|�jr:|�jjd��|�jj��}|�jjd��n|�jd�k rL|�j}nd�}|S�)Nrp���r���)r����rz����seekr<���rx���)rq���rM���rp���r"���r"���r#����__getattr__O��s���� zFieldStorage.__getattr__c�������������C���sb���|�j�d�krtd��g�}x"|�j�D�]}|j|kr|j|��qW�|sFt|��t|�dkrZ|d�S�|S�d�S�)Nz not indexabler3���r���)rx���r����rM���rU����KeyErrorrb���)rq���r]����found�itemr"���r"���r#����__getitem__\��s���� �zFieldStorage.__getitem__c�������������C���s8���||�kr0|�|�}t�|t�r(dd��|D��S�|jS�n|S�d�S�)Nc�������������S���s���g�|�] }|j��qS�r"���)rp���)�.0�xr"���r"���r#���� <listcomp>o��s����z)FieldStorage.getvalue.<locals>.<listcomp>)r7���rx���rp���)rq���r]����defaultrp���r"���r"���r#����getvaluej��s���� zFieldStorage.getvaluec�������������C���s4���||�kr,|�|�}t�|t�r$|d�jS�|jS�n|S�d�S�)Nr���)r7���rx���rp���)rq���r]���r����rp���r"���r"���r#����getfirstu��s���� zFieldStorage.getfirstc�������������C���s:���||�kr2|�|�}t�|t�r(dd��|D��S�|jgS�ng�S�d�S�)Nc�������������S���s���g�|�] }|j��qS�r"���)rp���)r����r����r"���r"���r#���r�������s����z(FieldStorage.getlist.<locals>.<listcomp>)r7���rx���rp���)rq���r]���rp���r"���r"���r#����getlist���s���� zFieldStorage.getlistc�������������C���s*���|�j�d�krtd��t�tdd��|�j�D����S�)Nz not indexablec�������������s���s���|�]}|j�V��qd�S�)N)rM���)r����r����r"���r"���r#���� <genexpr>���s����z$FieldStorage.keys.<locals>.<genexpr>)rx���r�����set)rq���r"���r"���r#���r�������s���� zFieldStorage.keysc����������������s*���|�j�d�krtd��t��fdd�|�j�D���S�)Nz not indexablec�������������3���s���|�]}|j���kV��qd�S�)N)rM���)r����r����)r]���r"���r#���r�������s����z,FieldStorage.__contains__.<locals>.<genexpr>)rx���r�����any)rq���r]���r"���)r]���r#����__contains__���s���� zFieldStorage.__contains__c�������������C���s���t�|�j���S�)N)rb���r����)rq���r"���r"���r#����__len__���s����zFieldStorage.__len__c�������������C���s���|�j�d�krtd��t|�j��S�)NzCannot be converted to bool.)rx���r�����bool)rq���r"���r"���r#����__bool__���s���� zFieldStorage.__bool__c���������� ���C���s����|�j�j|�j�}t|t�s0td|�j�t|�jf���|j|�j |�j �}|�jrT|d|�j�7�}tj j||�j|�j|�j |�j |�j|�jd�}dd��|D��|�_|�j���d�S�)Nz%s should return bytes, got %sr2���)r*���r����r����r/���c�������������S���s���g�|�]\}}t�||��qS�r"���)r ���)r����r]���rp���r"���r"���r#���r�������s����z0FieldStorage.read_urlencoded.<locals>.<listcomp>)r@���r<���r����r7���rX���r;���ry���rt���r=���r*���r����r����r?���r���r ���rB���rC���r����r/���rx���� skip_lines)rq���rG����queryr"���r"���r#���r�������s���� zFieldStorage.read_urlencodedc���������� ���C���sB��|�j�}t|�std|f���g�|�_|�jrftjj|�j|�j|�j |�j |�j|�j|�j d�}|�jjdd��|D����|�jpp|�j}|�jj��}t|t�s�td|�jt|�jf���|��jt|�7��_x6|j��d|�j��kr�|r�|�jj��}|��jt|�7��_q�W�|�j}|d�k �r|t|�j�8�}�x,t��} d} x$|�jj��}| |7�} |j���sP��qW�| �sBP�|��jt| �7��_| j| j|�j |�j���| j��}d|k�r�|d=�||�j||||||�j|�j�|�j |�j||�j d �} |d�k �r�|d 8�}| j�r�|t| j�8�}|dk��r�td��|��j| j7��_|�jj| ��| j �s.|�j|�j!��k�o&dkn���r P��q W�|�j"���d�S�) Nz&Invalid boundary in multipart form: %r)r*���r����r����r/���c�������������s���s���|�]\}}t�||�V��qd�S�)N)r ���)r����r]���rp���r"���r"���r#���r�������s����z*FieldStorage.read_multi.<locals>.<genexpr>z%s should return bytes, got %ss���--rJ���zcontent-length)r/���r3���r���zMax number of fields exceeded)#r����rP���r;���rx���r����r?���r���r ���rB���rC���r*���r����r����r/����extend�FieldStorageClass� __class__r@���rR���r7���rX���ry���rt���r����rb���rc���r���Zfeedr=���r(���r����rU���r����r����r����)rq���rA���rB���rC���Zibr�����klassZ first_liner�����parserZhdr_textrY���rZ����partr"���r"���r#���r�������sj���� (zFieldStorage.read_multic�������������C���s4���|�j�dkr|�j���|�j���n|�j���|�jjd��d�S�)Nr���)r�����read_binaryr����� read_linesrz���r����)rq���r"���r"���r#���r�������s ���� zFieldStorage.read_single����i���c�������������C���s����|�j���|�_|�j}|dkr�xx|dkr�|�jjt||�j��}t|t�sXt d|�jt |�jf���|��jt |�7��_|svd|�_P�|�jj|��|t |��}qW�d�S�)Nr���z%s should return bytes, got %sr3���rN���)� make_filerz���r����r@���r<����min�bufsizer7���rX���r;���ry���rt���r����rb���r����r&���)rq���ZtodorY���r"���r"���r#���r������s���� zFieldStorage.read_binaryc�������������C���s@���|�j�rt���|�_|�_nt���|�_|�_|�jr4|�j���n|�j���d�S�)N)r����r���rz����_FieldStorage__filer���r�����read_lines_to_outerboundary�read_lines_to_eof)rq���r"���r"���r#���r������s���� zFieldStorage.read_linesc�������������C���sv���|�j�d�k rF|�j�j��t|��dkrF|�j��|�_|�j�j��}|�jj|��d�|�_�|�jrZ|�jj|��n|�jj|j|�j |�j ���d�S�)Ni���)r�����tellrb���r����rz���r����r&���r����r=���r*���r����)rq���r\���rY���r"���r"���r#���Z__write��s���� zFieldStorage.__writec�������������C���s>���x8|�j�jd�}|��jt|�7��_|s,d|�_P�|�j|��qW�d�S�)Nr3�������i���rN���)r@���rR���r����rb���r�����_FieldStorage__write)rq���r\���r"���r"���r#���r����,��s����zFieldStorage.read_lines_to_eofc������� ������C���s,��d|�j��}|d�}d}d}d}�x||�jkr.P�|�jjd�}|��jt|�7��_|t|�7�}|sdd |�_P�|dkrx||�}d}|jd�r�|r�|j��}||kr�P�||kr�d|�_P�|}|j d�r�d}|d�d��}d}nJ|j d �r�d }|d�d��}d}n*|j d��rd}|d�d��}d}nd}d}|�j ||���q"W�d�S�)Ns���--rJ���Tr���r3���r�������� s��� rH���rL���Fi���rN���rO���rN���rN���)r����r����r@���rR���r����rb���r����rS���rT����endswithr����) rq���� next_boundary� last_boundaryZdelim�last_line_lfendZ_readr\����strippedlineZodelimr"���r"���r#���r����6��sP���� z(FieldStorage.read_lines_to_outerboundaryc�������������C���s����|�j��s|�jrd�S�d|�j��}|d�}d}xh|�jjd�}|��jt|�7��_|sTd|�_P�|jd�r�|r�|j��}||krtP�||kr�d|�_P�|jd�}q*W�d�S�)Ns���--Tr3���r����rL���i���rN���)r����r����r@���rR���r����rb���r����rc���)rq���r����r����r����r\���r����r"���r"���r#���r����g��s&���� zFieldStorage.skip_linesc�������������C���s&���|�j�rtjd�S�tjd|�jdd�S�d�S�)Nzwb+zw+r%���)r*����newline)r�����tempfileZ TemporaryFiler*���)rq���r"���r"���r#���r����}��s���� zFieldStorage.make_file)N)Ni� ��) rt���ru���rv����osrA���rr���r����r����r����rs���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r"���r"���r"���r#���r ���l��s>���+�" D 1c�������������C���s����t�d��t����tjt_yNt��}t���t���t|��t|���t ���dd��}|fdd�}t�d��|���W�n���t ���Y�nX�t�d��day&t��}t���t���t|��t|���W�n���t ���Y�nX�d�S�) NzContent-type: text/htmlc���������������S���s���t�d��d�S�)Nz,testing print_exception() -- <I>italics?</I>)�execr"���r"���r"���r#���rf������s����ztest.<locals>.fc�������������S���s ���|����d�S�)Nr"���)rf���r"���r"���r#����g���s����ztest.<locals>.gz9<H3>What follows is a test, not an actual exception:</H3>z*<H1>Second try with a small maxlen...</H1>�2���)�printr4����stdout�stderrr ���r���r���r���r���r���r���r:���)rA����formrf���r����r"���r"���r#���r������s4���� c�������������C���sx���|�d�krt�j��\}�}}dd�l}t���td��|j||�|j|�|��}tdtjdj|d�d����tj|d��f���~d�S�)Nr���z+<H3>Traceback (most recent call last):</H3>z<PRE>%s<B>%s</B></PRE>r���r3���rN���rN���) r4����exc_info� tracebackr����� format_tb�format_exception_only�htmlr���rV���)ry���rp����tbr����r����rx���r"���r"���r#���r������s���� c�������������C���s`���t�|�j���}t���td��td��x*|D�]"}tdtj|�dtj|�|����q(W�td��t���d�S�)Nz<H3>Shell Environment:</H3>z<DL>z<DT>z<DD>z</DL>)�sortedr����r����r����r���)rA���r����r]���r"���r"���r#���r������s���� "c�������������C���s����t�|�j���}t���td��|s&td��td��xb|D�]Z}tdtj|��d�dd��|�|�}tdtjtt|����d ���td tjt|�����q4W�td��t���d�S�)Nz<H3>Form Contents:</H3>z<P>No form fields.z<DL>z<DT>�:� )re���z<i>z</i>z<DD>z</DL>)r����r����r����r����r����reprry���)r����r����r]���rp���r"���r"���r#���r������s���� c��������������C���sj���t����t�d��ytj��}�W�n6�tk rP�}�zt�dtjt|����W�Y�d�d�}~X�nX�t�tj|����t����d�S�)Nz#<H3>Current Working Directory:</H3>zOSError:)r����r�����getcwdr���r����r����str)�pwd�msgr"���r"���r#���r������s����&c���������������C���s(���t����t�d��t����t�tj��t����d�S�)Nz <H3>Command Line Arguments:</H3>)r����r4���r>���r"���r"���r"���r#���r������s ���� c���������������C���s���t�d��d�S�)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> )r����r"���r"���r"���r#���r�����s����'c�������������C���sF���t�dtdd��|�jdd�}�|�jdd�}�|�jdd �}�|rB|�jd d�}�|�S�)Nz1cgi.escape is deprecated, use html.escape insteadrH���)� stacklevelr2���z&�<z<�>z>r_���z")r���rI���rl���)rd���Zquoter"���r"���r#���r���1��s���� c�������������C���s(���dd�l�}t|�t�rd}nd}|j||��S�)Nr���s���^[ -~]{0,200}[!-~]$z^[ -~]{0,200}[!-~]$)�rer7���rX����match)rd���r����Z_vb_patternr"���r"���r#���rP���=��s ���� rP����__main__)r���r���N)r���r���N)NNNN)N)0�__version__�ior���r���r����collectionsr���r4���r����Zurllib.parser?���Zemail.parserr���Z email.messager����warningsr���r����r����r�����__all__r���r���r$���r ���r���r)���r���r:���rA���r���r���r ���r���rg���r���r ���r ���r���r���r���r���r���r���r���r���rP���rt���r"���r"���r"���r#����<module>���s`���# E c����7' /