mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-04 09:57:38 +03:00 
			
		
		
		
	Implements #4407
This commit is contained in:
		
							parent
							
								
									8e9f7e90c3
								
							
						
					
					
						commit
						73d0c67a80
					
				| 
						 | 
				
			
			@ -18,7 +18,7 @@ from lib.core.enums import OS
 | 
			
		|||
from thirdparty.six import unichr as _unichr
 | 
			
		||||
 | 
			
		||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
 | 
			
		||||
VERSION = "1.4.10.22"
 | 
			
		||||
VERSION = "1.4.10.23"
 | 
			
		||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
 | 
			
		||||
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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -248,11 +248,15 @@ def unionUse(expression, unpack=True, dump=False):
 | 
			
		|||
    # Set kb.partRun in case the engine is called from the API
 | 
			
		||||
    kb.partRun = getPartRun(alias=False) if conf.api else None
 | 
			
		||||
 | 
			
		||||
    if Backend.isDbms(DBMS.MYSQL) and expressionFields:
 | 
			
		||||
    if Backend.getIdentifiedDbms() in (DBMS.MYSQL, DBMS.ORACLE) and expressionFields:
 | 
			
		||||
        match = re.search(r"SELECT\s*(.+?)\bFROM", expression, re.I)
 | 
			
		||||
        if match:
 | 
			
		||||
        if match and not (Backend.isDbms(DBMS.ORACLE) and FROM_DUMMY_TABLE[DBMS.ORACLE] in expression):
 | 
			
		||||
            kb.jsonAggMode = True
 | 
			
		||||
            if Backend.isDbms(DBMS.MYSQL):
 | 
			
		||||
                _ = expression.replace(expressionFields, "CONCAT('%s',JSON_ARRAYAGG(CONCAT_WS('%s',%s)),'%s')" % (kb.chars.start, kb.chars.delimiter, expressionFields, kb.chars.stop), 1)
 | 
			
		||||
            else:
 | 
			
		||||
                _ = expression.replace(expressionFields, "'%s'||JSON_ARRAYAGG(%s)||'%s'" % (kb.chars.start, ("||'%s'||" % kb.chars.delimiter).join(expressionFieldsList), kb.chars.stop), 1)
 | 
			
		||||
                _ = re.sub(r"(?i)\s*ORDER BY ROWNUM", "", _)
 | 
			
		||||
            output = _oneShotUnionUse(_, False)
 | 
			
		||||
            value = parseUnionPage(output)
 | 
			
		||||
            kb.jsonAggMode = False
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user