mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-01 00:17:25 +03:00 
			
		
		
		
	Minor optimization
This commit is contained in:
		
							parent
							
								
									f38a2c2028
								
							
						
					
					
						commit
						f21388d550
					
				|  | @ -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.1.60" | VERSION = "1.4.1.61" | ||||||
| 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) | ||||||
|  | @ -683,7 +683,7 @@ LARGE_OUTPUT_THRESHOLD = 1024 ** 2 | ||||||
| SLOW_ORDER_COUNT_THRESHOLD = 10000 | SLOW_ORDER_COUNT_THRESHOLD = 10000 | ||||||
| 
 | 
 | ||||||
| # Give up on hash recognition if nothing was found in first given number of rows | # Give up on hash recognition if nothing was found in first given number of rows | ||||||
| HASH_RECOGNITION_QUIT_THRESHOLD = 10000 | HASH_RECOGNITION_QUIT_THRESHOLD = 1000 | ||||||
| 
 | 
 | ||||||
| # Regular expression used for automatic hex conversion and hash cracking of (RAW) binary column values | # Regular expression used for automatic hex conversion and hash cracking of (RAW) binary column values | ||||||
| HASH_BINARY_COLUMNS_REGEX = r"(?i)pass|psw|hash" | HASH_BINARY_COLUMNS_REGEX = r"(?i)pass|psw|hash" | ||||||
|  |  | ||||||
|  | @ -727,21 +727,31 @@ def attackDumpedTable(): | ||||||
|                             table[column]['length'] = max(table[column]['length'], len(table[column]['values'][i])) |                             table[column]['length'] = max(table[column]['length'], len(table[column]['values'][i])) | ||||||
| 
 | 
 | ||||||
| def hashRecognition(value): | def hashRecognition(value): | ||||||
|  |     """ | ||||||
|  |     >>> hashRecognition("179ad45c6ce2cb97cf1029e212046e81") == HASH.MD5_GENERIC | ||||||
|  |     True | ||||||
|  |     >>> hashRecognition("S:2BFCFDF5895014EE9BB2B9BA067B01E0389BB5711B7B5F82B7235E9E182C") == HASH.ORACLE | ||||||
|  |     True | ||||||
|  |     >>> hashRecognition("foobar") == None | ||||||
|  |     True | ||||||
|  |     """ | ||||||
|  | 
 | ||||||
|     retVal = None |     retVal = None | ||||||
| 
 | 
 | ||||||
|     isOracle, isMySQL = Backend.isDbms(DBMS.ORACLE), Backend.isDbms(DBMS.MYSQL) |     if value and len(value) >= 8 and ' ' not in value:   # Note: pre-filter condition (for optimization purposes) | ||||||
|  |         isOracle, isMySQL = Backend.isDbms(DBMS.ORACLE), Backend.isDbms(DBMS.MYSQL) | ||||||
| 
 | 
 | ||||||
|     if isinstance(value, six.string_types): |         if isinstance(value, six.string_types): | ||||||
|         for name, regex in getPublicTypeMembers(HASH): |             for name, regex in getPublicTypeMembers(HASH): | ||||||
|             # Hashes for Oracle and old MySQL look the same hence these checks |                 # Hashes for Oracle and old MySQL look the same hence these checks | ||||||
|             if isOracle and regex == HASH.MYSQL_OLD or isMySQL and regex == HASH.ORACLE_OLD: |                 if isOracle and regex == HASH.MYSQL_OLD or isMySQL and regex == HASH.ORACLE_OLD: | ||||||
|                 continue |  | ||||||
|             elif regex == HASH.CRYPT_GENERIC: |  | ||||||
|                 if any((value.lower() == value, value.upper() == value)): |  | ||||||
|                     continue |                     continue | ||||||
|             elif re.match(regex, value): |                 elif regex == HASH.CRYPT_GENERIC: | ||||||
|                 retVal = regex |                     if any((value.lower() == value, value.upper() == value)): | ||||||
|                 break |                         continue | ||||||
|  |                 elif re.match(regex, value): | ||||||
|  |                     retVal = regex | ||||||
|  |                     break | ||||||
| 
 | 
 | ||||||
|     return retVal |     return retVal | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user