sqlmap命令

马上要打一场个人赛,在这里码一次sqlmap常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
Usage: python sqlmap.py [options]

Options(选项):

-h, --help Show basic help message and exit 显示此帮助消息并退出
-hh Show advanced help message and exit 展示先进的帮助信息并退出
--version Show program's version number and exit 显示程序的版本号并退出
-v VERBOSE Verbosity level: 0-6 (default 1) 详细级别:0-6(默认为1)

Target(目标):

At least one of these options has to be provided to define the
target(s)
以下至少需要设置其中一个选项,设置目标URL。

-d DIRECT Connection string for direct database connection 直接连接到数据库。
-u URL, --url=URL Target URL (e.g. "http://www.site.com/vuln.php?id=1") 目标URL。
-l LOGFILE Parse target(s) from Burp or WebScarab proxy log file 解析目标(s)从Burp或WebScarab代理日志文件
-x SITEMAPURL Parse target(s) from remote sitemap(.xml) file 解析目标(s)从远程站点地图文件(.xml)
-m BULKFILE Scan multiple targets given in a textual file 扫描文本文件中给出的多个目标
-r REQUESTFILE Load HTTP request from a file 从文件加载HTTP请求
-g GOOGLEDORK Process Google dork results as target URLs 处理Google dork的结果作为目标URL。
-c CONFIGFILE Load options from a configuration INI file 从INI配置文件中加载选项。

Request(请求):

These options can be used to specify how to connect to the target URL 这些选项可以用来指定如何连接到目标URL。

--method=METHOD Force usage of given HTTP method (e.g. PUT) 强制使用给定的HTTP方法(e.g. PUT)
--data=DATA Data string to be sent through POST 通过POST发送的数据字符串
--param-del=PARA.. Character used for splitting parameter values 用于拆分参数值的字符
--cookie=COOKIE HTTP Cookie header value HTTP Cookie头的值
--cookie-del=COO.. Character used for splitting cookie values 用于分割Cookie值的字符
--load-cookies=L.. File containing cookies in Netscape/wget format 包含Netscape / wget格式的cookie的文件
--drop-set-cookie Ignore Set-Cookie header from response 从响应中忽略Set-Cookie头
--user-agent=AGENT HTTP User-Agent header value 指定 HTTP User - Agent头
--random-agent Use randomly selected HTTP User-Agent header value 使用随机选定的HTTP User - Agent头
--host=HOST HTTP Host header value HTTP主机头值
--referer=REFERER HTTP Referer header value 指定 HTTP Referer头
-H HEADER, --hea.. Extra header (e.g. "X-Forwarded-For: 127.0.0.1") 额外header
--headers=HEADERS Extra headers (e.g. "Accept-Language: fr\nETag: 123") 额外header
--auth-type=AUTH.. HTTP authentication type (Basic, Digest, NTLM or PKI) HTTP认证类型(Basic, Digest, NTLM or PKI)
--auth-cred=AUTH.. HTTP authentication credentials (name:password) HTTP认证凭证(name:password)
--auth-file=AUTH.. HTTP authentication PEM cert/private key file HTTP认证 PEM认证/私钥文件
--ignore-401 Ignore HTTP Error 401 (Unauthorized) 忽略HTTP错误401(未经授权)
--proxy=PROXY Use a proxy to connect to the target URL 使用代理连接到目标网址
--proxy-cred=PRO.. Proxy authentication credentials (name:password) 代理认证证书(name:password)
--proxy-file=PRO.. Load proxy list from a file 从文件中加载代理列表
--ignore-proxy Ignore system default proxy settings 忽略系统默认代理设置
--tor Use Tor anonymity network 使用Tor匿名网络
--tor-port=TORPORT Set Tor proxy port other than default 设置Tor代理端口而不是默认值
--tor-type=TORTYPE Set Tor proxy type (HTTP (default), SOCKS4 or SOCKS5) 设置Tor代理类型
--check-tor Check to see if Tor is used properly 检查Tor是否正确使用
--delay=DELAY Delay in seconds between each HTTP request 每个HTTP请求之间的延迟(秒)
--timeout=TIMEOUT Seconds to wait before timeout connection (default 30) 秒超时连接前等待(默认30)
--retries=RETRIES Retries when the connection timeouts (default 3) 连接超时时重试(默认值3)
--randomize=RPARAM Randomly change value for given parameter(s) 随机更改给定参数的值(s)
--safe-url=SAFEURL URL address to visit frequently during testing 在测试期间频繁访问的URL地址
--safe-post=SAFE.. POST data to send to a safe URL POST数据发送到安全URL
--safe-req=SAFER.. Load safe HTTP request from a file 从文件加载安全HTTP请求
--safe-freq=SAFE.. Test requests between two visits to a given safe URL 在两次访问给定安全网址之间测试请求
--skip-urlencode Skip URL encoding of payload data 跳过有效载荷数据的URL编码
--csrf-token=CSR.. Parameter used to hold anti-CSRF token 参数用于保存anti-CSRF令牌
--csrf-url=CSRFURL URL address to visit to extract anti-CSRF token 提取anti-CSRF URL地址访问令牌
--force-ssl Force usage of SSL/HTTPS 强制使用SSL / HTTPS
--hpp Use HTTP parameter pollution method 使用HTTP参数pollution的方法
--eval=EVALCODE Evaluate provided Python code before the request (e.g. 评估请求之前提供Python代码
"import hashlib;id2=hashlib.md5(id).hexdigest()")

