SQL注入工具sqlmap安装使用详解靶场实验

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

1、sqlmap简介

sqlmap 是一款开源的渗透测试工具,可以自动化进行SQL注入的检测、利用,并能接管数据库服务器。它具有功能强大的检测引擎,为渗透测试人员提供了许多专业的功能并且可以进行组合,其中包括数据库指纹识别、数据读取和访问底层文件系统,甚至可以通过带外数据连接的方式执行系统命令。

项目地址:https://github.com/sqlmapproject/sqlmap

kali系统内置sqlmap工具,可以先查看到版本号,如果不最新版本会提示,升级版本可用命令 apt-get upgrade进行升级。

在这里插入图片描述

kali系统下使用命令

# 查看常用命令列表
sqlmap -h
# 查看所有命令列表
sqlmap -hh
# 查看sqlmap版本号,注意前面是2个横杆
sqlmap --version

如果需要kali系统虚拟机,请关注我的公众号:大象只为你,后台回复:虚拟机。

其他系统比如windows,可以下载源码下来,运行环境是python2.6, 2.7 and 3.x 。以windows为例,使用git命令克隆代码到本地,或者在项目右侧的Release选择最新的Source code(zip)下载并解压即可,确保自己本机有python环境就可用了。

# git命令下载
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
# 查看常用命令列表
python sqlmap.py -h
# 查看所有命令列表
python sqlmap.py -hh

kali系统与windows使用命令不同点在于:前者封装好为sqlmap,后者要加上python,其他没有不同。我个人比较习惯在kali系统下使用,下文给的示例命令都是基于kali系统。

2 、SQL注入攻击流程

SQL注入漏洞产生根本条件是可控变量的存在和特定函数。SQL注入攻击流程一般是猜测数据库类型,再根据数据库类型选择思路。常见开发语言和数据库组合如下:

ASP+Access
ASP.NET+MSSQL
PHP+MySQL
Java+MySQL

怎么查看网站使用开发语言,可用浏览器插件Wappalyzer,或浏览器按F12看网络请求的响应头X-Powered-By会体现出来。

在这里插入图片描述

3、MySQL攻击思路

1、非root的注入攻击:

常规类的猜解,黑盒测试中可以采用user()获取当前用户权限,白盒中看连接用户。

2、root用户的注入攻击:

文件读写操作,跨库查询注入等。

MySQL5.0以上版本,自带的数据库information_schema,存储数据库下的数据库名及表名,列名信息的数据库。想要获取到相关信息可从以下几方面着手:

1、数据库版本:version(),看是否带有库information_schema,可用来猜解表名、列名、数据等;
2、数据库用户:user(),看是否符合ROOT型注入攻击;
3、当前操作系统:@@version_compile_os,看是否支持大小写或文件路径选择;
4、数据库名字:database(),为后期猜解指定数据库下的表、列做准备。

4、sqlmap常用命令介绍

-u  #注入点,也就是请求url地址,get请求在此处不再加上构造的poc
-f  #指纹判别数据库类型 
-b  #获取数据库版本信息 
-p  #指定可测试的参数(?page=1&id=2 -p "page,id") 
-f  #指纹判别数据库类型 
-b  #获取数据库版本信息 
-p  #指定可测试的参数(?page=1&id=2 -p "page,id") 
-v  #详细的等级(0-6) 
    0:只显示Python的回溯,错误和关键消息。 
    1:显示信息和警告消息。 
    2:显示调试消息。 
    3:有效载荷注入。 
    4:显示HTTP请求。 
    5:显示HTTP响应头。 
    6:显示HTTP响应页面的内容 
--data #通过POST发送数据,这个我建议使用参数-r t1.txt t1.txt为请求体内容
--columns        #列出字段 
--current-user   #获取当前用户名称 
--current-db     #获取当前数据库名称 
--users          #列数据库所有用户 
--passwords      #数据库用户所有密码 
--privileges     #查看用户权限(--privileges -U root) 
-U               #指定数据库用户 
--dbs            #列出所有数据库 
--tables -D ""   #列出指定数据库中的表 
--columns -T "user" -D "mysql"      #列出mysql数据库中的user表的所有字段 

更多命令详解请参考:https://www.cnblogs.com/bmjoker/p/9326258.html ,里面有详细命令含义和一些常用的组合命令。

5、靶场实验

以sqli-labs靶场实验SQL攻击注入,靶场搭建请详见我的另一篇文章《靶场环境搭建【XP、pikachu、dvwa、sqli-labs】》。

5.1、get方式

sqli靶场选择get请求的Less-1

在这里插入图片描述

