一、原理:
SQLmap是一个自动化的SQL注入工具,可用于检测和利用Web应用程序中的SQL注入漏洞。
其原理是通过**构造恶意的SQL查询语句**,利用**应用程序的漏洞**来执行SQL注入攻击。具体一点就是,SQLmap首先**分析目标网站的结构和参数**,尝试检测是否存在SQL注入漏洞。如果存在漏洞,它将**尝试利用不同的技术**(如布尔盲注、时间盲注、联合查询注入等)来获取数据或者直接对数据库进行修改。
SQLmap的运行原理主要包括以下几个步骤:
1、 识别目标网站:SQLmap会对目标网站进行扫描,识别是否存在注入漏洞。
2、获取数据结构:如果目标网站存在注入漏洞,SQLmap会获取数据库的数据结构,包括表名、列名、数据类型等。
3、执行注入攻击:SQLmap会使用不同的注入技术来执行攻击,包括基于错误的注入、基于布尔盲注、基于时间盲注、基于联合查询注入等。
4、获取数据或者修改数据:一旦注入成功,SQLmap可以获取数据库中的数据,或者修改数据库中的数据。
注意:使用SQLmap进行SQL注入攻击是非法的行为,仅限于授权的渗透测试和安全研究活动。
二、常用的一些选项:
-d 链接目标后端数据库(不利用sql注入)
-p 指定注入点
-u 指定url
-m 指定txt文件,批量扫描
-r post数据包注入
-x 站点地图,提交给sql一个xml文件
-c 把使用的命令写进一个文件中,让sqlmap执行文件中的命令,可以用 --save 命令写入配置
-r 加载外部请求包
--OS-shell 与系统shell交互
--OS-cmd 使用系统命令
--sql-shell 执行sql命令
--dbs 列所有出数据库
--tables 列出数据库中的表
--cookie 设置cookie值
--current-db 获取当前库名
--current-user 获取当前用户名
--tamper-TAMPER 使用给定的脚本篡改数据
--proxy-PROXY 使用http代理链接到目标URL
--data-DATA 通过post发送数据字符串
-v REVBOSE信息级别:
0:只显示python错误以及严重的信息。
1:只显示sqlmap的基本信息,如版本号和版权信息等。(默认)
2:显示sqlmap的基本信息和调试信息,如 SQL 查询语句、HTTP 请求头和响应头等。
3:显示第二级别的信息,并且在请求和响应中包含更多的数据,如响应正文、cookies、headers 等。
4:显示第三级别的信息,并且在响应正文中包含所有的数据库查询结果。
5:显示第四级别的信息,并且在每个 HTTP 请求和响应中包含完整的数据
6:显示所有的信息,包括第五级别的信息和更多的调试信息,如 HTTP 请求体中的参数、发送的 SQL 查询语句等。
-risk-RISK 执行的测试风险级别:
1:仅对目标进行最基本的 SQL 注入测试,不包括时间基注入、布尔盲注入等高级技术,适用于对目标进行初步测试,快速了解其是否存在 SQL 注入漏洞的情况。
2:对目标进行深度 SQL 注入测试,包括时间基注入、布尔盲注入等高级技术,适用于对目标进行详细的测试,发现可能存在的 SQL 注入漏洞。
3:与级别 2 相同,但同时还会尝试进行更加敏感和危险的测试,如 SQL 查询文件系统、SQL shell 等,适用于对目标进行极其详细的测试,发现潜在的高级 SQL 注入漏洞。
-level-LEVEL 执行测试的等级:
1:仅进行最基本的 SQL 注入测试,不包括时间基注入、布尔盲注入等高级技术,适用于对目标进行初步测试,快速了解其是否存在 SQL 注入漏洞的情况。
2:对目标进行常见的 SQL 注入测试,包括时间基注入、布尔盲注入等基本技术,适用于对目标进行基本测试,发现可能存在的 SQL 注入漏洞。
3:与级别 2 相同,但同时还会尝试使用一些额外的 SQL 注入测试技术,如错误信息注入、堆叠查询等,适用于对目标进行详细的测试,发现潜在的高级 SQL 注入漏洞。
4:与级别 3 相同,但同时还会尝试使用更多的高级 SQL 注入测试技术,如基于时间的盲注入、基于报错的注入等,适用于对目标进行较为深入的测试,发现更难以利用的 SQL 注入漏洞。
5:与级别 4 相同,但同时还会尝试使用更多的高级 SQL 注入测试技术,如基于布尔的盲注入、联合查询注入等,适用于对目标进行最为深入和全面的测试,发现所有可能存在的 SQL 注入漏洞。
本文转载自: https://blog.csdn.net/weixin_64622881/article/details/130214592
版权归原作者 PangTouYuA 所有, 如有侵权,请联系我们删除。
版权归原作者 PangTouYuA 所有, 如有侵权,请联系我们删除。