Optimization(优化):

These options can be used to optimize the performance of sqlmap 这些选项可用于优化sqlmap的性能

-o Turn on all optimization switches 开启所有优化开关
--predict-output Predict common queries output 预测常见的查询输出
--keep-alive Use persistent HTTP(s) connections 使用持久的HTTP(S)连接
--null-connection Retrieve page length without actual HTTP response body 从没有实际的HTTP响应体中检索页面长度
--threads=THREADS Max number of concurrent HTTP(s) requests (default 1) 最大的HTTP(S)请求并发量(默认为1)

Injection(注入):

These options can be used to specify which parameters to test for,
provide custom injection payloads and optional tampering scripts
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads和可选篡改脚本。

-p TESTPARAMETER Testable parameter(s) 可测试的参数(S)
--skip=SKIP Skip testing for given parameter(s) 跳过对给定参数的测试
--skip-static Skip testing parameters that not appear to be dynamic 跳过测试不显示为动态的参数
--param-exclude=.. Regexp to exclude parameters from testing (e.g. "ses") 使用正则表达式排除参数进行测试(e.g. "ses")
--dbms=DBMS Force back-end DBMS to this value 强制后端的DBMS为此值
--dbms-cred=DBMS.. DBMS authentication credentials (user:password) DBMS认证凭证(user:password)
--os=OS Force back-end DBMS operating system to this value 强制后端的DBMS操作系统为这个值
--invalid-bignum Use big numbers for invalidating values 使用大数字使值无效
--invalid-logical Use logical operations for invalidating values 使用逻辑操作使值无效
--invalid-string Use random strings for invalidating values 使用随机字符串使值无效
--no-cast Turn off payload casting mechanism 关闭有效载荷铸造机制
--no-escape Turn off string escaping mechanism 关闭字符串转义机制
--prefix=PREFIX Injection payload prefix string 注入payload字符串前缀
--suffix=SUFFIX Injection payload suffix string 注入payload字符串后缀
--tamper=TAMPER Use given script(s) for tampering injection data 使用给定的脚本(S)篡改注入数据

Detection(检测):

These options can be used to customize the detection phase 这些选项可以用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容。

--level=LEVEL Level of tests to perform (1-5, default 1) 执行测试的等级(1-5,默认为1)
--risk=RISK Risk of tests to perform (1-3, default 1) 执行测试的风险(0-3,默认为1)
--string=STRING String to match when query is evaluated to True 查询时有效时在页面匹配字符串
--not-string=NOT.. String to match when query is evaluated to False 当查询求值为无效时匹配的字符串
--regexp=REGEXP Regexp to match when query is evaluated to True 查询时有效时在页面匹配正则表达式
--code=CODE HTTP code to match when query is evaluated to True 当查询求值为True时匹配的HTTP代码
--text-only Compare pages based only on the textual content 仅基于在文本内容比较网页
--titles Compare pages based only on their titles 仅根据他们的标题进行比较

Techniques(技巧):

These options can be used to tweak testing of specific SQL injection
techniques
这些选项可用于调整具体的SQL注入测试。

--technique=TECH SQL injection techniques to use (default "BEUSTQ") SQL注入技术测试(默认BEUST)
--time-sec=TIMESEC Seconds to delay the DBMS response (default 5) DBMS响应的延迟时间(默认为5秒)
--union-cols=UCOLS Range of columns to test for UNION query SQL injection 定列范围用于测试UNION查询注入
--union-char=UCHAR Character to use for bruteforcing number of columns 用于暴力猜解列数的字符
--union-from=UFROM Table to use in FROM part of UNION query SQL injection 要在UNION查询SQL注入的FROM部分使用的表
--dns-domain=DNS.. Domain name used for DNS exfiltration attack 域名用于DNS漏出攻击
--second-order=S.. Resulting page URL searched for second-order response 生成页面的URL搜索为second-order响应