# 确认数据库类型、数据库版本信息、当前用户名称、当前数据库名称、数据库用户所有密码、列出所有数据库 
sqlmap -u "http://192.168.242.1/sqli/Less-2/?id=1" -f -b --current-user --current-db --passwords --dbs -v 0

在kali系统输入该命令后按enter执行命令,过程会提问y或n进行确认是否继续操作。如果想继续操作,则输入y或按enter,如果不继续输入n。在爆破密码过程会提示密码字典文件,如果自己没有其他更好的选择,按默认即可,按enter继续。
在这里插入图片描述
在这里插入图片描述

5.2、post方式

sqli靶场选择post请求的Less-11,打开Burp suite,在输入框架输入任意账号密码,在Burp suite的历史请求记录找到请求记录,把Request的请求体copy到一个新建的文本文件,比如t1.txt,**注意在username=admin后要加*标识为SQL注入点。**然后把t1.txt文件复制到kali系统的sqlmap命令目录下。

在这里插入图片描述

在执行sqlmap命令时所在目录,比如/home/kali,把t1.txt复制到/home/kali下。

# 确认数据库类型、数据库版本信息、当前用户名称、当前数据库名称、数据库用户所有密码、列出所有数据库 
# 因为t1.txt里面已经有包含请求路径了,就不需要再设置-u了
sqlmap -r t1.txt -f -b --current-user --current-db --passwords --dbs -v 0

同样的输入该命令后按enter执行命令,过程会提问y或n进行确认是否继续操作。正常情况下都是输入y或按enter往下执行,这边只截取与get方式不同点,后面信息列出来和get一样。

在这里插入图片描述

5.3、题外话

sqlmap使用起来真的很简单,但我一直没有使用,最开始给自己找借口说想用手工注入的方式,在学习阶段确实是以手工方式是有助于理解。后面自己懂了原理,总是不想看文档学习,一拖再拖,今天学习后操作起来一点都不难,在挖漏洞方面也会更高效。

6、我的公众号

敬请关注我的公众号:大象只为你,持续更新网安相关知识中…

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

主从Reactor服务器

目录: 目录: 目标: 本文讲解思路: 各模块的功能以及代码: 1.服务器相关模块:服务器模块的功能是对所有的连接以及线程进⾏管理 2.协议相关模块:协议模块是对当前的Reactor模型服务器提供应…

全球排名第一的质量管理(QMS)系统介绍,100%免费开源

什么是Odoo全程质量管理? 开源智造Odoo免费开源质量管理系统将政策、标准和实践规范化并自动化,以最小的开销提供最高质量的产品。快速轻松地选择要执行的测试,设置参数以评估结果,并定义接收时和生产过程中的测试策略。Odoo会自动…

Vue 快速入门:Vue初级

语法规则 前端渲染 渲染有几种方式:原生js、js模板、Vue模板语法 原生js 使用字符串拼接 js模板语法 Vue.js 模板语法概述 Vue.js 是一个用于构建用户界面的渐进式框架,其模板语法非常灵活和直观。Vue 的模板语法基于 HTML,可以通过指令…

达梦sql中参数个数太多导致出现SOH等特殊字符报错无效的序列号是不是达梦的bug

mybatis的Mapper.xml中如下: in中的参数大概有1万6千多个,分成每1000个一组拼接成sql,然而在达梦中执行时报如下: Caused by: dm.jdbc.driver.DMException: Invalid sequence noat dm.jdbc.driver.DBError.throwException(DBError.java:710)…

号卡极团分销管理系统 ue_serve.php 任意文件上传漏洞复现

0x01 产品简介 号卡极团分销管理系统,同步对接多平台,同步订单信息,支持敢探号一键上架,首页多套UI+商品下单页多套模板,订单查询支持实时物流信息、支持代理商自定义域名、泛域名绑定,内置敢探号、172平台、号氪云平台第三方接口以及号卡网同系统对接! 0x02 漏洞概述…

web入门练手案例(一)

下面是一下web入门案例和实现的代码,带有部分注释,倘若代码中有任何问题或疑问,欢迎留言交流~ 新闻页面 案例描述: 互联网的发展使信息的传递变得方便、快捷,浏览新闻称为用户获取信息的重要渠道。下面将实现一个简…

【doghead】mac与wsl2联通

mbp 设置为发送端,那么要能与windows上 wsl2的ubutnu通信。 mbp的 uv 构建ok zhangbin@zhangbin-mbp-2  ~/tet/Fargo/zhb-bifrost/Bifrost-202403/worker/third_party/libuv   main clion使用lldb cmake构建 更新git2.45.0啊

从零开始开发企业培训APP:在线教育系统源码剖析

