mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-04 18:07:46 +03:00 
			
		
		
		
	Fixes #4204
This commit is contained in:
		
							parent
							
								
									788dcbf077
								
							
						
					
					
						commit
						667e4d00f2
					
				| 
						 | 
					@ -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.5.25"
 | 
					VERSION = "1.4.5.26"
 | 
				
			||||||
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)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,6 +49,7 @@ from lib.core.settings import IS_WIN
 | 
				
			||||||
from lib.core.settings import RESTAPI_DEFAULT_ADAPTER
 | 
					from lib.core.settings import RESTAPI_DEFAULT_ADAPTER
 | 
				
			||||||
from lib.core.settings import RESTAPI_DEFAULT_ADDRESS
 | 
					from lib.core.settings import RESTAPI_DEFAULT_ADDRESS
 | 
				
			||||||
from lib.core.settings import RESTAPI_DEFAULT_PORT
 | 
					from lib.core.settings import RESTAPI_DEFAULT_PORT
 | 
				
			||||||
 | 
					from lib.core.settings import VERSION_STRING
 | 
				
			||||||
from lib.core.shell import autoCompletion
 | 
					from lib.core.shell import autoCompletion
 | 
				
			||||||
from lib.core.subprocessng import Popen
 | 
					from lib.core.subprocessng import Popen
 | 
				
			||||||
from lib.parse.cmdline import cmdLineParser
 | 
					from lib.parse.cmdline import cmdLineParser
 | 
				
			||||||
| 
						 | 
					@ -657,6 +658,15 @@ def download(taskid, target, filename):
 | 
				
			||||||
        logger.warning("[%s] File does not exist %s" % (taskid, target))
 | 
					        logger.warning("[%s] File does not exist %s" % (taskid, target))
 | 
				
			||||||
        return jsonize({"success": False, "message": "File does not exist"})
 | 
					        return jsonize({"success": False, "message": "File does not exist"})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@get("/version")
 | 
				
			||||||
 | 
					def version(token=None):
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Fetch server version
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    logger.debug("Fetched version (%s)" % ("admin" if is_admin(token) else request.remote_addr))
 | 
				
			||||||
 | 
					    return jsonize({"success": True, "version": VERSION_STRING.split('/')[-1]})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, adapter=RESTAPI_DEFAULT_ADAPTER, username=None, password=None):
 | 
					def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, adapter=RESTAPI_DEFAULT_ADAPTER, username=None, password=None):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    REST-JSON API server
 | 
					    REST-JSON API server
 | 
				
			||||||
| 
						 | 
					@ -760,7 +770,7 @@ def client(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, username=Non
 | 
				
			||||||
            logger.critical(errMsg)
 | 
					            logger.critical(errMsg)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    commands = ("help", "new", "use", "data", "log", "status", "option", "stop", "kill", "list", "flush", "exit", "bye", "quit")
 | 
					    commands = ("help", "new", "use", "data", "log", "status", "option", "stop", "kill", "list", "flush", "version", "exit", "bye", "quit")
 | 
				
			||||||
    autoCompletion(AUTOCOMPLETE_TYPE.API, commands=commands)
 | 
					    autoCompletion(AUTOCOMPLETE_TYPE.API, commands=commands)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    taskid = None
 | 
					    taskid = None
 | 
				
			||||||
| 
						 | 
					@ -849,6 +859,13 @@ def client(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, username=Non
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
            logger.info("Switching to task ID '%s' " % taskid)
 | 
					            logger.info("Switching to task ID '%s' " % taskid)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        elif command in ("version",):
 | 
				
			||||||
 | 
					            raw = _client("%s/%s" % (addr, command))
 | 
				
			||||||
 | 
					            res = dejsonize(raw)
 | 
				
			||||||
 | 
					            if not res["success"]:
 | 
				
			||||||
 | 
					                logger.error("Failed to execute command %s" % command)
 | 
				
			||||||
 | 
					            dataToStdout("%s\n" % raw)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        elif command in ("list", "flush"):
 | 
					        elif command in ("list", "flush"):
 | 
				
			||||||
            raw = _client("%s/admin/%s" % (addr, command))
 | 
					            raw = _client("%s/admin/%s" % (addr, command))
 | 
				
			||||||
            res = dejsonize(raw)
 | 
					            res = dejsonize(raw)
 | 
				
			||||||
| 
						 | 
					@ -873,6 +890,7 @@ def client(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, username=Non
 | 
				
			||||||
            msg += "stop           Stop current task\n"
 | 
					            msg += "stop           Stop current task\n"
 | 
				
			||||||
            msg += "kill           Kill current task\n"
 | 
					            msg += "kill           Kill current task\n"
 | 
				
			||||||
            msg += "list           Display all tasks\n"
 | 
					            msg += "list           Display all tasks\n"
 | 
				
			||||||
 | 
					            msg += "version        Fetch server version\n"
 | 
				
			||||||
            msg += "flush          Flush tasks (delete all tasks)\n"
 | 
					            msg += "flush          Flush tasks (delete all tasks)\n"
 | 
				
			||||||
            msg += "exit           Exit this client\n"
 | 
					            msg += "exit           Exit this client\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user