mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-10-30 23:47:45 +03:00 
			
		
		
		
	Python3 fix (parsing of headers)
This commit is contained in:
		
							parent
							
								
									b2c8ba10cd
								
							
						
					
					
						commit
						4a12493d85
					
				|  | @ -98,6 +98,7 @@ class ReqHandler(BaseHTTPRequestHandler): | ||||||
| 
 | 
 | ||||||
|             if "<script>" in unquote_plus(query): |             if "<script>" in unquote_plus(query): | ||||||
|                 self.send_response(INTERNAL_SERVER_ERROR) |                 self.send_response(INTERNAL_SERVER_ERROR) | ||||||
|  |                 self.send_header("X-Powered-By", "Express") | ||||||
|                 self.send_header("Connection", "close") |                 self.send_header("Connection", "close") | ||||||
|                 self.end_headers() |                 self.end_headers() | ||||||
|                 self.wfile.write("CLOUDFLARE_ERROR_500S_BOX".encode(UNICODE_ENCODING)) |                 self.wfile.write("CLOUDFLARE_ERROR_500S_BOX".encode(UNICODE_ENCODING)) | ||||||
|  |  | ||||||
|  | @ -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.5.1.38" | VERSION = "1.5.1.39" | ||||||
| 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) | ||||||
|  |  | ||||||
|  | @ -46,7 +46,7 @@ def vulnTest(): | ||||||
|         ("--dummy", ("all tested parameters do not appear to be injectable", "does not seem to be injectable", "there is not at least one", "~might be injectable")), |         ("--dummy", ("all tested parameters do not appear to be injectable", "does not seem to be injectable", "there is not at least one", "~might be injectable")), | ||||||
|         ("-u '<url>&id2=1' -p id2 -v 5 --flush-session --level=5 --test-filter='AND boolean-based blind - WHERE or HAVING clause (MySQL comment)'", ("~1AND",)), |         ("-u '<url>&id2=1' -p id2 -v 5 --flush-session --level=5 --test-filter='AND boolean-based blind - WHERE or HAVING clause (MySQL comment)'", ("~1AND",)), | ||||||
|         ("--list-tampers", ("between", "MySQL", "xforwardedfor")), |         ("--list-tampers", ("between", "MySQL", "xforwardedfor")), | ||||||
|         ("-r <request> --flush-session -v 5 --test-skip='heavy' --save=<config>", ("CloudFlare", "possible DBMS: 'SQLite'", "User-agent: foobar", "~Type: time-based blind", "saved command line options to the configuration file")), |         ("-r <request> --flush-session -v 5 --test-skip='heavy' --save=<config>", ("CloudFlare", "web application technology: Express", "possible DBMS: 'SQLite'", "User-agent: foobar", "~Type: time-based blind", "saved command line options to the configuration file")), | ||||||
|         ("-c <config>", ("CloudFlare", "possible DBMS: 'SQLite'", "User-agent: foobar", "~Type: time-based blind")), |         ("-c <config>", ("CloudFlare", "possible DBMS: 'SQLite'", "User-agent: foobar", "~Type: time-based blind")), | ||||||
|         ("<piped> -r <request> -l <log> --flush-session --banner --technique=B", ("banner: '3.", "STDIN")), |         ("<piped> -r <request> -l <log> --flush-session --banner --technique=B", ("banner: '3.", "STDIN")), | ||||||
|         ("-l <log> --flush-session --keep-alive --skip-waf -v 5 --technique=U --union-from=users --banner --parse-errors", ("banner: '3.", "ORDER BY term out of range", "~xp_cmdshell", "Connection: keep-alive")), |         ("-l <log> --flush-session --keep-alive --skip-waf -v 5 --technique=U --union-from=users --banner --parse-errors", ("banner: '3.", "ORDER BY term out of range", "~xp_cmdshell", "Connection: keep-alive")), | ||||||
|  |  | ||||||
|  | @ -11,7 +11,6 @@ from lib.core.common import parseXmlFile | ||||||
| from lib.core.data import kb | from lib.core.data import kb | ||||||
| from lib.core.data import paths | from lib.core.data import paths | ||||||
| from lib.parse.handler import FingerprintHandler | from lib.parse.handler import FingerprintHandler | ||||||
| from thirdparty.six.moves import filter as _filter |  | ||||||
| 
 | 
 | ||||||
| def headersParser(headers): | def headersParser(headers): | ||||||
|     """ |     """ | ||||||
|  | @ -30,7 +29,7 @@ def headersParser(headers): | ||||||
|             "x-powered-by": os.path.join(paths.SQLMAP_XML_BANNER_PATH, "x-powered-by.xml"), |             "x-powered-by": os.path.join(paths.SQLMAP_XML_BANNER_PATH, "x-powered-by.xml"), | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|     for header in _filter(lambda _: _ in kb.headerPaths, headers): |     for header in (_.lower() for _ in headers if _.lower() in kb.headerPaths): | ||||||
|         value = headers[header] |         value = headers[header] | ||||||
|         xmlfile = kb.headerPaths[header] |         xmlfile = kb.headerPaths[header] | ||||||
|         handler = FingerprintHandler(value, kb.headersFp) |         handler = FingerprintHandler(value, kb.headersFp) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user