简介
SQLmap是一款「自动化」SQL注入 工具,kali自带。- 可以自己手动安装 地址 源码 源码汉化版
- kali自带
开启
python
自己直接编译运行
kali
使用方法
1 Options(选项)
-h,--help 显示帮助消息-hh 显示详细帮助
-version
-v VERBOSE 详细级别 0-6 默认1
2 Target 目标
_ -u URL--url=URL
-g GOOGLEDORK
3 Request
-r REQUESTFILE 从一个文件中载入HTTP请求--data=DATA 通过post发送的数据字符串
--cookie=COOKIE HTTP Cookie头
--random-agent 使用随机选定的HTTP User-Agent头
-tor 使用Tor匿名网络
--check-tor 检查Tor是否能够正常使用
4 Injection 注入
-p TESTPARAMETER 可测试的参数--dbms=DBMS 强制后端的DBMS为此值
--tamper=TAMPER 使用给定的脚本修改注入数据,一般用来过waf
5 Enumeration
-a--all 检索所有
-b
--banner 检索数据库管理系统的标识
--current-user 检索数据库管理系统的当前用户
--current-db 检索数据库管理系统的当前数据库
--is-dba 检测DBMS当前用户是否是DBA
-users 枚举数据库管理系统用户
-passwords 枚举用户密码hash值
-dbs 枚举数据库
-tables 枚举数据库的表
-columns 枚举数据库的列
-schema 枚举DBMS数据库模式
-count 检索表的条目数量
-dump 转储数据库管理系统的数据库的表项
--dump-all 转储所有表中的条目
-D DB 要进行枚举的数据库名
-T TBL 要进行枚举的数据库列
-C COL 要进行枚举的数据库列
--start=LIMITSTART 第一个查询输出进入检索
--stop=LIMITSTOP 最后查询的输出进入检索
--sql-query=QUERY 要执行的SQL语句
--sql-shell 提示交互式SQL的shell
--sql-file=SQLFILE 从指定的文件中执行sql语句
6 Operating system access 操作系统访问
--os-cmd=OSCMD 执行操作系统命令--os-shell 交互式的操作系统的shell
--os-pwn 获取一个OOBshell,meterpreter或vnc
--msf-path=MSFPATH MSF本地的安装路径
--tmp-path=TMPPATH 远程临时文件目录的绝对路径
探测数据库
我这边就拿我搭建的dvwa靶机来举例先把安全级别调低,让它存在注入漏洞
此时SQL Injection是允许注入的
那我们现在做一下信息收集
尝试提交一个id为1的数据,然后抓取我们需要的信息
可以发现我们的链接已经出来了,再看一下cookie
PHPSESSID=q45rdo3tdp435bh8oamgd4uqn0; security=low
此处有混淆重复项,你可以用谷歌抓取
然后组装,获取我们要注入的链接
–dbs
python sqlmap.py -u "http://你的ip:124/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "PHPSESSID=q45rdo3tdp435bh8oamgd4uqn0; security=low" --dbs
我这里直接使用中文的sqlmap了哈,方便一些
可以看到我们已经拿到它数据库连接的所有库了哈
探测表
当我们知道了数据库,我们需要探测对应数据库中有哪些表怎么办首先我们要使用数据库 -D XX 然后才能探测对应的某个数据库中的表 --tables
探测某张表的数据
前面我们已经探测到了数据库和表,那我们怎么获取它的数据呢我们使用数据库 -D 使用表 -T 获取数据 --dump
可以看到我们搞定了所有,用户名和密码都搞定了,还有什么搞不定对吧,实在不行我们用账号密码使用navicat上去
当然sqlmap还有一些可视化的gui,个人觉得没有命令行好用,当然看个人习惯,其它的靠你自己摸索了