当前位置:   article > 正文

网络安全CTF系列培训教程之Web篇-文件上传漏洞_ctf web文件上传漏洞

ctf web文件上传漏洞

工具资料在网页底部获取

1 什么是文件上传漏洞?

       文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传漏洞的利用技术门槛非常的低,对于攻击者来说很容易实施。

2 webshell介绍

       大多数的文件上传漏洞被利用后,攻击者都会留下webshell以方便后续进入系统。攻击者在受影响系统放置或者插入webshell后,可通过该webshell更轻松,更隐蔽的在服务器中为所欲为。
这里需要特别说明的是上传漏洞的利用经常会使用webshell,而webshell的植入远不止文件上传这一种方式。(例如还可以通过其他命令执行,数据库插入等方式植入webshell)

3 常见的文件上传检测手段

       第一种是客户端JavaScript检测验证。这种方式一般是通过客户端浏览器的js代码来检测用户上传的文件后缀名是否为合法文件,从而避免非法文件如webshell的上传。
       第二种是服务器端文件扩展名检测,就是在服务器端而非客户端来检测上传文件的后缀名是否合法。这种检测方式比第一种更加安全,因为如果检测手段在客户端,那么攻击者可以很容易在客户端通过屏蔽js或者伪造代码轻松绕过客户端检测。
       第三种是服务器端MIME文件类型检测,MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
       在HTTP协议中,使用Content-Type字段表示文件的MIME类型。常见的MIME类型如下:比如后缀名为.js文件对应Content-Type为application/x-javascript,后缀名为.html文件对应Content-Type为text/html,后缀名为.jpg文件对应Content-Type为image/jpeg,后缀名为.png文件对应Content-Type为image/png,后缀名为.pdf文件对应Content-Type为application/pdf。这种方式可以通过伪造http数据包达到绕过检测,上传webshell的目的。
       第四种是服务器端文件内容检测(getimagesize函数),getimagesize()是PHP中用于获取图像的大小和格式的函数。它可以返回一个包含图像的宽度、高度、类型和MIME类型的数组。通过此函数可以对用户上传的文件进行检查,防止攻击者上传webshell等木马文件。
        攻击与防守好比矛与盾的关系,关于这几种防守检测方法,也有相应的攻击与绕过手段,后期我们将会针对每一种方法制作相应的案例给大家进行逐一讲解,教大家如何绕过上传webshell木马文件。

4 文件上传实操

       接下来给大家演示一下如何如何进行文件上传。现在大家看到的是一个DVWA训练平台的文件上传界面。

点击选择文件,选择一句话木马webshell(yjh.php)

yjh.php里面的内容为,一句话密码为shell

点击Upload上传按钮,webshell上传成功,并且返回了上传的服务器地址为

../../hackable/uploads/yjh.php

然后用蚁剑连接该地址,记住../为上级目录,靶场的url为:

http://bc953cb8-d462-4885-9dc2-84beed2e2be3.node5.buuoj.cn:81/vulnerabilities/upload

返回了两级上级目录,所以url为,

http://bc953cb8-d462-4885-9dc2-84beed2e2be3.node5.buuoj.cn:81/hackable/uploads/yjh.php

蚁剑进入服务器,从而控制整个服务器

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号