文件上传功能模块
文件上传功能是大部分WEB应用的必备功能,网站允许用户自行上传头像、一些社交类网站允许用户上传照片、一些服务类网站需要用户上传证明材料的电子档、电商类网站允许用户上传图片展示商品情况等。然而,看似不起眼的文件上传功能如果没有做好安全防护措施,就存在巨大的安全风险。
文件上传漏洞原理
当用户在在文件上传的功能模块处上传文件时,如果WEB应用在文件上传过程中没有对文件的安全性进行有效的校验,攻击者可以通过上传WEBshell等恶意文件对服务器进行攻击,这种情况下认为系统存在文件上传漏洞。
文件上传漏洞—webshell
最常见的文件上传漏洞的方法是上传网站木马(webshell)文件,WEBSHELL又称网页木马文件,根据开发语言的不同又分为ASP木马、PHP木马、JSP木马等,该类木马利用了脚本语言中的系统命令执行、文件读写等函数的功能,一旦上传到服务器被脚本引擎解析,攻击者就可以实现对服务器的控制。
网站木马(webshell)文件又分为大马和小马(一句话木马)、图片马等
大马:功能比较善,配合浏览器使用;代码量通常较大;隐蔽性相对较弱,代码量大,通常需要通过加密等方式来隐藏特征。
小马:功能简单,需要配合客户端使用;代码量通常较小;隐蔽性相对较强,容易通过变形隐藏特征,绕过过滤,通常与cknife工具一起使用。
图片马:当网站限制只能上传图片相关格式的时候,攻击者无法绕过限制即可尝试利用图片马来实现webshell操作。
文件上传漏洞绕过限制
一句话木马类似于<?php eval($_POST[‘v’]); ?>,将该木马文件通过文件上传模块上传到服务器。$_POST[‘v’]里面的参数v就是我们的可以利用的参数,我们将我们要执行的指令通过参数v传到服务器来执行;或者利用cknife工具来实现操作目标服务器。
(一)该网页上传形式收到限制,需要符合jpg、jpeg、JPG、JPEG这几个类型格式,所以将原来的格式改为1.jpg格式(服务端校验)
打开burp suite软件拦截数据包,将文件名改为1.php,这样才能运行php脚本,不然jpg后缀的文件虽然能够上传,但是没用运行的功能。
在hackbar插件中定义v=phpinfo();可以查看php当前状态的大量信息
(二)这个页面限制了上传的格式(MIME),需要将文件格式改为JPEG或者PNG(服务端校验)
用burp suite拦截信息,将content-Type改为image/png
用hackbar工具定义参数v=phoinfo();查看php状态信息
(三)该页面对文件后缀进行了筛选,对php类型的文件不进行接受(服务端校验)
打开burp suite软件拦截信息,将文件名改为1.PHp,绕开web服务器的识别
用hackbar定义v=system(ipconfig);
(四)使用截断的方式将jpg截断。1.php%00.jpg,%00用ctrl+shift+u来编译。
1.php%00.jpg,%00用ctrl+shift+u来编译
用hackbar工具定义参数v=phoinfo();查看php状态信息(五)该网页只允许上传图片,修改后缀名无效
上传b374k.jpg图片马,登入的密码为b374k
利用浏览器即可使用图片马进行webshell操作
(六)该网页允许上传的类型有jpg,jpeg,png,gif,7z。可以利用apach识别不了后缀名时,从后往前识别扩展名的方式,将1.jpg通过burp改为1.php.7z,则变成压缩形式的文件。
通过burp软件抓包将1.jpg通过burp改为1.php.7z,则变成压缩形式的文件。
用hackbar工具定义参数v=phoinfo();查看php状态信息
文件上传漏洞在web安全里面算是比较常见且危害较大的漏洞,建站厂商可以在此方面增加防范力度:如加强文件后缀名黑名单的范围;对上传文件的名字进行随机修改;上传文件的临时目录和保存目录不允许执行权限等。
以上就是web文件上传漏洞的示例分析的全部内容了,更多与web文件上传漏洞的示例分析相关的内容可以搜索亿速云之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下亿速云!
文章标题:web文件上传漏洞的示例分析,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/28982