今天,小编将深入剖析企业培训APP的开发,从零开始为企业构建一个高效、实用的在线教育系统。 一、需求分析 1.主要功能需求 包括但不限于: -用户管理 -课程管理 -学习计划 -互动功能 -考核评估 -统计分析 二、技术选型 1.前端技术 …

将jar打包成exe可安装程序,并在html页面唤醒

一、exe4j将jar打包成exe 1.exe4j下载 下载地址:https://www.ej-technologies.com/download/exe4j/files 2.exe4j打包jar 2.1. welcome 可以选择历史配置,新增则直接下一步 2.2. project type选择“jar in exe” mode 2.3. application info设置应用…

17-LINUX--线程与fork()

一.多线程程序fork() 多线程出现fork()后&#xff0c;只复制一条执行路径&#xff0c;是fork()所在的那条执行路径 主程序fork()示例代码&#xff1a; include<stdio.h> #include<stdlib.h> #include<string.h> #include<pthread.h> #include<un…

港股大反攻结束了吗?

‘港股长线见顶了吗&#xff1f;今天开盘就是最高点&#xff0c;然后一路跳水&#xff0c;市场又是一片恐慌。到底是健康的技术性回调&#xff0c;还是市场已经见顶&#xff1f; 港股此轮“大反攻”中&#xff0c;科网股表现十分亮眼。今日港股盘后&#xff0c;阿里巴巴、腾讯…

MySQL表的增删改查(1)

目录 一. . 新增 insert 1.简单方法 2. 指定列插入 3. 一次插入多行记录 二. 查询 select 1.最简单的查询, 全列查询 2. 指定列查询 ​编辑 3. 表达式查询 1)简单表达式查询 2)带别名的表达式查询 4. 去重查询 5. 带有排序的查询 1)单个列排序 2)多个列排序: ​…

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二 1.概述 这篇文章在触摸屏上绘制一个开关&#xff0c;通过点击开关实现控制灯的开关功能。 2.硬件 硬件连接参考第一篇文章介绍 Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之获取触控坐标一 3.实现…

JETBRAINS IDES 分享一个2099通用试用码,支持一键升级!CLion 2024 版

文章目录 废话不多说上教程&#xff1a;&#xff08;动画教程 图文教程&#xff09;一、动画教程激活 与 升级&#xff08;至最新版本&#xff09; 二、图文教程 &#xff08;推荐&#xff09;Stage 1.下载安装 toolbox-app&#xff08;全家桶管理工具&#xff09;Stage 2 : 下…

一直可以正常 git push 代码,突然就不行了,提示端口22错误,访问超时!

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是当使用 git 时&#xff0c;突然提示端口错误&#xff0c;然后访问超时&#xff0c;我解决的过程以及最后的解决方案。 最新文章通过公众号「设计师工作日常」发布。 目录 不好意思&a…

手撕C语言题典——环形链表的约瑟夫问题

目录 前言 一.故事背景 二.题目 ​编辑三.思路 1&#xff09;数组 ​编辑2&#xff09; 循环链表 四.代码实现 搭配食用更佳哦~~ 数据结构之单单单——链表-CSDN博客 数据结构之单链表的基本操作-CSDN博客 前面学了单链表的相关知识&#xff0c;我们来尝试做一下关于…

用友hr软件统一认证与致远OA单点登录身份周期管理怎么做

一、引言 随着企业信息化建设的深入&#xff0c;各类管理软件如用友HR、致远OA等已经成为事业单位日常运营不可或缺的工具。用友HR软件以其强大的人力资源管理功能&#xff0c;帮助企事业单位实现员工信息的集中管理&#xff1b;而致远OA则以其便捷的办公流程管理&#xff0c;…

数据中心网络随想-电路交换

数据中心网络扩容并不容易&#xff0c;涉及设备上架&#xff0c;切换等又硬又大的动作&#xff0c;期间对所有应用都会产生影响&#xff0c;所以理论上 “加钱加硬件” 这种看起来很简单的事实际上真不如 “写一个随时部署升级的端到端拥塞控制算法” 更容易实施。 傍晚绕小区…

【以规划为导向的自动驾驶】Planning-oriented Autonomous Driving

ABSTRACT 研究背景&#xff1a; 现代自动驾驶系统是顺序化地排列多个任务模块, 近期的主流方法&#xff1a; ①为单个任务部署独立模型 ②设计具有分离式头部的多任务(multi-task)范式。 但是&#xff0c;这些方法会累积误差或任务间协同不足而不利于自动驾驶。 作者认为重…

nginx 配置域名SSL证书HTTPS服务

下载 上传根目录 /home/wwwroot/xx.com/ssl 从新执行 添加域名命令 选择添加SSL SSL Certificate file: 填写 完整目录 PEM文件地址 SSL Certificate Key file:填写 完整目录 key文件地址