我最近在使用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. 15 年工龄的资深技术专家职场历程自述
  2. hello world!!(Java)
  3. STM32开发 -- 开发环境搭建
  4. 【数据库】oracle数据库----内嵌视图
  5. tensor flow lstm 图像 一条直线_【开源计划】图像配准中变形操作(Warp)的pytorch实现...
  6. java是如何实现原语的_Java中的低GC:使用原语而不是包装器
  7. 合泰单片机c语言halt指令,holtek单片机图文全面详解
  8. php如何让B链接在当前页面打,javascript - 如何实现点击链接 A 弹出窗口 X,点击链接 B 继续在弹出窗口 X (刷新)打开?...
  9. [翻译] FeSpinner
  10. J2SE - POI合并单元格相关
  11. 如何在SendWS上做到WhatsApp账号多开,WhatsApp群发超链的意义,WhatsApp营销推广引流
  12. 笔记本电脑蓝牙怎么用来连接耳机
  13. Android EditText去掉下划线
  14. java的自省机制_深入理解Java反射机制
  15. 数据销毁、硬盘销毁的方法及安全性分析
  16. Maven项目配置依赖时报错:Duplicated tag: ‘plugins‘...不会解决
  17. Nature综述:农业生态系统中的土壤结构和微生物组功能
  18. gnu stubs arch linux,编译Nachos源代码时出现错误“gnu/stubs-32.h:No such file or directory”...
  19. 入门阿里云Dataphin(1)
  20. labelshop更改打印机_如何快速掌握标签打印软件LabelShop中的功能

热门文章

  1. 模板模式(Template)
  2. python如何循环执行_如何在python中多次运行for循环?
  3. Java Se相关测试题(偏线程、集合)含答案及详解
  4. html5邀请函在线制作,很炫的html5年会邀请函
  5. mysql 增量备份_MySQL增量备份与恢复(增量备份概述、特点,断点恢复实操)
  6. 通过手机物理返回键实现弹出层的隐藏
  7. Android 如何使用juv-rtmp-client.jar向Red5服务器发布实时视频数据
  8. 专题实验 字符集(全球化支持)
  9. MCSE第六课-DHCP
  10. Elasticsearch 5.x 字段折叠的使用