403Webshell
Server IP : 46.245.81.90  /  Your IP : 216.73.216.85
Web Server : Apache
System : Linux server3ir.xdlhost.com 4.18.0-553.30.1.lve.el8.x86_64 #1 SMP Tue Dec 3 01:21:19 UTC 2024 x86_64
User : gmparts ( 1037)
PHP Version : 8.1.34
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/cloudlinux/venv/lib64/python3.11/site-packages/clcommon/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib64/python3.11/site-packages/clcommon/__pycache__/clconfpars.cpython-311.pyc
�

��Tj(8���ddlZddlZddlZddlZddlZddlZddlZddlmZGd�de	��Z
Gd�de	��ZdZd"d	�Z
d
Zdedefd
�Zd#d�ZiZd$d�Zejd��Zd�Zd%d�Zejdejejzejz��Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#edgd���Z$d�Z%d edefd!�Z&dS)&�N)�
namedtuplec��eZdZd�ZdS)�WebConfigParsingErrorc��||_dS�N��message��selfr	s  ��/builddir/build/BUILDROOT/alt-python27-cllib-3.4.41-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/clconfpars.py�__init__zWebConfigParsingError.__init__�
�������N��__name__�
__module__�__qualname__r
�rrrr�#����������rrc��eZdZd�ZdS)�WebConfigMissingc��||_dSrrr
s  rr
zWebConfigMissing.__init__rrNrrrrrrrrr�asectionFc�&�tjddd���}|rt|_|rbt	|d��5}|����tj��d��}ddd��n#1swxYwYn>t	|dd���5}|���}ddd��n#1swxYwY|�	d	t�d
�|z|���t|�t�����S)
NTF)�allow_no_value�
interpolation�strict�rb�replace�r�utf-8��encoding�[z]
)�source)�section)
�configparser�ConfigParser�str�optionxform�open�read�decode�locale�getpreferredencoding�read_string�SECHEAD�dict�items)�path�case_sensitive�ignore_bad_encoding�config�f�raws      r�loadr: s���
�
&�d�59�.3�5�5�5�F��!� �����
�$��
�
�	L���&�&�(�(�/�/�&�"=�"?�"?��K�K�C�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L���$��g�
.�
.�
.�	�!��&�&�(�(�C�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
���'�7�'�'�'�#�-�d��;�;�;�����W��-�-�.�.�.s#�:A>�>B�B�B=�=C�C)�'�"�val�returnc��|�t��r$|�t��r
|dd�S|S)zW
    Strips single or double quote char only if the quote present from both sides.
    ����)�
startswith�_QUOTES�endswith)r=s r�$_strip_escape_quotes_of_config_valuerE2s>���~�~�g����3�<�<��#8�#8���1�R�4�y���Jr�=c�f�i}t|ddd���5}|���D]m}|�|d��}	|\}}n#t$rY�+wxYw|���}|rt|��n|}|||���<�n	ddd��n#1swxYwY|S)Nr r!�surrogateescape)r#�errorsr@)r+�	readlines�split�
ValueError�striprE)	r4�	delimiter�strip_quotes�datar8�line�parts�key�values	         r�	load_fastrU;s��
�D�	
�d�C�'�2C�	D�	D�	D�&���K�K�M�M�	&�	&�D��J�J�y�!�,�,�E�
�"�
��U�U���
�
�
���
�����K�K�M�M�E� ��4�U�;�;�;��
�
!&�D��������	&�&�&�&�&�&�&�&�&�&�&�&����&�&�&�&� �Ks6�-B&�A
�	B&�

A�B&�A�AB&�&B*�-B*c���	t|}nV#t$rI	t|��x}t|<n+#ttjf$r|s�ix}t|<YnwxYwYnwxYw|S)zD
    Read ini file once (cached) and return its content as dict
    )�cache�KeyErrorr:�IOErrorr'�Error)r4�
