shell bypass 403
o
`bo � @ s d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ m
Z
mZ d dlm
Z
d dlmZ e j�e�ZejZe j�ed�ZG dd� de �ZG dd � d e
�ZG d
d� de�ZG dd
� d
ej�Zdeedd�dd�Zedk�rd dlZejdd�Z e j!dde"ddd� e j!ddddddd� e j!d d!d"d#d$d%d� e j!d&d'e#d(d)d*� e j!d+d,e#d-d.� e j!d/d0e#d(d1d*� e �$� Z%e%j&e
_&e%j'r�eZ(neZ(e �)� e(_*e�+ej,j-�Z.e.�/e� e%j0r�e.�1e%j0� e%j2r�e.�3e%j2� e%j4r�e.�5e%j4� ed2e%j6fe(e.�Z7e%j&�re8d3�9e%�� e7�:d4� dS dS )5� N)�
HTTPServer�SimpleHTTPRequestHandler�BaseHTTPRequestHandler)�support)�
socket_helperzkeycert.pemc @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�HTTPSServerc C s t �| ||� || _d S �N)�_HTTPServer�__init__�context)�self�server_address�
handler_classr � r �9/usr/local/python-3.10/lib/python3.10/test/ssl_servers.pyr
s
zHTTPSServer.__init__c C s d| j j| j| jf S )Nz
<%s %s:%s>)� __class__�__name__Zserver_name�server_port�r r r r �__str__ s ��zHTTPSServer.__str__c
C sZ z| j �� \}}| jj|dd�}W ||fS ty, } ztjr'tj� d| � � d }~ww )NT)Zserver_sidezGot an error:
%s
)
�socket�acceptr Zwrap_socket�OSErrorr �verbose�sys�stderr�write)r �sock�addrZsslconn�er r r �get_request! s ���zHTTPSServer.get_requestN)r �
__module__�__qualname__r
r r r r r r r s r c @ s* e Zd ZdZeZejZdd� Z dd� Z
dS )�RootedHTTPRequestHandlerz
TestHTTPS/1.0c C sz t j�|�d }tj�t j�|��}|�d�}td|�}| j }|D ]}tj�
|�\}}tj�|�\}}tj�||�}q!|S )z�Translate a /-separated PATH to the local filename syntax.
Components that mean special things to the local file system
(e.g. drive or directory names) are ignored. (XXX They should
probably be diagnosed.)
� �/N)�urllib�parse�urlparse�os�path�normpath�unquote�split�filter�root�
splitdrive�join)r r* �wordsZword�drive�headr r r �translate_path7 s
z'RootedHTTPRequestHandler.translate_pathc G s>