SqlMap自动注入(一)
sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞【动态页面中get/post参数、cookie、HTTP头】。它由Python语言开发而成,因此运行需要安装python环境。但在kali中已经集成。其功能完善,有强大的引擎,适用几乎所有数据库,,可自动进行数据榨取,也可对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行操作系统命令),还可以做XSS漏洞检测【Windows SQLmap教程】
注意:sqlmap只是用来检测和利用sql注入点的,并不能扫描出网站有哪些漏洞,使用前请先使用扫描工具扫出sql注入点。
五种漏洞检测技术
1、基于布尔的盲注测试
2、基于时间的盲注检测【若是该语句可以在服务器中运行,则按指定时间返回,若不能执行,返回错误或正常页面】
'and (select*from (select(sleep(20)))a)--+
3、基于错误的检测
4、基于UNION联合查询的检测
前提:使用于通过for/while循环直接输出联合查询结果,即SQL语句在循环内,否则只会显示第一项结果
5、基于堆叠查询的检测
通过分号(;)堆叠多个查询语句
使用于非select的数据修改、删除的操作
支持的数据库管理系统DBMS
MySQL、Oracle、PostgreSQL、Microsoft SQL Server, Microsoft Access,IBM DB2, SQLite,Firebird, Sybase , SAP MaxDB
SQL其他特性
1、数据库直接连接 -d
不通过SQL注入,指定身份认证信息【前提有数据库管理系统的相应权限】、IP、端口
2、与burpsuite、Google结合使用,支持正则表达式限定测试目标
3、Get、Post、Cookie、Referer、User-Agent(随机或指定)
Cookie过期后自动处理Set-Cookie头、更新Cookie信息【不用担心扫描过程中,cookie过期】
4、限速:最大编发、延迟发送
5、支持Basic,Digeset,NTLM,CA身份认证
6、数据库版本、用户、权限、hash枚举和字典破解、暴力破解表列名称【可使用内建字典,也可以使用自定义字典】
7、文件上传下载、UDF、启动并执行存储过程、操作系统命令执行、访问windows注册表
8、与W3af、metasploit集成结合使用,基于数据库服务进程提权和上传执行后门
SQLMAP安装【kali已集成,随kali库更新而更新】
其他linux系统
apt-get install git
git clone https://github.com/sqlmapproject/sqlmap.git
Kali中更新
sqlmap --update 【或者apt-get update;apt-get upgrade】 在线更新,有可能出错【使用kali官方维护版】
git clone https://github.com/sqlmapproject/sqlmap.git #离线更新
git pull #
功能详情
Sqlmap –h 常用参数列表
Sqlmap –hh 所有参数列表
Sqlmap –v 显示详细信息(有七个等级0-6,默认为1)
七大类
指定目标[Target]
-d 直接连接数据库服务侦听端口,相当于数据库客户端程序
-u 指定URL,一定要存在参数变量(http://www.site.com/vuln.php?id=1)
-l 后跟logfile,logfile可以来自burp或webScarab等代理程序,将其记录日志记录下来,将logfile作为源文件,sqlmap对里面的URL,逐个进行检查,判断是否有注入点
-x 站点地图,以xml形式,提交给sqlmap
-m 指定URL地址文件[.txt],集中扫描
-r 指定http头信息和body信息文件
-g 使用Google,可添加正则表达式进行过滤
-c 指定sqlmap命令参数集成扫描配置文件
示例
1、 最简单的利用方法()
【<GET方法>】
【可使用-p:指定检查变量(username);-f:检查数据库 指纹信息】
【--users:查当前的数据库的账号】
【--banner:查看数据库版本信息】
【--dbs:查看数据库中有哪些库】
【--schema:查元数据库(内容居多)】
【-a:查所有能查的数据(自带哈希值另存,哈希值字典破解)】
-d:前提有数据库管理系统的连接账号密码 【速度相对更快】
Sqlmap –d “mysql://user:password@192.168.1.107:3306/dvwa” –f –users –banner –dbs –schema –a 【端口可用扫描得到】
-m:扫描URL列表文件
Sqlmap –u list.txt
-g:扫描Google搜索结果【需要做代理链】
Sqlmap.py –g “inurl:\”.php?id=1\””
【<POST>】
使用http请求文件(burpsuite)
Sqlmap –r request.txt
##将burpsuite中截获的http请求复制黏贴成一个文本文件
使用burpsuite log文件【先到option中配置要记录的log文件】
Sqlmap –l log.txt
【< HTTPS >】
Sqlmap –u https://1.1.1.1/a.php?id=1:443 –force-ssl
【< 扫描配置文件 >】(可将扫描参数集成为一个配置文件)
Sqlmap –c sqlmap.conf
默认的配置文件
/etc/sqlmap/sqlmap.conf