ignore_errors�ress   r�	load_oncer]Rs���#��D�k�����#�#�#�	#�!%�d���+�C�5��;�;����+�,�	#�	#�	#� �
�� "�"�C�%��+�+�+�	#������#�����Js/�
�
A#�5�A#�%A�A#�A�A#�"A#z^[A-Za-z0-9_.\\-]+$c���t�|��std|�����dt|��vsdt|��vrtd|�����dS)z>Reject keys/values that would inject config directives (F-11).zchange_settings: invalid key �
�
z*change_settings: newline in value for key N)�_SAFE_KEY_RE�matchrLr))rSrTs  r�_validate_conf_kvrcesp�����c�"�"�B��@��@�@�A�A�A��s�5�z�z���T�S��Z�Z�/�/��M�c�M�M�N�N�N�0�/rc	���|���D]\}}t||���g}|rHtj|tjtjztjztjzd��}nYtj	tj
�|��pdtj
�|��dzd���\}}	tj
|dd���5}t|dd���5}	tj|��}	tj|���tj|	j����	tj|���|	j|	j��n#t,$rYnwxYwn#t.$rYnwxYw|D]�}
|
���}|r}|�d	��sh|�d
d��\}}
|���}||vr7|�|�d
||�d���|�|����|�|
����|D]'}||vr!|�|�d
||�d����(	ddd��n#1swxYwYddd��n#1swxYwYtj||��dS#t<$r(	tj|��n#t@$rYnwxYw�wxYw)
Ni��.z.tmp)�dir�prefix�suffix�wr!r"r �#rFr@r_)!r3rc�osr+�O_CREAT�O_EXCL�O_WRONLY�
O_NOFOLLOW�tempfile�mkstempr4�dirname�basename�fdopen�stat�fchmod�fileno�S_IMODE�st_mode�fchown�st_uid�st_gid�PermissionError�FileNotFoundErrorrMrBrK�write�appendr�
BaseException�unlink�OSError)�
settings_dictr4�tmp_path�k�v�	used_keys�fd�fout�fin�origrQ�
stripped_linerS�_s              r�change_settingsr�ms����#�#�%�%� � ���1��!�Q������I��@�
�W�X��Z�"�)�+�b�k�9�B�M�I�5�R�R��� �'������%�%�,���7�#�#�D�)�)�C�/��@�@�@���H�"�
�Y�r�3��
1�
1�
1�	@�T��T�3��1�1�1�	@�58�
��w�t�}�}���	�$�+�+�-�-���d�l�)C�)C�D�D�D���I�d�k�k�m�m�T�[�$�+�F�F�F�F��&�����D�������$�
�
�
���
�����	
!�	
!�� $�
�
���
� �!��)A�)A�#�)F�)F�!�*�0�0��a�8�8�F�C���)�)�+�+�C��m�+�+��
�
�c�#B�#B�M�#�,>�#B�#B�#B�C�C�C�!�(�(��-�-�-� ��
�
�4� � � � �$�
@�
@���i�'�'��J�J�#�>�>�
�c�(:�>�>�>�?�?�?��
@�1	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�6	�
�8�T�"�"�"�"�"������	��I�h�������	�	�	��D�	����
����s��K�(J�;J�=AF�2F�F�
F�
F�F�F�J�
F!�J� F!�!CJ�<J�J	�J�J	�J�K�J#�#K�&J#�'K�
K3�K!� K3�!
K.�+K3�-K.�.K3a
    (
      # Comments
      (:? \# .* $ )

      # Single-, double-quoted strings and bare strings without whitespaces
      | (:? "[^"\n]*?" )
      | (:? '[^'\n]*?' )
      | (:? [^"';\s\{\}]+ )

      # Structural characters
      | ;
      | \{
      | \}
      | \n
    )
    c�b�d�t�|��D��}d�|D��S)Nc3�nK�|]0}|�|�d���|�d��V��1dS)rN)�group)�.0rbs  r�	<genexpr>z _ngx_tokenize.<locals>.<genexpr>�sZ����������[�[��^�^��
���A��������rc3�DK�|]}|�d���|V��dS)rjN)rB)r��toks  rr�z _ngx_tokenize.<locals>.<genexpr>�s3����=�=�C�����)<�)<�=�C�=�=�=�=�=�=r)�_NGINX_TOKENS_RE�finditer)rP�tokenss  r�
_ngx_tokenizer��sD����%�.�.�t�4�4����F�>�=�6�=�=�=�=rc#�*K�|D]
}||vrdS|V��dSrr)�itr=r�s   r�_ngx_take_untilr��s:���������#�:�:��F�F��	�	�	�	�	�rc#�`K�d}|D]&}|dkr|dz
}n|dkr|dz}|dkrdS|V��'dS)Nr@�{�}r)r��lvl�ts   r�_ngx_take_until_block_endr��se����
�C�
������8�8��1�H�C�C�
�#�X�X��1�H�C���7�7��F�F�������rc��i}|D]@}|dkrt|��D]}�||vr"t|d��}t|��||<�A|S)z5Scan a block for required fields, skips nested blocksr�z;
)r�r��list)�block_tokens�need_fields�infor�r��value_tokenss      r�_ngx_scan_block_infor��sj��
�D��+�+���#�:�:�.�|�<�<�
�
����+���*�<��?�?�L��\�*�*�D��I���Krc#�zK�t|��}|D]�}|dkr�	t|d��D]}�t|��}t|d��}	|d}|d}n#t$rY�YwxYw|s|s�bt|d��t|d��d|�dg��vd	�V���d
S)aq
    Parse content of NGINX configuration in a manner tolerant to minor mistakes
    and extract relevant fields from all `server` directives.

    Relevant fields are:
    - `server_name`
    - `root` - returned as `document_root`
    - `ssl` - if `listen` field contains "ssl" word

    Doesn't handle interpolated values (ex. `${val}`) outside of quoted strings
    �serverr�)�server_name�root�listenr�r�r�sslr�)r��
