mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-10-31 07:57:47 +03:00 
			
		
		
		
	fix for a bug reported by nightman (same as http://bugs.python.org/issue8797)
This commit is contained in:
		
							parent
							
								
									6c72e41972
								
							
						
					
					
						commit
						562a6440d1
					
				|  | @ -79,6 +79,7 @@ from lib.parse.configfile import configFileParser | ||||||
| from lib.parse.payloads import loadPayloads | from lib.parse.payloads import loadPayloads | ||||||
| from lib.request.connect import Connect as Request | from lib.request.connect import Connect as Request | ||||||
| from lib.request.proxy import ProxyHTTPSHandler | from lib.request.proxy import ProxyHTTPSHandler | ||||||
|  | from lib.request.basicauthhandler import SmartHTTPBasicAuthHandler | ||||||
| from lib.request.certhandler import HTTPSCertAuthHandler | from lib.request.certhandler import HTTPSCertAuthHandler | ||||||
| from lib.request.rangehandler import HTTPRangeHandler | from lib.request.rangehandler import HTTPRangeHandler | ||||||
| from lib.request.redirecthandler import SmartRedirectHandler | from lib.request.redirecthandler import SmartRedirectHandler | ||||||
|  | @ -813,7 +814,7 @@ def __setHTTPAuthentication(): | ||||||
|         passwordMgr.add_password(None, "%s://%s" % (conf.scheme, conf.hostname), authUsername, authPassword) |         passwordMgr.add_password(None, "%s://%s" % (conf.scheme, conf.hostname), authUsername, authPassword) | ||||||
| 
 | 
 | ||||||
|         if aTypeLower == "basic": |         if aTypeLower == "basic": | ||||||
|             authHandler = urllib2.HTTPBasicAuthHandler(passwordMgr) |             authHandler = SmartHTTPBasicAuthHandler(passwordMgr) | ||||||
| 
 | 
 | ||||||
|         elif aTypeLower == "digest": |         elif aTypeLower == "digest": | ||||||
|             authHandler = urllib2.HTTPDigestAuthHandler(passwordMgr) |             authHandler = urllib2.HTTPDigestAuthHandler(passwordMgr) | ||||||
|  |  | ||||||
							
								
								
									
										33
									
								
								lib/request/basicauthhandler.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								lib/request/basicauthhandler.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | #!/usr/bin/env python | ||||||
|  | 
 | ||||||
|  | """ | ||||||
|  | $Id$ | ||||||
|  | 
 | ||||||
|  | Copyright (c) 2006-2010 sqlmap developers (http://sqlmap.sourceforge.net/) | ||||||
|  | See the file 'doc/COPYING' for copying permission | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  | import urllib2 | ||||||
|  | 
 | ||||||
|  | class SmartHTTPBasicAuthHandler(urllib2.HTTPBasicAuthHandler): | ||||||
|  |     """ | ||||||
|  |     Reference: http://selenic.com/hg/rev/6c51a5056020 | ||||||
|  |     Fix for a: http://bugs.python.org/issue8797 | ||||||
|  |     """ | ||||||
|  |     def __init__(self, *args, **kwargs): | ||||||
|  |         urllib2.HTTPBasicAuthHandler.__init__(self, *args, **kwargs) | ||||||
|  |         self.retried_req = None | ||||||
|  | 
 | ||||||
|  |     def reset_retry_count(self): | ||||||
|  |         # Python 2.6.5 will call this on 401 or 407 errors and thus loop | ||||||
|  |         # forever. We disable reset_retry_count completely and reset in | ||||||
|  |         # http_error_auth_reqed instead. | ||||||
|  |         pass | ||||||
|  | 
 | ||||||
|  |     def http_error_auth_reqed(self, auth_header, host, req, headers): | ||||||
|  |         # Reset the retry counter once for each request. | ||||||
|  |         if req is not self.retried_req: | ||||||
|  |             self.retried_req = req | ||||||
|  |             self.retried = 0 | ||||||
|  |         return urllib2.HTTPBasicAuthHandler.http_error_auth_reqed( | ||||||
|  |                         self, auth_header, host, req, headers) | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user