文件上传注入攻击

文件上传注入攻击

系统管理员都有过系统被上传后门、木马或者是网页被人篡改的经历,这类攻击大部分是通过文件上传来是实现的。文件上传漏洞是指网络攻击者上传了一个可执行文件到服务器并执行。这里上传的文件可以是木马、病毒、恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传漏洞的利用技术门槛非常的低,对于攻击者来说很容易实施。WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,作为网页后门,攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,获得命令执行环境,以达到控制网站服务器的目的(包括上传下载或者修改文件、操作数据库、执行任意命令等)。
文件上传漏洞原理:大部分的网站和应用系统都有上传功能,如用户头像上传、图片上传、文档上传等。一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过Web访问的目录上传任意PHP文件,并能够将这些文件传递给PHP解释器,就可以在远程服务器上执行任意PHP脚本。当系统存在文件上传漏洞时攻击者可以将病毒、木马、WebShell以及其他恶意脚本或者是包含了脚本的图片上传到服务器,这些文件将对攻击者后续攻击提供便利。根据具体漏洞的差异,上传的脚本可以是正常后缀的PHP、ASP以及JSP脚本,也可以是篡改后缀后的这几类脚本。上传的文件内容形式如下,能够解析成php并成功上传文件。


信息来源——合天网安实验室

接下来开始实验

  1. 服务器端程序获取上传文件名保存到相应位置
    关键代码如下:
    文件上传注入攻击_第1张图片
    basename() 函数返回路径中的文件名部分。
    move_uploaded_file() 函数将上传的文件移动到新位置,若成功,则返回 true,否则返回 false。根据服务器端代码的提示,上传php文件。
    这是基础的不能再基础的一项实验了,就是让我们先对文件上传有个认识。
    我们先创建一个后缀名为php的文件,上传后让服务器解析:
    文件上传注入攻击_第2张图片
    从代码来看我们已经上传成功
    文件上传注入攻击_第3张图片
    接下来我们看一下服务器是否解析
    文件上传注入攻击_第4张图片
    非常简单吧。。。我们还可以改改后缀名,什么都可以,因为这个最简单的没有进行任何过滤筛选,上传它就能接受。
    文件上传注入攻击_第5张图片
    这个真的。。。。没有难度。。。。评论上有个人说第一个太简单了不用做。。。。不多说了,第二个吧。

  2. 利用文件解析漏洞上传php文件
    原理分析:服务器端代码过滤文件后缀为“.php”的文件类型,如果上传文件包含“.php”,则程序输出不允许上传错误提示并退出。
    关键代码如下:
    文件上传注入攻击_第6张图片
    还是preg_match()函数,上篇有说过。
    这段代码表示上传的文件为php的话会被过滤导致上传失败,仔细看代码,会发现有个“NO PHP”,那我们就改一下文件后缀名为PHP试一试。
    文件上传注入攻击_第7张图片
    上传一下
    文件上传注入攻击_第8张图片
    上传成功,看一下结果吧
    文件上传注入攻击_第9张图片

实验书没有了,就这两个。。。。实在是有点说不过去,这才知道个皮毛,过一段我再去找几道CTF的题练一练巩固一下吧。
还了解到可以用burpsite抓包,修改mime类型再进行上传,也是一种思路,不过最重要的还是分析代码,在dvwa的洞里面有,等一起写到那个系列吧~

总结

文件上传注入攻击需要对提供的代码分析透彻,分析漏洞并根据逻辑推理出思路。这个实验简直傻瓜式操作,以后选实验要谨慎。

关注公众号获得更多文章!
文件上传注入攻击_第10张图片
如需转载,请注明原文出处,作者:vergilben

你可能感兴趣的:(安全)