超详细SQLMap使用攻略及技巧分享

作者:CQITer小编 时间:2018-03-27 01:09

字号

sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。

sqlmap目前最新版本为1.1.8-8,相关资源如下:

官方网站:,

下载地址:https://github.com/sqlmapproject/sqlmap/zipball/master

演示视频:https://asciinema.org/a/46601

教程:

1.1 sqlmap简介

sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。

sqlmap支持五种不同的注入模式:

l  基于布尔的盲注,即可以根据返回页面判断条件真假的注入;

l  基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;

l  基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;

l  联合查询注入,可以使用union的情况下的注入;

l  堆查询注入,可以同时执行多条语句的执行时的注入。

1.2 下载及安装

(1)linux下git直接安装

gitclone –depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev

(2)windows下安装

windows下下载sqlmap的压缩包,解压后即可使用。但需要一些组件包的支持,需要有python2.7.x或者2.6.x环境支持。

(3)kali及PentestBox默认安装sqlmap

1.3 SQL使用参数详解

本文以SQLmap 1.1.8-8版本为例,对其所有参数进行详细的分析和讲解,便于在使用时进行查询。

用法: sqlmap.py [选项]

1.3.1 选项

-h,–help  显示基本帮助信息并退出

-hh    显示高级帮助信息并退出

–version  显示程序版本信息并退出

-vVERBOSE信息级别: 0-6 (缺省1),其值具体含义:“0”只显示python错误以及严重的信息;1同时显示基本信息和警告信息(默认);“2”同时显示debug信息;“3”同时显示注入的payload;“4”同时显示HTTP请求;“5”同时显示HTTP响应头;“6”同时显示HTTP响应页面;如果想看到sqlmap发送的测试payload最好的等级就是3。

1.3.2 目标

在这些选项中必须提供至少有一个确定目标

-d DIRECT    直接连接数据库的连接字符串

-u URL, –url=URL   目标URL (e.g.”?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

-g GOOGLEDORK     从谷歌中加载结果目标URL(只获取前100个结果,需要挂代理)

-c CONFIGFILE       从配置ini文件中加载选项

1.3.3 请求

这些选项可以用来指定如何连接到目标URL

–method=METHOD  强制使用给定的HTTP方法(例如put)

    --data=DATA   通过POST发送数据参数,sqlmap会像检测GET参数一样检测POST的参数。--data="id=1" -f --banner --dbs --users

–param-del=PARA..  当GET或POST的数据需要用其他字符分割测试参数的时候需要用到此参数。

–cookie=COOKIE     HTTP Cookieheader 值

–cookie-del=COO..  用来分隔cookie的字符串值

–load-cookies=L..  Filecontaining cookies in Netscape/wget format

–drop-set-cookie   IgnoreSet-Cookie header from response

–user-agent=AGENT  默认情况下sqlmap的HTTP请求头中User-Agent值是:sqlmap/1.0-dev-xxxxxxx()可以使用–user-agent参数来修改,同时也可以使用–random-agent参数来随机的从./txt/user-agents.txt中获取。当–level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入

–random-agent     使用random-agent作为HTTP User-Agent头值

–host=HOST         HTTP Hostheader value

–referer=REFERER   sqlmap可以在请求中伪造HTTP中的referer,当–level参数设定为3或者3以上的时候会尝试对referer注入

-H HEADER, –hea..  额外的http头(e.g.”X-Forwarded-For: 127.0.0.1″)

–headers=HEADERS  可以通过–headers参数来增加额外的http头(e.g.”Accept-Language: fr\nETag: 123″)

–auth-type=AUTH.. HTTP的认证类型 (Basic, Digest, NTLM or PKI)

–auth-cred=AUTH..  HTTP 认证凭证(name:password)

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接