
一.攻击场景
- 直接上传webshell
- 描述许多应用系统或组件均提供文件上传功能,如果未做任何文件上传类型限制,导致可任意上传webshell,进而控制整台服务器。
测试方法
首先查找所有可以上传文件的页面,确定应用系统所使用的服务端技术(如jsp,php,asp),直接上传一句话木马,进而使用一句话木马客户端(中国菜刀)连接即可获取webshell,以php为例,准备好php一句话木马:
<?php
@eval($_POST[value]);
?>
上传后得到上传路径,使用中国菜刀即可连接,执行获取webshell.
- 绕过客户端校验
- 描述如果仅仅利用JavaScript等客户端脚本对上传的文件扩展名进行校验,那么很容易通过代理工具绕过客户端校验。
- 测试方法假设应用系统对文件上传做了校验,不允许上传jsp,php,asp之类的脚本文件,那么首先上传脚本文件,然后再看提示,通常利用客户端校验的话,会很快弹出提示上传文件不合法的对话框,像是没有经历过服务端处理一样,这时如需进一步确认,可使用浏览器查看代码功能,以chrome为例,可在上传按钮点击右键,审查元素,看下js的处理逻辑。
如果在js有校验扩展名逻辑,可使用burpsuite拦截合法上传请求,再修改文件扩展名即可。
- 大小写,编码,服务器特性等绕过校验
- 描述简单的文件扩展名过滤策略可通过转换大小写,编码自己利用web服务器特性来绕过。
- 测试方法
文件名绕过校验
- 上传压缩的大文件
- 描述许多应用系统都允许上传压缩文件,并且有限制压缩文件的大小,通过制作一个高压缩文件,把几个G的文件压缩成几M,这样就不会超过系统限制的大小,并且在后台对该文件解压时会对cpu,内存,磁盘完成巨大的压力,有可能会造成拒绝服务攻击。
- 测试方法先在Kali Linux或BT Linux等操作系统上通过命令制作高压缩比1000的文件,具体命令如下:
DD if=/dev/zero count=$((1024*1024)) bs=1024 | zip -9 big.zip –
得到超大压缩文件,最后上传big.zip,查看cpu,内存,磁盘数据是否突然增大或达到瓶颈。
- 改变上传的路径
- 描述许多应用系统都允许上传压缩文件,并且有限制上传压缩文件的大小,但没有对压缩文件里的文件类型进行校验,同时对文件解压的路径没有限制,导致攻击者可以改变上传路径并且上传webshell。
- 测试方法假设你要上传webshell到以下路径,../../home/test/test.php,准备一个webshell,扩展名为txt,文件名随意,但长度必须和要上传路径长度一致。如:
../../home/test/test.php
11111111111111111111.txt
都是24个字符。
接着把txt文件进行压缩,压缩后用16进制编辑器编辑11111111111111111111.txt为../../home/test/test.php,然后保存上传,最后应用系统会解压webshell到以上路径,达到获取webshell的目的。
- 绕过MIME类型检测
- 描述有些应用系统仅仅通过对文件的MIME类型(Content Type)对上传的文件进行校验,如jpg文件的MIME类型是image/jpeg,html文件类型是text/html,这时只需要发送的请求中改变要上传的文件的MIME类型即可绕过校验
- 测试方法以php为例,上传控件限制只能上传gif文件,首先直接上传一个php文件,使用burpsuite拦截,在请求头中可以看到Content Type的值为text/plain,可能显示其他,将其改为image/gif,提交请求即可绕过。
- 绕过文件内容校验
- 描述有时系统在服务端对文件头有校验,服务器对图片文件校验用gettimagesize(),在文件内容前面增加一些图片格式信息,绕过服务端对文件头校验。
- 测试方法上传图片功能为例
在攻击脚本前面增加图片信息,上传jpg添加FF S8 FF Et 00 10 4A 46 49 46,上传png添加89 50 4E 47,上传gif添加47 49 46 38 39 61,重命名上传脚本test.php为test.jpg。
执行上传功能,访问攻击脚本,攻击成功。
- 执行图片木马
- 描述有时通过多种方式均无法上传php,jsp,asp等webshell,这时可以尝试利用copy命令制作图片木马,并通过文件包含漏洞执行图片木马达到获取webshell的目的。
- 测试方法以php为例,首先准备一张图片,在准备一句话木马,将两个文件放同一目录。
打开cmd,进去该目录,输入命令:copy 1.gif/b+1.php/a 2.gif
至此,2.gif这个图片木马制作完了,上传该木马,接下来就寻找文件包含漏洞,直接包含这个图片木马即可,以php为例,文件包含漏洞的url一般这样,https://127.0.0.1/test/test.php?file=2.gif,直接把这个链接放入中国菜刀即可获取webshell
二.影响
可能导致被攻击者任意上传webshell,从而控制服务器
评论0