700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【文件上传漏洞06】服务端文件内容检测与绕过实验+图片马制作方法(基于upload-labs-1

【文件上传漏洞06】服务端文件内容检测与绕过实验+图片马制作方法(基于upload-labs-1

时间:2023-03-18 03:35:35

相关推荐

【文件上传漏洞06】服务端文件内容检测与绕过实验+图片马制作方法(基于upload-labs-1

目录

1 概述1.1 目的1.2 检测方法 2 图片马的制作方法2.1 方法一:直接编辑2.2 方法二:合并文件2.3 方法三:利用十六进制编辑器 3 实验简介3.1 实验目的3.2 实验环境3.3 实验前准备 4 实验过程5 总结

1 概述

1.1 目的

为了保障安全性,服务器还需要对文件内容进行检测。

1.2 检测方法

对于图片文件,PHP中有一个函数getimagesize(),这个函数本身检测图片大小,但是在检测之前还会判断目标文件是否是一张图片,因此,可以使用该函数来检测文件内容是否输出图片类型。由于同一类型文件的头部内容也是一样的,服务器也常根据文件的头部内容进行判断。

2 图片马的制作方法

目的:让服务器对文件内容进行检测时,将文件判断为图片。

2.1 方法一:直接编辑

新建文件并命名为info.gif,文件内容如下。该文件在函数getimagesize()检测时,会被识别为gif图片,但是该文件无法直接在服务器端执行里面的代码,需要借助其他漏洞才能执行。

GIF89a<?phpphpinfo();?>

2.2 方法二:合并文件

准备一张图片,例如此处文件名为fighting_hawk.png。

准备一个php一句话木马文件,比如此处文件名为info.php,内容为<?php phpinfo(); ?>。合并文件。在windows系统下,运行cmd,输入命令copy fighting_hawk.png/b+info.php/a muma.jpg。需要注意的是需要先cd到两个文件所在的路径下执行命令。

以记事本方式打开生成的文件,可以看到里面包含着php代码语句。

2.3 方法三:利用十六进制编辑器

需要了解的是,各种图片的文件头部都是相同的,比如说所有的jpg图片的头部文件是一致的;不同格式的图片之间的头部文件是不同的。函数getimagesize()无法识别文件幻术生成的文件。常见的图片文件类型如下:新建文件,命名为16.png,文件内容如下,需要在16进制编辑器中将第一行转换为ASCII码。

89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52<?php phpinfo(); ?>

3 实验简介

3.1 实验目的

掌握绕过内容检测的方法,验证文件上传漏洞的存在。

3.2 实验环境

靶场:基于WAMP环境的upload-labs靶场,搭建过程可参考文章《基于WAMP环境的upload-labs漏洞测试平台搭建过程》。攻击机:安装BurpSuite软件。

3.3 实验前准备

准备好一个图片马,该文件可能是木马,也可能是其他任意文件,本实验以php探针作为测试文件,来验证是否存在文件上传漏洞以及绕过漏洞检测的方法。使用上面方法一生成的文件进行测试,文件名为:info.gif

4 实验过程

测试顺序:前端JS→MIME类型→文件后缀→文件内容。因为这个还要修改文件内容,相关工作量较大。选择准备好的图片马进行上传。

可以看到该文件直接上传成功,由于文件具体内容并非图片,因此此处无法正常显示图片内容。

需要配合以后学习的文件包含漏洞、服务器解析漏洞等,才能让该文件成功执行。现在先直接在服务器找打上传的图片马,以记事本打开,可以看到里面的恶意代码并没有被删除,说明文件成功上传。

结论:虽然服务器端无法运行文件中的代码(要执行需要配合服务器解析漏洞、文件包含漏洞等其他漏洞去实现,比如将该文件另存为php格式的文件等等),但是渗透测试报告中仍应记录该情况,存在任意文件上传漏洞。

5 总结

了解文件头部内容以及服务器检验文件内容与类型的方法;掌握图片马的制作方法;掌握绕过服务器端内容检测的方法。

【文件上传漏洞06】服务端文件内容检测与绕过实验+图片马制作方法(基于upload-labs-14靶场)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。