我最近在使用sqlmap时总是遇到[error]user quit的报错。重装了sqlmap也一样。源码处定位到了报错信息,但还是看不懂报错原因。求大神指教。(和图片上sqlmap报错无关,不管是什么数据包都是user quit)

#!/usr/bin/env python

"""

Copyright (c) 2006-2016 sqlmap developers (http://sqlmap.org/)

See the file 'doc/COPYING' for copying permission

"""

import sys

sys.dont_write_bytecode = True

from lib.utils import versioncheck # this has to be the first non-standard import

import bdb

import distutils

import glob

import inspect

import logging

import os

import re

import shutil

import sys

import thread

import threading

import time

import traceback

import warnings

warnings.filterwarnings(action="ignore", message=".*was already imported", category=UserWarning)

warnings.filterwarnings(action="ignore", category=DeprecationWarning)

from lib.core.data import logger

try:

from lib.controller.controller import start

from lib.core.common import banner

from lib.core.common import checkIntegrity

from lib.core.common import createGithubIssue

from lib.core.common import dataToStdout

from lib.core.common import getSafeExString

from lib.core.common import getUnicode

from lib.core.common import maskSensitiveData

from lib.core.common import setPaths

from lib.core.common import weAreFrozen

from lib.core.data import cmdLineOptions

from lib.core.data import conf

from lib.core.data import kb

from lib.core.data import paths

from lib.core.common import unhandledExceptionMessage

from lib.core.common import MKSTEMP_PREFIX

from lib.core.exception import SqlmapBaseException

from lib.core.exception import SqlmapShellQuitException

from lib.core.exception import SqlmapSilentQuitException

from lib.core.exception import SqlmapUserQuitException

from lib.core.option import initOptions

from lib.core.option import init

from lib.core.profiling import profile

from lib.core.settings import GIT_PAGE

from lib.core.settings import IS_WIN

from lib.core.settings import LEGAL_DISCLAIMER

from lib.core.settings import THREAD_FINALIZATION_TIMEOUT

from lib.core.settings import UNICODE_ENCODING

from lib.core.settings import VERSION

from lib.core.testing import smokeTest

from lib.core.testing import liveTest

from lib.parse.cmdline import cmdLineParser

from lib.utils.api import setRestAPILog

from lib.utils.api import StdDbOut

except KeyboardInterrupt:

errMsg = "user aborted"

logger.error(errMsg)

raise SystemExit

def modulePath():

"""

This will get us the program's directory, even if we are frozen

using py2exe

"""

try:

_ = sys.executable if weAreFrozen() else __file__

except NameError:

_ = inspect.getsourcefile(modulePath)

return getUnicode(os.path.dirname(os.path.realpath(_)), encoding=sys.getfilesystemencoding() or UNICODE_ENCODING)

def checkEnvironment():

paths.SQLMAP_ROOT_PATH = modulePath()

try:

os.path.isdir(paths.SQLMAP_ROOT_PATH)

except UnicodeEncodeError:

errMsg = "your system does not properly handle non-ASCII paths. "

errMsg += "Please move the sqlmap's directory to the other location"

logger.critical(errMsg)

raise SystemExit

if distutils.version.LooseVersion(VERSION) < distutils.version.LooseVersion("1.0"):

errMsg = "your runtime environment (e.g. PYTHONPATH) is "

errMsg += "broken. Please make sure that you are not running "

errMsg += "newer versions of sqlmap with runtime scripts for older "

errMsg += "versions"

logger.critical(errMsg)

raise SystemExit

def main():

"""

Main function of sqlmap when running from command line.

"""

try:

checkEnvironment()

setPaths()

banner()

# Store original command line options for possible later restoration

cmdLineOptions.update(cmdLineParser().__dict__)

initOptions(cmdLineOptions)

if hasattr(conf, "api"):

# Overwrite system standard output and standard error to write

# to an IPC database

