HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/twisted/web/test/__pycache__/injectionhelpers.cpython-38.pyc
U

s�@g��@s\dZddlZeedd��eeejd��Zeedd��ZGdd�de�Z	Gdd	�d	e�Z
dS)
zF
Helpers for URI and method injection tests.

@see: U{CVE-2019-12387}
�N��ascii�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�MethodInjectionTestsMixina9
    A mixin that runs HTTP method injection tests.  Define
    L{MethodInjectionTestsMixin.attemptRequestWithMaliciousMethod} in
    a L{twisted.trial.unittest.SynchronousTestCase} subclass to test
    how HTTP client code behaves when presented with malicious HTTP
    methods.

    @see: U{CVE-2019-12387}
    cCs
t��dS)z�
        Attempt to send a request with the given method.  This should
        synchronously raise a L{ValueError} if either is invalid.

        @param method: the method (e.g. C{GET})

        @param uri: the URI

        @type method:
        N��NotImplementedError��self�method�r�C/usr/lib/python3/dist-packages/twisted/web/test/injectionhelpers.py�!attemptRequestWithMaliciousMethodsz;MethodInjectionTestsMixin.attemptRequestWithMaliciousMethodc	Cs:|�t��}d}|�|�W5QRX|�t|j�d�dS)z�
        Issuing a request with a method that contains a carriage
        return and line feed fails with a L{ValueError}.
        sGET
X-Injected-Header: value�^Invalid methodN)�assertRaises�
ValueErrorr
�assertRegex�str�	exception)r	�cmr
rrr�test_methodWithCLRFRejected,sz5MethodInjectionTestsMixin.test_methodWithCLRFRejectedc
CsPtD]F}dt|g�f}|�t��}|�|�W5QRX|�t|j�d�qdS)z�
        Issuing a request with a method that contains unprintable
        ASCII characters fails with a L{ValueError}.
        �GET%srN)�UNPRINTABLE_ASCII�	bytearrayrrr
rrr�r	�cr
rrrr�'test_methodWithUnprintableASCIIRejected7s
zAMethodInjectionTestsMixin.test_methodWithUnprintableASCIIRejectedc
CsPtD]F}dt|g�f}|�t��}|�|�W5QRX|�t|j�d�qdS)zx
        Issuing a request with a method that contains non-ASCII
        characters fails with a L{ValueError}.
        rrN)�NONASCIIrrrr
rrrrrrr�test_methodWithNonASCIIRejectedCs
z9MethodInjectionTestsMixin.test_methodWithNonASCIIRejectedN)�__name__�
__module__�__qualname__�__doc__r
rrrrrrrrs

rc@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�URIInjectionTestsMixina
    A mixin that runs HTTP URI injection tests.  Define
    L{MethodInjectionTestsMixin.attemptRequestWithMaliciousURI} in a
    L{twisted.trial.unittest.SynchronousTestCase} subclass to test how
    HTTP client code behaves when presented with malicious HTTP
    URIs.
    cCs
t��dS)z�
        Attempt to send a request with the given URI.  This should
        synchronously raise a L{ValueError} if either is invalid.

        @param uri: the URI.

        @type method:
        Nrrrrr�attemptRequestWithMaliciousURIYs	z5URIInjectionTestsMixin.attemptRequestWithMaliciousURIc	Cs:|�t��}d}|�|�W5QRX|�t|j�d�dS)z�
        Issuing a request with a URI whose host contains a carriage
        return and line feed fails with a L{ValueError}.
        shttp://twisted
.invalid/path�^Invalid URIN�rrr#rrr�r	r�urirrr�test_hostWithCRLFRejectedesz0URIInjectionTestsMixin.test_hostWithCRLFRejectedc
CsPtD]F}dt|g�f}|�t��}|�|�W5QRX|�t|j�d�qdS)z�
        Issuing a request with a URI whose host contains unprintable
        ASCII characters fails with a L{ValueError}.
        �http://twisted%s.invalid/OKr$N�rrrrr#rrr�r	rr'rrrr�)test_hostWithWithUnprintableASCIIRejectedps
z@URIInjectionTestsMixin.test_hostWithWithUnprintableASCIIRejectedc
CsPtD]F}dt|g�f}|�t��}|�|�W5QRX|�t|j�d�qdS)z{
        Issuing a request with a URI whose host contains non-ASCII
        characters fails with a L{ValueError}.
        r)r$N�rrrrr#rrrr+rrr�test_hostWithNonASCIIRejected|s
z4URIInjectionTestsMixin.test_hostWithNonASCIIRejectedc	Cs:|�t��}d}|�|�W5QRX|�t|j�d�dS)z�
        Issuing a request with a URI whose path contains a carriage
        return and line feed fails with a L{ValueError}.
        shttp://twisted.invalid/
pathr$Nr%r&rrr�test_pathWithCRLFRejected�sz0URIInjectionTestsMixin.test_pathWithCRLFRejectedc
CsPtD]F}dt|g�f}|�t��}|�|�W5QRX|�t|j�d�qdS)z�
        Issuing a request with a URI whose path contains unprintable
        ASCII characters fails with a L{ValueError}.
        �http://twisted.invalid/OK%sr$Nr*r+rrr�)test_pathWithWithUnprintableASCIIRejected�s
z@URIInjectionTestsMixin.test_pathWithWithUnprintableASCIIRejectedc
CsPtD]F}dt|g�f}|�t��}|�|�W5QRX|�t|j�d�qdS)z{
        Issuing a request with a URI whose path contains non-ASCII
        characters fails with a L{ValueError}.
        r0r$Nr-r+rrr�test_pathWithNonASCIIRejected�s
z4URIInjectionTestsMixin.test_pathWithNonASCIIRejectedN)rrr r!r#r(r,r.r/r1r2rrrrr"Psr")r!�string�	frozenset�rangerZ	printablerr�objectrr"rrrr�<module>s��=