所有的授权实战入侵网站已添加“如何入侵”标签,在侧边栏的归档中选择“如何入侵”即可查看所有文章

MENU

Catalog

SQLmap命令手册

September 30, 2020 • Read: 7402 • 常山阅读设置

SQLmap命令手册


注意,该手册适用于1.41版本以下的SQLmap
本文所有内容均从SQLmap官方wiki翻译完成,并对各个参数进行了测试,保证可以正确使用


What is SQLmap?

What can do?

  1. 判断可注入的参数
  2. 判断使用哪种技术注入
  3. 识别数据库
  4. 根据选择读取数据库中的数据

    5种注入模式

  5. 基于bool的盲注
  6. 基于时间的盲注
  7. 基于报错的注入
  8. 联合查询注入
  9. 堆叠查询注入

    支持的数据库

  10. MySQL
  11. Oracle
  12. PostgreSQL
  13. MSSQL
  14. MS Access
  15. IBM DB2
  16. SQLlite
  17. Firebird
  18. Sybase
  19. SAP MaxDB
  20. HSQLDB
  21. Informix

    基础命令

  22. python sqlmap.py -参数1 目标 -参数2

    帮助参数

    1. -h--help

  23. 显示基本帮助信息并推出
  24. 用法:python sqlmap.py -h

    2. -hh

  25. 显示高级帮助信息并退出
  26. 用法:python sqlmap.py -hh

    3. --version

  27. 显示程序版本信息并退出
  28. python sqlmap.py --version

    4. -v

  29. 观察SQLmap如何进行注入以及读取数据的
  30. 用法:python sqlmap.py -v 等级(默认为1)
  31. 等级(共7级)

    • 0只显示python错误以及严重的信息
    • 1同时显示基本信息和警告信息
    • 2同时显示debug信息
    • 3同时显示注入的payload
    • 4同时显示HTTP请求
    • 5同时显示HTTP响应头
    • 6同时显示HTTP相应页面

    必须参数

    至少存在一个必须参数

    -u--url

  32. 指定URL
  33. 用法:python sqlmap.py -u http://127.0.0.1/?id=1

    -d

  34. 直接连接数据库
  35. 用法:python sqlmap.py -d "mysql://user:password@ip:port/数据库名称"

    -l

  36. 从Burp或者WebScarab代理日志文件中来解析目标
  37. 用法:python sqlmap.py -l 日志文件

    -m

  38. 从文件中批量加载URL,一行一个URL
  39. 用法:python sqlmap.py -m 文件

    -r

  40. 从文本文件中获取HTTP请求,常用于POST提交,以及设置UA、Cookie等
  41. 用法:python sqlmap.py -r 文件
  42. 文本文件例子:

    POST /abc
    Host: 127.0.0.1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0)
    
    id=1

    -g

  43. 测试注入Google搜索结果中的GET参数(前100个结果)
  44. 用法:python sqlmap.py -g "inurl:\".php?id=1\""

    -c

  45. 从配置ini文件中加载选项
  46. 用法:python sqlmap.py -c ini配置文件
  47. 具体配置可以参照SQLmap文件夹中的SQLmap.conf

    请求参数

    这些选项可用于指定如何连接到目标URL

    -A或者--user-agent

  48. 指定URL的UA
  49. -level设置为3或者更高时,SQLmap会检测UA是否存在注入
  50. 用法:python sqlmap.py 必须参数 -A UA

    -H或者--headers

  51. 指定额外的HTTP头
  52. 用法:python sqlmap.py 必须参数 -H HEADER

    --method

  53. 强制使用给定的HTTP方法
  54. 用法:python sqlmap.py 必须参数 --method=方法
  55. 一般HTTP方法有:

    • GET 请求指定的页面信息,并返回实体主体
    • HEAD 类似于GET请求,只不过返回的相应中没有具体的内容,用于获取报头
    • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    • PUT 从客户端向服务器传送的数据取代指定的文档的内容
    • DELETE 请求服务器删除指定的页面
    • CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    • OPTIONS 允许客户端查看服务器的性能
    • TRACE 回显服务器收到的请求,主要用于测试或者诊断
    • PATCH 是对PUT方法的补充,用来对已知资源进行局部更细。

    --data

  56. 通过POST发送数据参数
  57. 用法:python sqlmap.py 必须参数 --data=数据参数

    --param-del

  58. 指定发送数据中拆分参数值的字符
  59. 用法:python sqlmap.py 必须参数 --param-del=字符
  60. 例:python sqlmap.py -u "http://192.168.56.102:8080/user.php" --data="id=0;name=werner" --param-del=";"

    --cookie

  61. 指定cookie
  62. -level设置为2或者更高时,SQLmap会检测cookie是否存在注入
  63. 用法:python sqlmap.py 必须参数 --cookie="dasfc23cdf4ffdsda1"

    --cookie-del

  64. 指定cookie中拆分参数值的字符(与--param-del类似)
  65. 用法:python sqlmap.py 必须参数 --cookie-del="&"

    --load-cookies

  66. 从文件中载入Netscape或wget格式的cookie
  67. 用法:python sqlmap.py 必须参数 --load-cookies=文件

    --drop-set-cookie

  68. 忽略响应头中设置的cookie
  69. 用法:python sqlmap.py 必须参数 --drop-set-cookie

    --random-agent

  70. 使用随机的UA
  71. 用法:python sqlmap.py 必须参数 --random-agent

    --host

  72. 指定HTTP头中的Host值
  73. -level设置为5或者更高时,SQLmap会检测Host是否存在注入
  74. 用法:python sqlmap.py 必须参数 --host="HOST指定值"

    --referer

  75. 指定HTTP请求头中的referer,SQLmap发送的HTTP请求默认无referer
  76. -level设置为3或者更高时,SQLmap会检测referer是否存在注入
  77. 用法:python sqlmap.py 必须参数 --referer REFERER

    --auth-type

  78. 指定认证方式
  79. 支持以下身份认证方式

    • Basic
    • Digest
    • NTLM
    • PKI
  80. 用法:python sqlmap.py 必须参数 --auth-type Basic 其他auth认证参数

    --auth-cred

  81. 指定认证的用户名密码
  82. 用法:python sqlmap.py 必须参数 --auth-type Basic --auth-cred "用户名:密码"

    --auth-file

  83. 指定HTTP身份认证的PEM证书、私钥文件
  84. 用法:python sqlmap.py 必须参数 --auth-file="文件或链接"

    --ignore-code

  85. 忽略HTTP错误代码
  86. 用法:python sqlmap.py 必须参数 --ignore-错误代码

    --ignore-proxy

  87. 忽略系统默认的代理
  88. 用法:python sqlmap.py 必须参数 --ignore-proxy

    --ignore-redirects

  89. 忽略重定向
  90. 用法:python sqlmap.py 必须参数 --ignore-redirects

    --ignore-timeouts

  91. 忽略超时
  92. 用法:python sqlmap.py 必须参数 --ignore-timeouts

    --proxy

  93. 设置一个HTTP代理连接目标URL
  94. 用法:python sqlmap.py 必须参数 --proxy="http\https\socks4\socks5://address:port"

    --proxy-cred

  95. 为代理设置认证信息
  96. 用法:python sqlmap.py 必须参数 --proxy="http\https\socks4\sockes5://address:port" --proxy-cred=用户名:密码

    --proxy-file

  97. 从文件加载代理
  98. 用法:python sqlmap.py 必须参数 --proxy-file=文件

    --tor

  99. 使用tor网络
  100. 用法:python sqlmap.py 必须参数 --tor 其他tor参数

    --tor-port

  101. 指定tor的端口
  102. 用法:python sqlmap.py 必须参数 --tor --tor-port 端口

    --tor-type

  103. 设置tor的类型

    • HTTP
    • SOCKS4
    • SOCKS5(默认)
  104. 用法:python sqlmap.py 必须参数 --tor --tor-type=SOCKS5

    --check-tor

  105. 检查是否使用了tor
  106. 用法:python sqlmap.py 必须参数 --tor 其他tor参数 --check-tor
  107. 此参数会保证所有流量走tor,若tor代理失效,SQLmap会发出警告并退出

    --delay

  108. 为HTTP请求之间设置延迟,以秒为单位,默认无延迟
  109. 用法:python sqlmap.py 必须参数 --delay=1

    --timeout

  110. 设置超时等待时间,以秒为单位,默认30秒超时
  111. 用法:python sqlmap.py 必须参数 --timeout 20

    --retries

  112. 超时重试次数,默认为3次
  113. 用法:python sqlmap.py 必须参数 --retries 4

    --randomize

  114. 随机生成HTTP请求中参数的值,值的类型和长度依照于原始值
  115. 用法:python sqlmap.py 必须参数 --randomize="HTTP参数"

    --safe-url

  116. 每隔一段时间访问一个安全\不错误的连接
  117. 用法:python sqlmap.py 必须参数 --safe-url="安全\不错误的URL" 其他safe参数

    --safe-post

  118. 访问安全\不错误连接时使用指定POST数据
  119. 用法:python sqlmap.py 必须参数 --safe-post POST数据

    --safe-req

  120. 从文件加载安全\不错误的HTTP请求
  121. 用法:python sqlmap.py 必须参数 --safe-req 文件

    --safe-freq

  122. 每隔几次测试请求之后都会访问安全URL
  123. 用法:python sqlmap.py 必须参数 --safe-url="安全\不错误的URL" --safe-freq=3
  124. 使用safe-url必须使用safe-freq

    --skip-urlencode

  125. 对payload跳过URL编码
  126. 用法:python sqlmap.py 必须参数 --skip-urlencode
  127. 因为有些网站不遵守RFC标准编码,所以需要跳过URL编码

    --csrf-token

  128. 指定csrf-token的值
  129. 用法:python sqlmap.py 必须参数 --csrf-token=token参数

    --csrf-url

  130. 指定csrf-token的url值
  131. 用法:python sqlmap.py 必须参数 --csrf-url=URL参数

    --force-ssl

  132. 强制使用SSL\HTTPS
  133. 用法:python sqlmap.py 必须参数 --force-ssl

    --hpp

  134. 使用HTTP参数污染
  135. 用法:python sqlmap.py 必须参数 --hpp
  136. HTTP参数污染是绕过WAF/IPS/IDS的一种技术,针对ASP/ISS/(ASP.NET/ISS)平台尤其有效

    --eval

  137. 在每次请求前执行指定python代码
  138. 用法:python sqlmap.py 必须参数 --eval="python代码"
  139. 某些时候,需要根据某个参数的变化来修改另一个参数才能形成正常请求,所以需要用python代码根据该参数来计算出另一个参数的值

    优化参数

    这些选项可以用来优化SQLmap的性能

    -o

  140. 打开所有的优化开关(即--predict-output--keep-alive--null-connection)
  141. 用法:python sqlmap.py 必须参数 -o

    --predict-output

  142. 预测常见的查询输出
  143. 用法:python sqlmap.py 必须参数 --predict-output
  144. 预设一个表,然后提交给服务器,根据返回值判断,类似暴力破解,但是每次破解都会缩小范围。

    --keep-alive

  145. 保持HTTP(S)长连接
  146. 用法:python sqlmap.py 必须参数 --kepp-alive
  147. 性能好,避免重复建立链接,占用服务器资源。
  148. --proxy不兼容

    --null-connection

  149. 只检索HTTP相应页大的长度,不检索实际内容(常用于盲注)
  150. python sqlmap.py 必须参数 --null-connection

    --threads

  151. 多线程,默认为1,最大为10
  152. **与--predict-output不兼容
  153. 用法:python sqlmap.py 必须参数 --threads=3

    注入参数

    这些可选参数用于指定要测试的参数,提供定制的注入payload和可选的篡改脚本

    -p

  154. 给出需要测试的参数
  155. 用法:python sqlmap.py 必须参数 -p "user-agent"

    --skip

  156. 排除指定参数
  157. 用法:python sqlmap.py 必须参数 --skip="user-agent"

    --skip-static

  158. 跳过非动态参数进行测试,即不检测固定参数
  159. 用法:python sqlmap.py 必须参数 --skip-static

    --param-exclude

  160. 使用正则表达式排除某些参数
  161. 用法:python sqlmap.py 必须参数 --param-exclude=正则

    --dbms

  162. 指定目标数据库类型、版本
  163. 用法:python sqlmap.py 必须参数 --dbms="mysql<版本>"

    --dbms-cred

  164. 指定数据库的用户名密码
  165. 用法:python sqlmap.py 必须参数 --dbms-cred="用户名:密码"

    --os

  166. 指定目标数据库的操作系统
  167. 用法:python sqlmap.py 必须参数 --os="Windows"

    --invalid-bignum

  168. 使用大数字使参数失效,通常SQLmap会使用负数使参数失效
  169. 用法:python sqlmap.py 必须参数 --invalid-bignum

    --invalid-logical

  170. 使用逻辑使参数失效,如id=1 and 1=2
  171. 用法:python sqlmap.py 必须参数 --invalid-logical

    --invalid-string

  172. 使用随机字符使参数失效
  173. 用法:python sqlmap.py 必须参数 --invalid-string

    --no-cast

  174. 在提取数据库数据时,将所有结果转换为字符串,并且空格替换NULL结果(老版本MySql需要使用此参数)
  175. 用法:python sqlmap.py 必须参数 --no-cast

    --no-escape

  176. 不使用char替换字符串功能
  177. 出于混淆和避免出错的目的,如果payload使用单引号界定字符串,SQLmap使用char()编码逃避的方法替换字符串
  178. 用法:python sqlmap.py 必须参数 --no-escape

    --prefix

  179. 指定payload的闭合语句的前缀
  180. 用法:python sqlmp.py 必须参数 --prefix="前缀"

    --sufix

  181. 指定payload的闭合语句的后缀
  182. 用法:python sqlmap.py 必须参数 --sufix="后缀"

    --tamper

  183. 使用混淆脚本,用来绕过WAF/IPS/应用过滤层
  184. 用法:python sqlmap.py 必须参数 --tamper="脚本文件"

    探测参数

    自定义在SQL盲注时如何解析和比较HTTP相应页面的内容

    --level

  185. 指定检测等级(1~5,默认为1)
  186. 可以在sqlmap/xml/payloads文件内可以看到各个level发送的payload
  187. 各个level的检测数据

    1. 默认
    2. cookie
    3. user-agent
    4. referer
    5. host
  188. 用法:python sqlmap.py 必须参数 --level=3

    --risk

  189. 指定风险等级(1~3,默认为1),升高风险等级会增加数据被篡改的风险
  190. 各个风险等级检测类型

    1. 默认
    2. 基于时间的SQL注入
    3. 基于or的SQL注入
  191. 用法:python sqlmap.py 必须参数 --risk=2

    --string

  192. 在基于bool注入时,指定判断真假的字符串(常用于返回页面不固定时)
  193. 用法:python sqlmap.py 必须参数 --string="字符串"

    --not-string

  194. 在基于bool注入时,指定没出现的字符串判断真假,与--string相反
  195. 用法:python sqlmap.py 必须参数 --not-string="字符串"

    --regexp

  196. 在基于bool注入时,根据正则表达式来判断真假,与--not-string--string可以连用
  197. 用法:python sqlmap.py 必须参数 --regexp="正则表达式"

    --code

  198. 在基于bool注入时,通过指定HTTP返回码来判断真假
  199. 用法:python sqlmap.py 必须参数 --code=200

    --text-only

  200. 在bool注入时,通过文本内容判断真假
  201. 用法:python sqlmap.py 必须参数 --text-only

    --titles

  202. 在bool注入时,通过标题判断真假
  203. 用法:python sqlmap.py 必须参数 --titles

    技巧参数

    这些参数可以用来调整SQL注入的测试技术

    --technique

  204. 指定使用的SQL注入技术,默认为BEUSTQ
  205. 指定的技术如下:

    • B:bool盲注
    • E:报错注入
    • U:联合查询注入
    • S:堆叠注入
    • T:时间盲注
    • Q:内联查询注入
  206. 用法:python sqlmap.py 必须参数 --technique=BU

    --time-sec

  207. 在时间盲注中,指定判断的时间,单位为秒,默认为5
  208. 用法:python sqlmap.py 必要参数 --time-sec=3

    --union-cols

  209. 联合注入的尝试列数,随level增加最多支持50列,默认查询1-10列
  210. 用法:python sqlmap.py 必要参数 --time-cols 5-7

    --union-char

  211. 在联合注入中,默认使用的占列的值是NULL,但是有时候NULL会失效,所以需要手动指定一个其他的占列值。
  212. 用法:python sqlmap.py 必要参数 --union-char=1

    --union-from

  213. 在有些数据库中,必须指定一个有效且可访问的表,否则联合查询就会失败,所以必须使用该参数指定一个表
  214. 用法:python sqlmap.py 必须参数 --union-from=表名

    --dns-domain

  215. 如果控制了一台DNS服务器,则可以使用该命令做DNS泄露攻击,通过攻击,可以在DNS的访问日志里得到查询的数据
  216. 用法:python sqlmap.py 必须参数 --dns-domain
  217. 注意!DBMS中需要有可用的,能直接或间接引发DNS解析过程的程序,即用到UNC1,其中引发DNS解析过程的函数有:

    • MSSQL

      • master..xp_dirtree(用于获取所有文件夹的列表和给定文件内部的子文件夹)
      • master..xp_fileexit(用于确定一个特定的文件是否存在于硬盘)
      • master..xp_subdirs(用于得到给定的文件夹内的文件夹列表)
    • Oracle

      • GET_HOST_ADDRESS(用于检索特定主机的IP)
      • UTL_HTTP.REQUEST(从给定的地址检索到第1~2000字节的数据)
    • MySql

      • load_file(读取文件内容并将其作为字符串返回)
    • PostgreSQL

      • COPY(用于在文件系统的文件和表之间拷贝数据)

    --second-url

  218. 搜索二阶相应的结果页面的URL,即在一个页面注入,在另外一个页面显示,适合GET提交,POST提交需要下一个参数
  219. 用法:python sqlmap.py 必须参数 --second-url="另一个页面地址"

    --second-req

  220. 与上一个相同,只是从文件加载HTTP请求
  221. 用法:python sqlmap.py 必须参数 --second-req="请求的文件地址"

    指纹参数

    -f--fingerprint

  222. 获取更广泛的DBMS操作系统、架构、补丁等信息
  223. 用法:python sqlmap.py 必须参数 -f

    枚举参数

    下列这些选项可以用于枚举数据库的系统信息、表的结构和数据,此外还可以执行自定义的SQL语句

    -a--all

  224. 查找所有的信息,即枚举中所有的信息
  225. 用法:python sqlmap.py 必须参数 -a

    -b--banner

  226. 查询数据库的标识,即数据库类型与版本
  227. 用法:python sqlmap.py 必须参数 -b

    --current-user

  228. 查询数据库的当前用户
  229. 用法:python sqlmap.py 必须参数 --current-user

    --current-db

  230. 查询数据库中当前使用的数据库
  231. 用法:python sqlmap.py 必须参数 --current-db

    --hostname

  232. 查询数据库中当前的主机名
  233. 用法:python sqlmap.py 必须参数 --hostname

    --is-dba

  234. 检测当前的数据库用户是否为DBA(即数据库管理员)
  235. 用法:python sqlmap.py 必须参数 --is-dba

    --users

  236. 枚举所有用户
  237. 用法:python sqlmap.py 必须参数 --users

    --passwords

  238. 枚举所有用户名密码的哈希
  239. 用法:python sqlmap.py 必须参数 --passwords

    --privileges

  240. 枚举所有数据库用户的权限
  241. 用法:python sqlmap.py 必须参数 --privileges
  242. 枚举某一数据库用户权限,用法:python sqlmap.py 必须参数 --privileges -U username
  243. 枚举数据库当前用户权限,用法:python sqlmap.py 必须参数 --privileges -CU
  244. 如果是MSSQL,则只会列出用户是否为管理员而不是用户的具体权限

    --roles

  245. 枚举数据库中的用户角色
  246. 只要在Oracle数据库中可以用,其余数据库返回--privileges的数据
  247. 用法:python sqlmap.py 必须参数 --roles
  248. 其余用法同--privileges

    --dbs

  249. 枚举服务器中所有的数据库
  250. 用法:python sqlmap.py 必须参数 --dbs

    --tables

  251. 枚举数据库中的所有表名
  252. 用法:python sqlmap.py 必须参数 --tables

    --columns

  253. 枚举数据库中的所有列名
  254. 用法:python sqlmap.py 必须参数 --columns

    --schema

  255. 查询数据库架构,即每个列的类型,如:id是int类型,name是varchar(255)类型
  256. 用法:python sqlmap.py 必须参数 --schema

    --count

  257. 枚举每个表所包含的数据量
  258. 用法:python sqlmap.py 必须参数 --count

    --dump

  259. 查询指定范围的全部数据
  260. 用法:python sqlmap.py 必须参数 --dump 其他参数
  261. 该处的其他参数通常指-D-T-C-X-U--start--stopfirst--last--pivot-column--where,这些参数均在后面有相应介绍

    --dump-all

  262. 枚举数据库中全部数据
  263. 用法:python sqlmap.py 必须参数 --dump-all

    --search

  264. 搜索数据库、表、列的名称
  265. 用法:python sqlmap.py 必须参数 --search 其他参数
  266. 其他参数为-C-T-D,这些参数均在后面有相应介绍

    --comments

  267. 搜索数据库的备份
  268. 用法:python sqlmap.py 必须参数 --comments

    -D

  269. 指定枚举的数据库名
  270. 用法:python sqlmap.py 必须参数 -D 数据库名

    -T

  271. 指定枚举的表名
  272. 用法:pyton sqlmap.py 必须参数 -T 表名
  273. 通常情况下需先指定数据库

    -C

  274. 指定枚举的列名
  275. 用法:python sqlmap.py 必须参数 -C 列名
  276. 通常情况下需先指定数据库和表名

    -X

  277. 不枚举数据库中的某一列
  278. 用法:python sqlmap.py 必须参数 -X 标识符
  279. 如图:

    • 未使用-X
      未使用-X
    • 使用-X
      使用-X

    -U

  280. 指定用户名,常和--privileges一起使用
  281. 用法:python sqlmap.py 必须参数 --privileges -U 指定的用户名
  282. 其中,使用-CU表示当前账户

    --exclude-sysdbs

  283. -X类似,此为排除某个数据库
  284. 用法:python sqlmap.py 必须参数 --exclude-sysdbs 数据库名

    --pivot-colum

  285. 做数据透视用的,估计平时也很少用的上。因为可能自动选择的列不适合做数据透视,所以可以使用该参数强制指定一列。
  286. 用的:python sqlmap.py 必须参数 --pivot-cloum

    --where

  287. 使用-dump下载数据时,可以使用该参数限制条件
  288. 用法:python sqlmap.py 必须参数 --where=限制条件

    --start

  289. 设置一个起始位置,在下载表时,从第几行开始
  290. 用法:python sqlmap.py 必须参数 --start=3

    -stop

  291. 设置一个结束位置,作用同上
  292. 用法:python sqlmap.py 必须参数 --stop=4

    --first--last

  293. 此参数仅使用SQL盲注
  294. 根据官方的说法时可以将某一列的字符转储到另一列,但是根据我的尝试并没有成功。
  295. 用法:python sqlmap.py 必须参数 --first=2 --last=4

    --sql-query

  296. 执行SQL语句
  297. 用法:python sqlmap.py 必须参数 --sql-query=SQL语句

    --sql-shell

  298. 执行SQL的shell
  299. 用法:python sqlmap.py 必须参数 --sql-shell=shell语句

    --sql-file

  300. 从给定的文件中读取SQL语句来执行
  301. 用法:python sqlmap.py 必须参数 --sql-file=文件目录

    暴力破解参数

    下列选项可以用于暴力破解

    --common-tables

  302. 检查记录信息的公共表。
  303. 用法:python sqlmap.py 必须参数 --common-tables
  304. 在以下这些情况中,不能使用-tables检索数据库的列名,需要使用该参数:

    • MySQL版本小于5.0
    • 数据库是Access
    • 会话用户对数据库的系统表没有读取权限

      --common-columns

  305. 检查公共的列。
  306. 用法:pyhton sqlmap.py 必须参数 --common-columns
  307. 在以下这些情况中,不能使用-columns检索数据库的列名,需要使用该参数:

    • MySQL版本小于5.0
    • 数据库是Access
    • 会话用户对数据库的系统表没有读取权限

      自定义函数注入参数

      这些选项可以创建自定义的函数用来注入

      --udf-inject

  308. 通过编译MySQL、PostgreSQL的共享库、DLL和共享对象来注入自定义函数(UDFs)
  309. 用法:python sqlmap.py 必须参数 --udf-inject=文件路径
  310. 用法:python sqlmap.py 必须参数 --shared-lib=文件路径
  311. 仅适用于MySQL和PostgreSQL
  312. 详情参见链接

    文件系统访问参数

    这些选项可用于访问数据库系统中的文件

    --file-read

  313. 从数据库系统中读取文件
  314. 用法:python sqlmap.py 必须参数 --file-read=文件路径

    --file-write

  315. 对数据库系统写入文件
  316. 用法:python sqlmap.py 必须参数 --file-write=文件路径

    --file-dest

  317. 写入文件到数据库系统的绝对路径
  318. 用法:python sqlmap.py 必须参数 --file-dest=文件路径

    操作系统访问参数

    这些选项可以用于访问后端数据库管理的操作系统

    --os-cmd

  319. 执行系统命令
  320. 用法:python sqlmap.py 必须参数 --os-cmd=命令

    --os-shell

  321. 创建一个shell
  322. 用法:python sqlmap.py 必须参数 --os-shell

    --os-pwn

  323. 可以用来反弹msf下的shell和vnc
  324. 用法:python sqlmap.py 必须参数 --os-pwn

    --os-smbrelay

  325. 获取OOB shell,反弹msf下的shell和vnc
  326. 用法:python sqlmap.py 必须参数 --os-smbrelay

    --os-bof

  327. 利用缓冲区漏洞
  328. 用法:python sqlmap.py 必须参数 --os-bof

    --priv-esc

  329. 自动提权
  330. 用法:python sqlmap.py 必须参数 --priv-esc

    --msf-path

  331. 输入本地的msf路径
  332. 用法:python sqlmap.py 必须参数 --msf-path=本地msf路径

    --tmp-path

  333. 输入远程临时文件目录的绝对路径。
  334. 用法:python sqlmap.py 必须参数 --tmp-path=临时文件绝对路径

    Windows注册表访问参数

    这些选项可以用于访问使用Windows系统的数据库中Windows注册表
    前三个参数必须选择一个,后四个参数任选

    --reg-read

  335. 读取Windows注册表
  336. 用法:python sqlmap.py 必须参数 --reg-read

    reg-add

  337. 写入一个Windows注册表
  338. 用法:python sqlmap.py 必须参数 --reg-add

    --reg-del

  339. 删除一个Windows注册表
  340. 用法:python sqlmap.py 必须参数 --reg-del

    --reg-key

  341. 表示Windows注册表的key值
  342. 用法:python sqlmap.py 必须参数 前三个参数 --reg-key=key值

    --reg-value

  343. 表示注册表值
  344. 用法:python sqlmap.py 必须参数 前三个参数 --reg-value=值

    --reg-data

  345. 表示注册表数据
  346. 用法:python sqlmap.py 必须参数 前三个参数 --reg-data=数据

    --reg-type

  347. 表示注册表类型
  348. 用法:python sqlmap.py 必须参数 前三个参数 --reg-type=类型

    其他参数1

    这些选项可以用于设置一些常规工作参数

    -s

  349. 从一个.sqlite文件中加载session
  350. 用法:python sqlmap.py 必须参数 -s SESSION文件

    -t

  351. 将所有HTTP流量记录到文本文件中
  352. 用法:python sqlmap.py 必须参数 -t 文本文件保存位置

    --answers

  353. 设置预设答案
  354. 用法:python sqlmap.py 必须参数 --answers=答案
  355. 在执行sqlmap可能会多次询问选择,所以可以提前设置

    --base64

  356. 设置包含base64数据编码的数据
  357. 用法:python sqlmap.py 必须参数 --base64=需要base64编码的HTTP参数

    --batch

  358. 永远使用默认设置,不询问用户
  359. 用法:python sqlmap.py 必须参数 --batch

    --binary-fields

  360. 如果表中具有储存的二进制值的列,可以使用该参数进行正确的处理,所有的这些字段将被检索,并用十六进制显示。
  361. 用法:python sqlmap.py 必须参数 --binary-fields=使用二进制的列

    --check-internet

  362. 在进行注入前,首先检测互联网是否可以访问
  363. 用法:python sqlmap.py 必须参数 --check-internet

    --crawl

  364. 从目标网址开始抓取网站的深度
  365. 用法:python sqlmap.py 必须参数 --crawl=深度层数

    --crawl-exclude

  366. 使用正则表达式排除不需要爬取的网页
  367. 用法:python sqlmap.py 必须参数 --crawl-exclude=正则表达式

    --csv-del

  368. 设置CSV格式的分隔符,默认使用逗号作为分隔符
  369. 用法:python sqlmap.py 必须参数 --csv-del=","

    --charset

  370. 设置盲注的字符集
  371. 用法:python sqlmap.py 必须参数 --charset=字符集
  372. 在基于布尔和时间的盲注SQL注入中,用户可以强制使用自定义字符集来加快数据检索过程。

    --dump-format

  373. 设置转储数据格式,默认为CSV,可选HTML、SQLite
  374. 用法:python sqlmap.py 必须参数 --dump-format=html或者sqlite或者csv

    --encoding

  375. 设置编码,如:GBK或者utf-8
  376. 用法:python sqlmap.py 必须参数 --encoding=GBK

    --eta

  377. 显示每个输出的估计时间
  378. 用法:python sqlmap.py 必须参数 --eta

    --flush-session

  379. 刷新当前目标的session
  380. 用法:pyhton sqlmap.py 必须参数 --flush-session

    --forms

  381. 解析在目标URL中存在的表单,通常这些表单在HTML中都是用<form><input>标记的
  382. 用法:python sqlmap.py 必须参数 --forms

    --fresh-queries

  383. 忽略储存在session中的查询结果,通过该参数,可以保持session保持不变。
  384. 用法:python sqlmap.py 必须参数 --fresh-queries

    --har

  385. 将所有的HTTP流量记录到一个har文件中
  386. 用法:python sqlmap.py 必须参数 --har

    --hex

  387. 在数据检索期间使用十六进制转换
  388. 用法:python sqlmap.py 必须参数 --hex

    --output-dir

  389. 自定义输出目录
  390. 用法:pyhton sqlmap.py 必须参数 --output-dir=输出目录路径

    --parse-errors

  391. 解析错误解析,并显示来自数据库的错误消息
  392. 用法:python sqlmap.py 必须参数 --parse-errors

    --preprocess

  393. 使用给定的脚本对请求数据进行预处理
  394. 用法:python sqlmap.py 必须参数 --preprocess=脚本路径
  395. 使用该参数可以在发送请求前对请求数据使用自定义脚本,例如将参数附加到POST请求中。

    --postprocess

  396. 使用给定的脚本对响应数据进行预处理
  397. 用法:python sqlmap.py 必须参数 --postprocess=脚本路径
  398. 使用该参数可以在收到响应后对响应数据使用自定义脚本,例如将所有小写字符转换为大写

    --repair

  399. 修复具有未知字符标记的项
  400. 用法:python sqlmap.py 必须参数 --repair

    --save

  401. 保存现在的选项到ini配置文件中
  402. 用法:pyhton sqlmap.py 必须参数 --save=配置文件.conf
  403. 可以使用-c来读取这些ini配置文件

    --scope

  404. 使用正则表达式从burp的日志中过滤所需要的主机
  405. 用法:python sqlmap.py 必须参数 --scope="正则表达式"
  406. 例如:

    • python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"

      --test-filter

  407. 通过某些有效载荷或标题进行测试
  408. 用法:python sqlmap.py 必须参数 --test-filter=有效载荷或标题
  409. 使用包含某个关键词的payload进行检测

    --test-skip

  410. 跳过某些有效载荷或标题进行测试
  411. 用法:python sqlmap.py 必须参数 --test-skip=想跳过的有效载荷或标题

    --update

  412. 升级SQLmap
  413. 用法:python sqlmap.py --update

    其他参数2

    -z

  414. 助记符,只要能确定唯一的参数,那么就可以缩写参数
  415. 用法:python sqlmap.py 必须参数 -z "缩写参数"
  416. 例子:python sqlmap.py -z "bat,randoma,ign,tec=BEU" -u "www.target.com/vuln.php?id=\1",其中,bat--batchrandomarandom-agentignignore-proxytec-BEU--technique=BEU

    --alert

  417. 当发现SQL注入后,运行本机的CMD命令
  418. 用法:python sqlmap.py 必须参数 --alert "命令"
  419. 只在Linux环境下成功过

    --beep

  420. 当发现SQL注入后,蜂鸣器报警
  421. 用法:python sqlmap.py 必须参数 --beep

    --cleanup

  422. 从SQLmap创建的临时表和自定义函数
  423. 常用于测试结束后
  424. 用法:python sqlmap.py 必须参数 --cleanup

    --dependencies

  425. 检查缺少的SQLmap依赖的第三方库
  426. 常用于检测SQLmap必须的第三方依赖python库
  427. 用法:python sqlmap.py --dependencies

    --disable-coloring

  428. 关闭彩色输出
  429. 用法:python sqlmap.py --disable-coloring

    --gpage

  430. 指定来自某一页码的Google dork结果,常与-g一起使用
  431. 用法:python sqlmap.py -g 参数 --gpage=12

    --identify-waf

  432. 识别WAF、IPS、IDS等
  433. 用法:python sqlmap.py 必须参数 --identity-waf

    --list-tampers

  434. 列出所有本地绕WAF的规则
  435. 用法:python sqlmap.py --list-tampers

    --mobile

  436. 模拟智能手机的UA
  437. 用法:python sqlmap.py 必须参数 --mobile

    --offline

  438. 在脱机模式下运行,只在当前或以前的数据,不会对服务端进行连接
  439. 用法:python sqlmap.py 必须参数 --offline

    --purge

  440. 安全删除SQLmap数据目录中的所有内容,即删除本地SQLmap测试的所有数据和历史记录
  441. 用法:python sqlmap.py --purge
  442. 安全删除意味着对该目录进行随机数据覆盖,破坏数据,防止恢复

    --skip-waf

  443. 跳过WAF、IPS、IDS的扫描检测
  444. 用法:pyhton sqlmap.py 必须参数 --skip-waf

    --smart

  445. 如果只是为了找出批量检测中的SQL注入,使用该参数进行启发式扫描,只有让数据库报错的参数才会进一步测试,其余跳过
  446. 常与-m一起使用
  447. 用法:python sqlmap.py -m 参数 --smart

    --sqlmap-shell

  448. 使用该参数,可以打开一个交互式的SQLmap SHELL,支持历史记录
  449. 用法:python sqlmap.py --sqlmap-shell

    --tmp-dir

  450. 更改本地临时文件储存目录
  451. 用法:python sqlmap.py --tmp-dir=本地目录

    --web-root

  452. 指定Web服务器的文档根目录
  453. 用法:python sqlmap.py 必须参数 --web-root="根目录绝对路径"

    --wizard

  454. 面向初学者的简单向导界面
  455. 用法:python sqlmap.py --wizard
  456. 该参数使用简单的工作流程,问题尽可能的少,只要输入了URL,那么在工作流结束时,也会设置一个正确的SQLmap运行环境

  1. UNC只有Windows系统有
Last Modified: November 3, 2021
Archives QR Code Tip
QR Code for this page
Tipping QR Code