sys.stdout = StdDbOut(conf.taskid, messagetype="stdout")

sys.stderr = StdDbOut(conf.taskid, messagetype="stderr")

setRestAPILog()

conf.showTime = True

dataToStdout("[!] legal disclaimer: %s\n\n" % LEGAL_DISCLAIMER, forceOutput=True)

dataToStdout("[*] starting at %s\n\n" % time.strftime("%X"), forceOutput=True)

init()

if conf.profile:

profile()

elif conf.smokeTest:

smokeTest()

elif conf.liveTest:

liveTest()

else:

try:

start()

except thread.error as ex:

if "can't start new thread" in getSafeExString(ex):

errMsg = "unable to start new threads. Please check OS (u)limits"

logger.critical(errMsg)

raise SystemExit

else:

raise

except SqlmapUserQuitException:

errMsg = "user quit"

try:

logger.error(errMsg)

except KeyboardInterrupt:

pass

except (SqlmapSilentQuitException, bdb.BdbQuit):

pass

except SqlmapShellQuitException:

cmdLineOptions.sqlmapShell = False

except SqlmapBaseException as ex:

errMsg = getSafeExString(ex)

try:

logger.critical(errMsg)

except KeyboardInterrupt:

pass

raise SystemExit

except KeyboardInterrupt:

print

errMsg = "user aborted"

try:

logger.error(errMsg)

except KeyboardInterrupt:

pass

except EOFError:

print

errMsg = "exit"

try:

logger.error(errMsg)

except KeyboardInterrupt:

pass

except SystemExit:

pass

except:

print

errMsg = unhandledExceptionMessage()

excMsg = traceback.format_exc()

try:

if not checkIntegrity():

errMsg = "code integrity check failed. "

errMsg += "You should retrieve the latest development version from official GitHub "

errMsg += "repository at '%s'" % GIT_PAGE

logger.critical(errMsg)

print

print excMsg.strip()

raise SystemExit

elif any(_ in excMsg for _ in ("No space left", "Disk quota exceeded")):

errMsg = "no space left on output device"

logger.error(errMsg)

raise SystemExit

elif all(_ in excMsg for _ in ("No such file", "_'", "self.get_prog_name()")):

errMsg = "corrupted installation detected ('%s'). " % excMsg.strip().split('\n')[-1]

errMsg += "You should retrieve the latest development version from official GitHub "

errMsg += "repository at '%s'" % GIT_PAGE

logger.error(errMsg)

raise SystemExit

elif "Read-only file system" in excMsg:

errMsg = "output device is mounted as read-only"

logger.error(errMsg)

raise SystemExit

elif "_mkstemp_inner" in excMsg:

errMsg = "there has been a problem while accessing temporary files"

logger.error(errMsg)

raise SystemExit

elif "can't start new thread" in excMsg:

errMsg = "there has been a problem while creating new thread instance. "

errMsg += "Please make sure that you are not running too many processes"

if not IS_WIN:

errMsg += " (or increase the 'ulimit -u' value)"

logger.error(errMsg)

raise SystemExit

elif all(_ in excMsg for _ in ("pymysql", "configparser")):

errMsg = "wrong initialization of pymsql detected (using Python3 dependencies)"

logger.error(errMsg)

raise SystemExit

elif "bad marshal data (unknown type code)" in excMsg:

match = re.search(r"\s*(.+)\s+ValueError", excMsg)

errMsg = "one of your .pyc files are corrupted%s" % (" ('%s')" % match.group(1) if match else "")

errMsg += ". Please delete .pyc files on your system to fix the problem"

logger.error(errMsg)

raise SystemExit

elif "valueStack.pop" in excMsg and kb.get("dumpKeyboardInterrupt"):

raise SystemExit

for match in re.finditer(r'File "(.+?)", line', excMsg):

file_ = match.group(1)

file_ = os.path.relpath(file_, os.path.dirname(__file__))

file_ = file_.replace("\\", '/')