Fingerprint(指纹):

-f, --fingerprint Perform an extensive DBMS version fingerprint 执行检查广泛的DBMS版本指纹

Enumeration(枚举):

These options can be used to enumerate the back-end database
management system information, structure and data contained in the
tables. Moreover you can run your own SQL statements
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己的SQL语句。

-a, --all Retrieve everything 检索一切
-b, --banner Retrieve DBMS banner 检索数据库管理系统的标识
--current-user Retrieve DBMS current user 检索数据库管理系统的标识
--current-db Retrieve DBMS current database 检索数据库管理系统当前数据库
--hostname Retrieve DBMS server hostname 检索数据库服务器的主机名
--is-dba Detect if the DBMS current user is DBA 检测DBMS当前用户是否DBA
--users Enumerate DBMS users 枚举数据库管理系统用户
--passwords Enumerate DBMS users password hashes 枚举数据库管理系统用户密码哈希
--privileges Enumerate DBMS users privileges 枚举数据库管理系统用户的权限
--roles Enumerate DBMS users roles 枚举数据库管理系统用户的角色
--dbs Enumerate DBMS databases 枚举数据库管理系统数据库
--tables Enumerate DBMS database tables 枚举的DBMS数据库中的表
--columns Enumerate DBMS database table columns 枚举DBMS数据库表列
--schema Enumerate DBMS schema 枚举数据库架构
--count Retrieve number of entries for table(s) 检索表的条目数
--dump Dump DBMS database table entries 转储数据库管理系统的数据库中的表项
--dump-all Dump all DBMS databases tables entries 转储数据库管理系统的数据库中的表项
--search Search column(s), table(s) and/or database name(s) 搜索列(S),表(S)和/或数据库名称(S)
--comments Retrieve DBMS comments 检索数据库的comments(注释、评论)
-D DB DBMS database to enumerate 要进行枚举的数据库名
-T TBL DBMS database table(s) to enumerate 要进行枚举的数据库表
-C COL DBMS database table column(s) to enumerate 要进行枚举的数据库列
-X EXCLUDECOL DBMS database table column(s) to not enumerate 要不进行枚举的数据库列
-U USER DBMS user to enumerate 用来进行枚举的数据库用户
--exclude-sysdbs Exclude DBMS system databases when enumerating tables 枚举表时排除系统数据库
--pivot-column=P.. Pivot column name 主列名称
--where=DUMPWHERE Use WHERE condition while table dumping 使用WHERE条件进行表转储
--start=LIMITSTART First query output entry to retrieve 第一个查询输出进入检索
--stop=LIMITSTOP Last query output entry to retrieve 最后查询的输出进入检索
--first=FIRSTCHAR First query output word character to retrieve 第一个查询输出字的字符检索
--last=LASTCHAR Last query output word character to retrieve 最后查询的输出字字符检索
--sql-query=QUERY SQL statement to be executed 要执行的SQL语句
--sql-shell Prompt for an interactive SQL shell 提示交互式SQL的shell
--sql-file=SQLFILE Execute SQL statements from given file(s) 从给定文件执行SQL语句

Brute force(蛮力):

These options can be used to run brute force checks 这些选项可以被用来运行蛮力检查。

--common-tables Check existence of common tables 检查存在共同表
--common-columns Check existence of common columns 检查存在共同列

User-defined function injection(用户自定义函数注入):
These options can be used to create custom user-defined functions 这些选项可以用来创建用户自定义函数。

--udf-inject Inject custom user-defined functions 注入用户自定义函数
--shared-lib=SHLIB Local path of the shared library 共享库的本地路径

File system access(访问文件系统):

These options can be used to access the back-end database management
system underlying file system
这些选项可以被用来访问后端数据库管理系统的底层文件系统。

--file-read=RFILE Read a file from the back-end DBMS file system 从后端的数据库管理系统文件系统读取文件
--file-write=WFILE Write a local file on the back-end DBMS file system 编辑后端的数据库管理系统文件系统上的本地文件
--file-dest=DFILE Back-end DBMS absolute filepath to write to 后端的数据库管理系统写入文件的绝对路径

Operating system access(操作系统访问):

These options can be used to access the back-end database management
system underlying operating system
这些选项可以用于访问后端数据库管理系统的底层操作系统。

