文章目录
一、sqlmap介绍
- 官网下载地址:https://github.com/sqlmapproject/sqlmap
- sqlmap 是一款开源的渗透测试工具,可以自动化进行SQL注入的检测、利用,并能接管数据库服务器。它具有功能强大的检测引擎,为渗透测试人员提供了许多专业的功能并且可以进行组合,其中包括数据库指纹识别、数据读取和访问底层文件系统,甚至可以通过带外数据连接的方式执行系统命令。
- 使用方法:
python sqlmap.py -参数
,sqlmap可以运行在python2.6、2.7和3.x的任何平台上。 - 官方使用指南:https://github.com/sqlmapproject/sqlmap/wiki/Usage
二、sqlmap命令行参数用法讲解
2.1常用用法
-u
使用方法:python sqlmap.py -u URL
-u为基础参数,后跟需要测试的url,通常是GET类型注入的必备参数
–batch
使用方法:python sqlmap.py -u URL --batch
使用–batch参数,可以在所有需要用户输入的部分(通常是询问执行yes还是no),执行默认操作,不需要用户再输入
–flush-session
使用方法:python sqlmap.py -u URL --flush-session
使用–batch参数表示清除当前目标的会话文件。
sqlmap在测试某一目标URL后会生成session文件,该文件保存了本次测试的结果信息。当我们再次测试该目标URL时,会自动加载上一次的结果
当我们想重新测试该目标URL时,可以使用–flush-session清除当前目标的会话文件,可以看到加了参数后,sqlmap对目标URL进行重新测试了。
–dbms
使用方法:python sqlmap.py -u URL --dbms 数据库名
使用–batch参数可指定数据库类型。
sqlmap默认情况下会自动检测Web应用程序的后端数据库管理系统。
在我们明确知道测试的数据库类型时,可以使用–dbms可以指定数据库。
备注:sqlmap完全支持以下数据库管理系统:
- MySQL
- Oracle
- PostgreSQL
- Microsoft SQL Server
- Microsoft Access
- IBM DB2
- SQLite
- Firebird
- Sybase
- SAP MaxDB
- Informix
- MariaDB
- Percona
- MemSQL
- TiDB
- CockroachDB
- HSQLDB
- H2
- MonetDB
- Apache Derby
- Amazon Redshift
- Vertica
- Mckoi
- Presto
- Altibase
- MimerSQL
- CrateDB
- Greenplum
- Drizzle
- Apache Ignite
- Cubrid
IRIS
eXtremeDB
FrontBase
–level
使用方法:python sqlmap.py -u URL --level 等级
使用–batch参数可指定payload测试复杂等级。共有五个级别,从1-5,默认值为1。等级越高,测试的payload越复杂,当使用默认等级注入不出来时,可以尝试使用–level来提高测试等级。
–random-agent
使用方法:python sqlmap.py -u URL --random-agent
使用–batch参数可以指定随机选择请求头中的User-Agent。
sqlmap默认使用sqlmap/1.0-dev-xxxxxxx ([http://sqlmap.org](http://sqlmap.org))
作为User-Agent执行HTTP请求,如下:
使用–random-agent参数后将不再使用默认User-Agent,随机使用User-Agent,如下:
–user-agent
使用方法: