Sqlmap是开源的自动化SQL注入工具,由Python(2)写成,具有如下特点:
*完全支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。 *完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。 *在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。 *支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列。 *支持自动识别密码哈希格式并通过字典破解密码哈希。 *支持完全地下载某个数据库中的某个表,也可以只下载某个表中的某几列,甚至只下载某一列中的部分数据,这完全取决于用户的选择。 *支持在数据库管理系统中搜索指定的数据库名、表名或列名 *当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持下载或上传文件。 *当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持执行任意命令并回现标准输出。
--- 去年只是对一些靶机用过sqlmap,效果挺好,只是过了一段时间就会忘记具体怎么用了,开个笔记记一下一些参数。
#实例 --- ##参数 ---
1.获取基本信息 -b 2.暴库 --dbms 3.显示web当前使用的数据库 --current-db 4. web数据库使用账户 --current-user 5.列出Sqlserver所有用户 --users 6.数据库账户与密码 --passwords 7.列出数据库中的表 -D [数据库名] --tables 8.列出表中字段 -D [数据库名] –T [要列出的表] --columns 9.暴字段内容 -D [数据库名] –T [要暴的表] –C “email,Username,password”(即要暴的字段) --dump Dump就是将结果导出
使用参数“-u”或“–url”指定一个URL作为目标,该参数后跟一个表示URL的字符串,可以是http协议也可以是https协议,还可以指定端口 使用: python2 sqlmap.py -u “http://www.testfire.net/search.aspx?txtSearch=1"
参数“-u”一次只能指定一个URL,若有多个URL需要测试就显得很不方便,我们可用将多个URL以一行一个的格式保存在文本文件中,然后使用参数“-m”,后跟该文本文件路径,让Sqlmap依次读取文件中的URL作为攻击目标。 文本格式,一行一个url 使用: python2 sqlmap.py -m url.txt –batch
该参数指定的数据会被作为POST数据提交,Sqlmap也会检测该参数指定数据是否存在注入漏洞。 使用: python2 sqlmap.py -u “http://target.com/user.php" –data=”id=0&name=test”
此参数用于指定检测级别,有1~5共5级。默认为1,表示做最少的检测,相应的,5级表示做最多的检测。
-l指定一个日志文件(.log),sqlmap从该日志中解析出可能的攻击目标,并逐个尝试进行注入。参数后跟一个日志文件路径 需要在burp中先设置,具体是project-options-misc-logging-proxy-requests打勾 使用: python2 sqlmap.py -l burp_log/proxy.log –batch 因为这个日志文件往往很大,sqlmap每碰到一个url就会询问是否test,所以用batch参数可以默认全部确定。 还可以–scope参数正则过滤日志
该参数后跟一个表示数据库的字符串,该字符串有以下两种格式: (1).当数据库管理系统是MySQL、Oracle、Microsoft SQL Server或PostgreSQL等时格式为: DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME (2).当数据库管理系统是SQLite、Microsoft Access或Firebird等时格式为: DBMS://DATABASE_FILEPATH 使用:如连接本地mysql,需要安装py2的pymysql模块。 python2 sqlmap.py -d “mysql://root:yr_pwd@127.0.0.1:3306/test_db”
各个输出级别的描述如下: 0:只显示Python的tracebacks信息、错误信息[ERROR]和关键信息[CRITICAL]; 1:同时显示普通信息[INFO]和警告信息[WARNING]; 2:同时显示调试信息[DEBUG]; 3:同时显示注入使用的攻击荷载; 4:同时显示HTTP请求; 5:同时显示HTTP响应头; 6:同时显示HTTP响应体。 使用: python2 sqlmap.py -v 3
python2 sqlmap.py -h