时光匆匆流逝过,平平淡淡才是真。忍耐任由风雨过,守得云开见月明。
注:由于自己sqlmap命令不是很熟,经常只会使用常见的那几个参数,所以特地写了博客,将所有的命令一个一个的操作了一遍,然后码字,过程是辛苦的,但收货满满,很开心,晚安,世界!
简介:
SQLMAP是开源的渗透测试工具,主要用于自动化监测和利用SQL注入漏洞,它具有功能强大的检测引擎,能针对各种不同类型的数据库去获取数据库服务器的权限,获取数据库所存储的数据,访问并且可以导出操作系统的文件,甚至通过外带数据连接的方式执行操作系统命令。
所支持的DBMS:
SQLMAP支持市面上常见的DBMS,包括MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird)和SAP MaxDB。
五种注入模式:
- 基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
- 基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟是否执行(即页面返回时间是否增加)来判断。
- 基于报错注入,即页面会返回错误信息,或者把注入的语句直接返回在页面中。
- 联合查询注入,在使用union联合查询的情况下注入
- 堆查询注入,可以在同时执行多条语句的情况下注入
七种测试等级:
使用参数-v指定对应的测试等级,默认是等级1.如果想看到sqlmap发送的测试payload最好的等级是3,。
1 | ·0:只显示Python的回溯、错误和关键消息; |
基本功能:
1.在sqlmap 0.8版本之后,提供了数据库直连的功能,使用参数-d作为SQL数据库的客户端程序来连接数据库的端口,需要安装一些python中的依赖库便可以进行访问,其语法格式为:
1 | sqlmap.py -d "DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME" |
2.与BurpSuite,Google结合使用,支持正则表达式限定测试目标
3.可以对HTTP头部信息(GET,POST,Cookie,Referer,User-Agent等)进行自动注入或者手动注入。
另外Referer和User-Agent可以具体指定某一个值去进行SQL注入挖掘
如果cookie过期之后,sqlmap会自动处理set-cookie头,更新cookie的信息
4.进行限速处理:设置最大并发和延迟发送。
5.支持基本身份认证(Basic Authentication),摘要认证(Digest Authentication),NTLM认证,CA身份认证
6.能够进行数据库版本的发现,用户的发现,进行提权,hash枚举和字典破解,暴力破解表列名称
7.能够利用SQL注入进行文件上传下载,支持用户定义函数(UDF)利用存储过程执行存储过程,执行操作系统命令,访问Windows注册表
8.与w3af,metasploit集成结合使用,能够基于数据库进程进行提权和上传执行后门。
下载地址:http://sqlmap.org/
操作选项:
基本操作:
1 | -h:显示帮助信息退出 |
指定目标:
1 | GET方法: |
枚举模块:
1 | -a/--all:获取所有信息 |
请求模块:
1 | --data=DATA :指定post数据包中被传输的值 |
身份认证模块:
1 | --auth-type=AUTH:指定HTTP认证类型(Basic, Digest, NTLM or PKI) |
代理模块:
1 | --proxy="http://127.0.0.1:8081" //将设置国外的代理服务器,传递给本地的8081端口,这个命令是将本地的8081端口反弹到国外的服务器上面去执行命令 |
优化模块:
1 | -o 开启所有优化开关 |
注入模块:
1 | -p:指定扫描的参数,也可以指定HTTP头部字段 |
检测模块:
1 | --level :共有5级,默认等级1,可以自己制定,推荐等级3 |
技术类型:
1 | sqlmap默认使用这些操作 |
指纹信息:
1 | -f/--fingerprint:查询目标系统的数据库管理系统的指纹信息 |
爆破模块:
1 | 用于: |
UDF注入模块:
1 | UDF:自定义函数,利用UDF函数达到执行操作系统命令 |
系统文件操作:
1 | --file-read=RFILE:从后端DBMS文件系统中读取文件(读取系统文件) |
OS系统访问:
1 | --os-cmd:运行任意操作系统命令(适用于数据库为mysql,postgresql,或Sql Server,并且当前用户有权限使用特定的函数) |
Windows注册表模块:
1 | --reg-read:读取注册表的值 |
一般性参数:
1 | -s:指定sqlite会话文件保存位置 |
批处理模块:
1 | --check-waf:检测WAF/IPS/IDS |
杂项模块:
1 | --mobile:模拟智能手机设备,修改User-Agent为手机端的UA |