document_rootr�N)r�r�r�r�rXrE�get)rPr�r�r�r�r�r�r�s        r�nginx_conf_loose_parserr��s�����4�
 �
 �F��
�
���(�?�?��
!���-�-�	�	�A��1��8�8��$�L�2S�T�T��	��}�-�K���<�D�D���	�	�	��H�	�����	�4�	��@��A��O�O�A�$�q�'�J�J��D�H�H�X�r�2�2�2�
�
�	
�	
�	
�	
�/
�
s�A!�!
A.�-A.c��tj�|��std|�����t	|��}tt
|����S)zGParse NGINX config file, see `nginx_conf_loose_parser` for more details�File does not exists )rkr4�isfiler�&read_unicode_file_with_decode_fallbackr�r�)�	conf_file�
dirty_datas  r�nginx_conf_parserr�sT��
�7�>�>�)�$�$�D��B�y�B�B�C�C�C�7�	�B�B�J��'�
�3�3�4�4�4rc	��tj�|��std|�����g}t	|�����}d�|D��}d}d}i}g}t
|��dkr�|�d��}d|vr�|���d}	d}
	|	�d��\}}
|
�	d	d
��}
n#t$r|	}YnwxYw|�|��|�|
��d}��d|vr|||<|dz
}d}g}��|r|�|����t
|��dk��|���D�]�}dd
d
dt|d��dd
�}|D�]O}
d|
vrD|
���d����	dd
��|d<�Kd|
vrC|
���d����d��|d<��d|
vr=d�d�|
���dd�D����|d<��d|
vr/|
���d���|d<d|
vrE|
���d������dk|d<��Q|�|�����|S)Nr�c�<�g|]}tjd|���|��S)z^((?!#).)*$)�re�search)r��is  r�
<listcomp>z&apache_conf_parser.<locals>.<listcomp>'s)��?�?�?�!�2�9�]�A�#>�#>�?�A�?�?�?rrFz<VirtualHostr@�0�:�>�Tz</VirtualHost>��userr�r��server_alias�portr��
ServerNamezwww.r��DocumentRootr<r��ServerAlias�,c3�4K�|]}t|��V��dSr)r))r��ns  rr�z%apache_conf_parser.<locals>.<genexpr>\s(����/Q�/Q�1��A���/Q�/Q�/Q�/Q�/Q�/Qrr��SuexecUserGroupr��	SSLEngine�onr�)rkr4r�rr��
splitlines�len�poprKrrLr��values�intrM�join�lower)r��	conf_data�data_allrP�ID�enable�result�vhost�out�ip_portr��iprTrQs              r�apache_conf_parserr�s*��
�7�>�>�)�$�$�D��B�y�B�B�C�C�C��I�5�i�@�@�K�K�M�M�H�?�?�x�?�?�?�D�	
�B�
�F�
�F��E�

�d�)�)�a�-�-��h�h�q�k�k���S� � ��i�i�k�k�!�n�G��D�
�"�=�=��-�-���D��|�|�C��,�,�����
�
�
�����
�����L�L������L�L������F���s�"�"��F�2�J���E�B��F��E���	��L�L������1�d�)�)�a�-�-�4��������� "�"$�!%��U�1�X����
����	F�	F�D��t�#�#�&*�j�j�l�l�1�o�&;�&;�&=�&=�&E�&E�f�b�&Q�&Q��]�#����%�%�(,�
�
���Q��(=�(=�(?�(?�(E�(E�c�(J�(J��_�%����$�$�'*�x�x�/Q�/Q��
�
���Q�R�R�@P�/Q�/Q�/Q�'Q�'Q��^�$�� �D�(�(�#�z�z�|�|�A��4�4�6�6��V���d�"�"�"�j�j�l�l�1�o�3�3�5�5�;�;�=�=��E��U������������s�2.C!�!C0�/C0c�|�tj�|��std|�����g}t	|�����}d}|D�]�}|���}|�d��r^|r|�|��ddddddd�}tj
d|��}|r"t|�d����nd|d<|���|�d	��r3|�
��}t|��d
kr|d|d	<��|�d��r4|�
��}t|��d
kr|d|d<��|�d
��r4|�
��}t|��d
kr|d|d<��g|�d��r4|�
��}t|��d
kr|d|d<���|�d��rd|d<���|r|�|��|S)z�
    Parsing Open Litespeed config
    Retrieves data from user's openlitespeed.conf
    :param: full httpd.conf path (/usr/local/directadmin/data/users/<username>/openlitespeed.conf)
    :return: list of virtual host configurations.
    zFile does not exist N�virtualHostFr�z-(\d+)r@r�r���docRootr��vhDomainr��	vhAliasesr��vhsslTr�)rkr4r�rr�r�rMrBr�r�r�r�r�rKr�)r�r�r��
vhost_dictrQ�
match_portrRs       r�openlitespeed_conf_parserr�hsC���7�>�>�)�$�$�C��A�i�A�A�B�B�B��I�5�i�@�@�K�K�M�M�H��J��"%�"%���z�z�|�|���?�?�=�)�)�
	R��
