mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-10-31 07:57:47 +03:00 
			
		
		
		
	Fixes #4158
This commit is contained in:
		
							parent
							
								
									dad4879200
								
							
						
					
					
						commit
						ce9285381d
					
				|  | @ -18,7 +18,7 @@ from lib.core.enums import OS | ||||||
| from thirdparty.six import unichr as _unichr | from thirdparty.six import unichr as _unichr | ||||||
| 
 | 
 | ||||||
| # sqlmap version (<major>.<minor>.<month>.<monthly commit>) | # sqlmap version (<major>.<minor>.<month>.<monthly commit>) | ||||||
| VERSION = "1.4.4.0" | VERSION = "1.4.4.1" | ||||||
| TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" | TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" | ||||||
| TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} | TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} | ||||||
| VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE) | VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE) | ||||||
|  |  | ||||||
|  | @ -27,6 +27,7 @@ except ImportError: | ||||||
| 
 | 
 | ||||||
| _protocols = filterNone(getattr(ssl, _, None) for _ in ("PROTOCOL_TLSv1_2", "PROTOCOL_TLSv1_1", "PROTOCOL_TLSv1", "PROTOCOL_SSLv3", "PROTOCOL_SSLv23", "PROTOCOL_SSLv2")) | _protocols = filterNone(getattr(ssl, _, None) for _ in ("PROTOCOL_TLSv1_2", "PROTOCOL_TLSv1_1", "PROTOCOL_TLSv1", "PROTOCOL_SSLv3", "PROTOCOL_SSLv23", "PROTOCOL_SSLv2")) | ||||||
| _lut = dict((getattr(ssl, _), _) for _ in dir(ssl) if _.startswith("PROTOCOL_")) | _lut = dict((getattr(ssl, _), _) for _ in dir(ssl) if _.startswith("PROTOCOL_")) | ||||||
|  | _contexts = {} | ||||||
| 
 | 
 | ||||||
| class HTTPSConnection(_http_client.HTTPSConnection): | class HTTPSConnection(_http_client.HTTPSConnection): | ||||||
|     """ |     """ | ||||||
|  | @ -36,6 +37,12 @@ class HTTPSConnection(_http_client.HTTPSConnection): | ||||||
|     """ |     """ | ||||||
| 
 | 
 | ||||||
|     def __init__(self, *args, **kwargs): |     def __init__(self, *args, **kwargs): | ||||||
|  |         # NOTE: Dirty patch for https://bugs.python.org/issue38251 / https://github.com/sqlmapproject/sqlmap/issues/4158 | ||||||
|  |         if hasattr(ssl, "_create_default_https_context"): | ||||||
|  |             if None not in _contexts: | ||||||
|  |                 _contexts[None] = ssl._create_default_https_context() | ||||||
|  |             kwargs["context"] = _contexts[None] | ||||||
|  | 
 | ||||||
|         _http_client.HTTPSConnection.__init__(self, *args, **kwargs) |         _http_client.HTTPSConnection.__init__(self, *args, **kwargs) | ||||||
| 
 | 
 | ||||||
|     def connect(self): |     def connect(self): | ||||||
|  | @ -54,11 +61,12 @@ class HTTPSConnection(_http_client.HTTPSConnection): | ||||||
|             for protocol in [_ for _ in _protocols if _ >= ssl.PROTOCOL_TLSv1]: |             for protocol in [_ for _ in _protocols if _ >= ssl.PROTOCOL_TLSv1]: | ||||||
|                 try: |                 try: | ||||||
|                     sock = create_sock() |                     sock = create_sock() | ||||||
|                     context = ssl.SSLContext(protocol) |                     if protocol not in _contexts: | ||||||
|                     _ = context.wrap_socket(sock, do_handshake_on_connect=True, server_hostname=self.host) |                         _contexts[protocol] = ssl.SSLContext(protocol) | ||||||
|                     if _: |                     result = _contexts[protocol].wrap_socket(sock, do_handshake_on_connect=True, server_hostname=self.host) | ||||||
|  |                     if result: | ||||||
|                         success = True |                         success = True | ||||||
|                         self.sock = _ |                         self.sock = result | ||||||
|                         _protocols.remove(protocol) |                         _protocols.remove(protocol) | ||||||
|                         _protocols.insert(0, protocol) |                         _protocols.insert(0, protocol) | ||||||
|                         break |                         break | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user