file_ = re.sub(r"\.\./", '/', file_).lstrip('/')

excMsg = excMsg.replace(match.group(1), file_)

errMsg = maskSensitiveData(errMsg)

excMsg = maskSensitiveData(excMsg)

if hasattr(conf, "api"):

logger.critical("%s\n%s" % (errMsg, excMsg))

else:

logger.critical(errMsg)

kb.stickyLevel = logging.CRITICAL

dataToStdout(excMsg)

createGithubIssue(errMsg, excMsg)

except KeyboardInterrupt:

pass

finally:

kb.threadContinue = False

if conf.get("showTime"):

dataToStdout("\n[*] shutting down at %s\n\n" % time.strftime("%X"), forceOutput=True)

kb.threadException = True

if kb.get("tempDir"):

for prefix in (MKSTEMP_PREFIX.IPC, MKSTEMP_PREFIX.TESTING, MKSTEMP_PREFIX.COOKIE_JAR, MKSTEMP_PREFIX.BIG_ARRAY):

for filepath in glob.glob(os.path.join(kb.tempDir, "%s*" % prefix)):

try:

os.remove(filepath)

except OSError:

pass

if not filter(None, (filepath for filepath in glob.glob(os.path.join(kb.tempDir, '*')) if not any(filepath.endswith(_) for _ in ('.lock', '.exe', '_')))):

shutil.rmtree(kb.tempDir, ignore_errors=True)

if conf.get("hashDB"):

try:

conf.hashDB.flush(True)

except KeyboardInterrupt:

pass

if cmdLineOptions.get("sqlmapShell"):

cmdLineOptions.clear()

conf.clear()

kb.clear()

main()

if hasattr(conf, "api"):

try:

conf.database_cursor.disconnect()

except KeyboardInterrupt:

pass

if conf.get("dumper"):

conf.dumper.flush()

# short delay for thread finalization

try:

_ = time.time()

while threading.activeCount() > 1 and (time.time() - _) > THREAD_FINALIZATION_TIMEOUT:

time.sleep(0.01)

except KeyboardInterrupt:

pass

# Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program

if threading.activeCount() > 1:

os._exit(0)

if __name__ == "__main__":

main()

user quit报错信息:

init()

if conf.profile:

profile()

elif conf.smokeTest:

smokeTest()

elif conf.liveTest:

liveTest()

else:

try:

start()

except thread.error as ex:

if "can't start new thread" in getSafeExString(ex):

errMsg = "unable to start new threads. Please check OS (u)limits"

logger.critical(errMsg)

raise SystemExit

else:

raise

except SqlmapUserQuitException:

errMsg = "user quit"

try:

logger.error(errMsg)

except KeyboardInterrupt:

pass