--os-cmd=OSCMD Execute an operating system command 执行操作系统命令
--os-shell Prompt for an interactive operating system shell 交互式的操作系统的shell
--os-pwn Prompt for an OOB shell, Meterpreter or VNC 获取一个OOB shell,meterpreter或VNC
--os-smbrelay One click prompt for an OOB shell, Meterpreter or VNC 一键获取一个OOB shell,meterpreter或VNC
--os-bof Stored procedure buffer overflow exploitation 存储过程缓冲区溢出利用
--priv-esc Database process user privilege escalation 数据库进程用户权限提升
--msf-path=MSFPATH Local path where Metasploit Framework is installed Metasploit Framework本地的安装路径
--tmp-path=TMPPATH Remote absolute path of temporary files directory 远程临时文件目录的绝对路径

Windows registry access(Windows注册表访问):

These options can be used to access the back-end database management
system Windows registry
这些选项可以被用来访问后端数据库管理系统Windows注册表。

--reg-read Read a Windows registry key value 读一个Windows注册表项值
--reg-add Write a Windows registry key value data 写一个Windows注册表项值数据
--reg-del Delete a Windows registry key value 删除Windows注册表键值
--reg-key=REGKEY Windows registry key Windows注册表键
--reg-value=REGVAL Windows registry key value Windows注册表项值
--reg-data=REGDATA Windows registry key value data Windows注册表键值数据
--reg-type=REGTYPE Windows registry key value type Windows注册表项值类型

General(一般):

These options can be used to set some general working parameters 这些选项可以用来设置一些一般的工作参数。

-s SESSIONFILE Load session from a stored (.sqlite) file 保存和恢复检索会话文件的所有数据
-t TRAFFICFILE Log all HTTP traffic into a textual file 记录所有HTTP流量到一个文本文件中
--batch Never ask for user input, use the default behaviour 从不询问用户输入,使用所有默认配置。
--binary-fields=.. Result fields having binary values (e.g. "digest") 具有二进制值的结果字段
--charset=CHARSET Force character encoding used for data retrieval 强制用于数据检索的字符编码
--crawl=CRAWLDEPTH Crawl the website starting from the target URL 从目标网址开始抓取网站
--crawl-exclude=.. Regexp to exclude pages from crawling (e.g. "logout") 正则表达式排除网页抓取
--csv-del=CSVDEL Delimiting character used in CSV output (default ",") 分隔CSV输出中使用的字符
--dump-format=DU.. Format of dumped data (CSV (default), HTML or SQLITE) 转储数据的格式
--eta Display for each output the estimated time of arrival 显示每个输出的预计到达时间
--flush-session Flush session files for current target 刷新当前目标的会话文件
--forms Parse and test forms on target URL 在目标网址上解析和测试表单
--fresh-queries Ignore query results stored in session file 忽略在会话文件中存储的查询结果
--hex Use DBMS hex function(s) for data retrieval 使用DBMS hex函数进行数据检索
--output-dir=OUT.. Custom output directory path 自定义输出目录路径
--parse-errors Parse and display DBMS error messages from responses 解析和显示响应中的DBMS错误消息
--save=SAVECONFIG Save options to a configuration INI file 保存选项到INI配置文件
--scope=SCOPE Regexp to filter targets from provided proxy log 使用正则表达式从提供的代理日志中过滤目标
--test-filter=TE.. Select tests by payloads and/or titles (e.g. ROW) 根据有效负载和/或标题(e.g. ROW)选择测试
--test-skip=TEST.. Skip tests by payloads and/or titles (e.g. BENCHMARK) 根据有效负载和/或标题跳过测试(e.g. BENCHMARK)
--update Update sqlmap 更新SqlMap

Miscellaneous(杂项):