-�� � ��,�,�,�"&�t�d�*.��U�L�L�J���9�d�3�3�J�=G�!Q��Z�%5�%5�a�%8�%8�!9�!9�!9�T�J�v������?�?�6�"�"�	%��J�J�L�L�E��5�z�z�Q���%*�1�X�
�6�"��
�_�_�Y�
'�
'�
	%��J�J�L�L�E��5�z�z�Q���.3�A�h�
�?�+��
�_�_�Z�
(�
(�		%��J�J�L�L�E��5�z�z�Q���,1�!�H�
�=�)��
�_�_�[�
)�
)�	%��J�J�L�L�E��5�z�z�Q���-2�1�X�
�>�*��
�_�_�W�
%�
%�	%� $�J�u����%�����$�$�$��r�	PamLVECfg)�min_uid�cagefs_enabled�groupsc�Z�t|dd���5}|D]�}|�d��r�|���}t|��dkr�|ddkr�t|��dkrt	|d��nd	}t|��d
kr"tt	|d����nd}t|��dkr|d
�d
��ndg}t
|||��ccddd��S��	ddd��n#1swxYwYdS)aD
    Parse string like:
    "session      required      pam_lve.so      500      1     group1,group2"
    :param configfile: path to config file to parse
    :type configfile: str
    :return: PamLVECfg instance when pam_lve configuratiom is found, None otherwise
    :rtype: namedtuple
    :raises: IOError, ValueError
    r r!r"rj�r�z
pam_lve.so�i��F�r��wheelN)r+rBrKr�r��boolr�)�
configfiler8rQ�sr�r�r�s       r�parse_pam_lve_configr��s���
�j�#��	0�	0�	0�
B�A��		B�		B�D����s�#�#�
���
�
���A��1�v�v��{�{�q��t�|�3�3�'*�1�v�v��{�{�#�a��d�)�)�)���47��F�F�a�K�K��c�!�A�$�i�i����U��,/��F�F�a�K�K��1����C����g�Y�� ��.�&�A�A�A�A�
B�
B�
B�
B�
B�
B�
B�
B��		B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B��4s�C2D �D � D$�'D$�	file_pathc�6�t|d��5}|���}ddd��n#1swxYwY	|���S#t$r<t	jtjd|�d���|�d���cYSwxYw)NrzFailed to decode "zL" content as utf-8 - loading with placeholders for invalid unicode sequencesr)rI)r+r,r-�UnicodeDecodeError�syslog�LOG_WARNING)r�r8�raw_datas   rr�r��s���	
�i��	�	��!��6�6�8�8��������������������1���� � � ���1�1�1��
���x��x�x�x�	
�	
�	
����i��0�0�0�0�0�1���s�2�6�6�A�AB�B)FF)rFF)Fr)'r'r.rkr�rur�rp�collectionsr�	Exceptionrrr1r:rCr)rErUrWr]�compilerarcr��
IGNORECASE�	MULTILINE�VERBOSEr�r�r�r�r�r�r�r�r�r�r�r�rrr�<module>rs`������
�
�
�
�	�	�	�	�	�	�	�	�����
�
�
�
�����"�"�"�"�"�"������I����
�����y����
��
/�
/�
/�
/� ���c��c���������*	��
�
�
�
� �r�z�0�1�1��O�O�O�9�9�9�9�x�2�:��"�M�B�L� �2�:�-�%���,>�>�>����	�	�	�
�
�
� (
�(
�(
�V5�5�5�F�F�F�R6�6�6�r
�J�{�$K�$K�$K�L�L�	����2
1�c�
1�c�
1�
1�
1�
1�
1�
1r

Youez - 2016 - github.com/yon3zu
LinuXploit