sqlmap中的php,python - sqlmap源码中的一个问题相关推荐

  1. android 源码中的单例,Android源码中的一种单例实现

    单例模式的实现方式有懒汉,饿汉,双重校验锁,枚举,内部类等等,写法就不全部列举了.Android源码中有一个单例辅助类/frameworks/base/core/java/android/util/S ...

  2. java中的mod运算_Java源码中Integer类位运算分析

    在这里对源码中Integer的部分位运算方法做一个分析解读.同理,可以比较一下其他Number的子类,对位运算部分的设计和性能有一个理解. 在java中,Integer是int类型的包装类型,占4个字 ...

  3. html中图片的属性优化,源码中图片seo优化的技巧是什么

    Seo网站站内结构优化,html中有关图片alt属性与h1标记的优化细节技巧,内蒙古网络营销师蒋元今天可大家一起来聊一下吧! SEO优化,相信大家都觉得优化的每个点都不陌生,但往往在优化过程中却忽略的 ...

  4. OpenMV中AprilTag识别Python程序源码

    ***现在开始学习AptilTag,顺便入门一下Python,需要大量查阅资料和理解原理,期望的目标是,理解AprilTag背后的原理并且用c++实现:AprilTag作为定位标,用于足球机器人比赛中 ...

  5. android 设备驱动 位置,android中各个部件驱动在源码中的位置

    Android的专用驱动:Ashmem.binder.logger Ashmem:匿名共享内存驱动 Logger:轻量级的log驱动 Binder:基于OpenBinder驱动,为android平台提 ...

  6. python内存管理和释放_《python解释器源码剖析》第17章--python的内存管理与垃圾回收...

    17.0 序 内存管理,对于python这样的动态语言是至关重要的一部分,它在很大程度上决定了python的执行效率,因为在python的运行中会创建和销毁大量的对象,这些都设计内存的管理.同理pyt ...

  7. python解释器源码 pdf_《python解释器源码剖析》第0章--python的架构与编译python

    本系列是以陈儒先生的<python源码剖析>为学习素材,所总结的笔记.不同的是陈儒先生的<python源码剖析>所剖析的是python2.5,本系列对应的是python3.7. ...

  8. php 换行 html_PHP实现html源码中回车换行输出_PHP教程

    PHP实现html源码中回车换行输出 在源码中输入换行但是不显示像br 之类的字符我们需要通过php地转义字符来实现了,下文就一起来看看吧. 知识扩充 转移序列 说明 n 换行 r 回车 t 水平制表 ...

  9. python list存储对象_《python解释器源码剖析》第4章--python中的list对象

    4.0 序 python中的list对象,底层对应的则是PyListObject.如果你熟悉C++,那么会很容易和C++中的list联系起来.但实际上,这个C++中的list大相径庭,反而和STL中的 ...

  10. Python:如何查看一个对象有哪些属性、方法以及查询源码中只有pass的方法的参数

    Python:如何查看一个对象有哪些属性.方法以及查询源码中只有pass的方法的参数 1.问题背景 2.解决思路 2.1.查看对象有哪些属性或方法 2.1.1.dir()函数 2.1.2.help命令 ...

最新文章

  1. 调试笔记--jlink 变量转实时波形小技巧
  2. 赋值后页面不渲染_第七节:框架搭建之页面静态化的剖析
  3. 通信教程 | 串口丢数据常见的原因
  4. Structured Streaming + Kafka测试
  5. u8系统计算机上启动不了,用友erp u8装好后为何启动不了
  6. E-Prime 3 安装
  7. 如何选择企业数据加密软件?
  8. linux光盘游戏,Linux下五个好玩的即时战略游戏
  9. 根据表一和表二写出查询结果如表三的sql语句
  10. CF1389G Directing Edges
  11. ORAN C平面协议的元素
  12. 大专学历计算机专业可以积分,持有大专紧缺急需专业可直接申请上海居住证积分?...
  13. ABTest流量分发和业界的一些经验
  14. HMI-43-【节能模式】顶部标题栏和底部信息栏及灯光及启动动画
  15. 我的电脑中多了CD驱动器怎么办
  16. 长期提供orkut / gmail 邀请
  17. 艾永亮:超级产品战略告诉你,怎样才能吸引到用户使用你的产品
  18. PMBOK(第六版) PMP笔记——《四》第四章(项目整合管理)
  19. 表白爱心代码(复制就可用)
  20. 微信小程序图片使用示例

热门文章

  1. Django通过一个下拉框确定另外一个下拉框的值,并关联起来
  2. vb红绿灯自动切换_VB红绿灯程序.doc
  3. vue中既可以选择又可以手动输入的文本框类型_在PPT中制作一个胖乎乎的可爱圆环图...
  4. 基于prometheus + grafana + mysql + Telegram 监控告警
  5. 已知段地址,求CPU寻址范围
  6. session对象的使用
  7. yum 安装nginx
  8. Redis__WindowsServer主从服务部署及调用实例
  9. kickstart 为 rhel5 创建 ext4 分区
  10. Package vim is not available, but is referred to by another package.