-z MNEMONICS Use short mnemonics (e.g. "flu,bat,ban,tec=EU") 使用简短的助记符
--alert=ALERT Run host OS command(s) when SQL injection is found 在找到SQL注入时运行主机操作系统命令
--answers=ANSWERS Set question answers (e.g. "quit=N,follow=N") 设置问题答案
--beep Beep on question and/or when SQL injection is found 发现SQL注入时提醒
--cleanup Clean up the DBMS from sqlmap specific UDF and tables SqlMap具体的UDF和表清理DBMS
--dependencies Check for missing (non-core) sqlmap dependencies 检查是否缺少(非内核)sqlmap依赖关系
--disable-coloring Disable console output coloring 禁用控制台输出颜色
--gpage=GOOGLEPAGE Use Google dork results from specified page number 使用Google dork结果指定页码
--identify-waf Make a thorough testing for a WAF/IPS/IDS protection 对WAF / IPS / IDS保护进行全面测试
--skip-waf Skip heuristic detection of WAF/IPS/IDS protection 跳过启发式检测WAF / IPS / IDS保护
--mobile Imitate smartphone through HTTP User-Agent header 通过HTTP User-Agent标头模仿智能手机
--offline Work in offline mode (only use session data) 在离线模式下工作(仅使用会话数据)
--page-rank Display page rank (PR) for Google dork results Google dork结果显示网页排名(PR)
--purge-output Safely remove all content from output directory 安全地从输出目录中删除所有内容
--smart Conduct thorough tests only if positive heuristic(s) 只有在正启发式时才进行彻底测试
--sqlmap-shell Prompt for an interactive sqlmap shell 提示交互式sqlmap shell
--wizard Simple wizard interface for beginner users 给初级用户的简单向导界面

还有
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
SQLMAP实战操作:

1.ACCESS数据库:

sqlmap.py -u “url” /*-u为常规扫描参数*/

sqlmap.py -u “url” –tables /*–tables拆数据库表*/

sqlmap.py -u “url” –columns -T “要拆的表名”/*列出指定表名*/

sqlmap.py -u “url” –dump -T “要拆的表名”-C “要拆的字段名” /*–dump为拆解字段名会保存在sqlmap/output目录下*/

2.MYSQL数据库:

sqlmap.py -u “url” /*扫描注入点*/

sqlmap.py -u “url” –dbs /*列出所有数据库*/

sqlmap.py -u “url” –current-db /*列出当前数据库*/

sqlmap.py -u “url” –current-user /*列出当前用户*/

sqlmap.py -u “url” –tables -D “当前数据库名” /*拆解当前数据库表*/

sqlmap.py -u “url” –columns -T “要拆得的表名” -D “当前数据库名” /*拆解指定表字段名*/

sqlmap.py -u “url” –dump -C “字段名” -T “表名” -D “当前数据库”

3.SQLSERVER数据库:

sqlmap.py -u “url” /*扫描注入点*/

sqlmap.py -u “url” –dbs /*列出所有数据库*/

sqlmap.py -u “url” –current-db /*列出当前数据库*/

sqlmap.py -u “url” –current-user /*列出当前用户*/

sqlmap.py -u “url” –tables -D “当前数据库名” /*拆解当前数据库表*/

sqlmap.py -u “url” –columns -T “要拆得的表名” -D “当前数据库名” /*拆解指定表字段名*/

sqlmap.py -u “url” –dump -C “字段名” -T “表名” -D “当前数据库”

SQLSERVER操作和MYSQL是一样的!!!常见的几种数据库!!!

4.COOKIE注入:

sqlmap.py -u “www.xxx.com/asp或者www.xxx.com/php”?–cookie “参数名如id=1” –level 2/*level为提升权限*/

什么数据库就按照上面的数据库加上cookie语句拆解就行了

5.POST注入:

抓包保存到SQLMAP目录下.txt的文件然后输入指令sqlmap.py -r xxx.txt /*xxx.txt为保存包文件的文件名”

sqlmap.py -u “url” –data “POST参数”

6.执行shell命令:

sqlmap.py -u “url” –os-cmd=”net user” /*执行net user命令*/

sqlmap.py -u “url” –os-shell /*系统交互的shell*/

7.注入HTTP请求 :

sqlmap.py -r xxx.txt –dbs /*xxx.txt内容为HTTP请求*/

8.绕过WAF的tamper插件使用:

sqlmap.py -u “url” –tamper “xxx.py”

sqlmap.py -u “url” –tamper=”xxx.py”

关于tamper脚本详细说明在本博客中有,链接为:http://www.matsec.cn/?id=5

9.将注入语句插入到指定位置:

sqlmap.py -u “url(www.xxx.com/id/1*.html)”?–dbs

有些网站是采用伪静态的页面使用SQLMAP的普通注入是不行的,所以SQLMAP提供了”*”参数将SQL语句插入指定位置,一般用于伪静态注入。

在使用HTTP注入时使用-r参数也可以直接在文本中添加*号

10.延时注入:

sqlmap –dbs -u “url” –delay 0.5 /*延时0.5秒*/

sqlmap –dbs -u “url” –safe-freq /*请求2次*/

11.使用谷歌语法搜索注入(Google hack):

sqlmap.py -g “inurl:asp?id=1” /*””内为搜索语法,如:inurl,intitle,site,filetype

坚持原创技术分享,您的支持将鼓励我继续创作!