文件上传绕过
以开源项目upload-labs为背景,学习并总结文件上传绕过的各种姿势。
多学点技术
不多学点技术,迟早要露馅儿!!!
展开
-
【文件上传绕过】二次渲染
目录0x001 什么是二次渲染0x002 绕过0x001 什么是二次渲染在我们上传文件后,网站会对图片进行二次处理(格式、尺寸要求等),处理后在放到网站对应的标签进行显示。如何判断图片是否进行了二次处理?对比要上传图片与上传后的图片大小0x002 绕过这里需要配合文件包含漏洞将一句话木马插入到网站二次处理后的图片中...原创 2021-06-05 21:57:38 · 1111 阅读 · 0 评论 -
【文件上传绕过】uploads17关-条件竞争
目录0x001 源码审计0x002 绕过0x001 源码审计$is_upload = false;$msg = null;if(isset($_POST['submit'])){ $ext_arr = array('jpg','png','gif'); $file_name = $_FILES['upload_file']['name']; $temp_file = $_FILES['upload_file']['tmp_name']; $file_ext =原创 2021-03-14 13:32:09 · 664 阅读 · 0 评论 -
【文件上传绕过】十三—十五、文件头内容校验文件类型绕过
文章目录一、文件幻数介绍二、制作图片木马三、上传图片马四、本地搭建任意文件包含五、文件包含图片马一、文件幻数介绍这种方法利用的是每一个特定类型的文件都会有不太一样的开头或者标志位。可以通过比如php的exif_imagetype()/getimagesize()函数,一个通过这种方法来过滤的示例代码如下:if (! exif_imagetype($_FILES['uploadedfile']['tmp_name'])) { echo "File is not an image";原创 2020-10-12 17:04:29 · 3428 阅读 · 0 评论 -
【文件上传绕过】十一、%00截断之GET提交
文章目录一、实验环境二、源码一、实验环境上传路径可控二、源码$is_upload = false;$msg = null;if(isset($_POST['submit'])){ $ext_arr = array('jpg','png','gif'); $file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1); // 获取文件后缀原创 2020-10-11 15:07:15 · 689 阅读 · 0 评论 -
【文件上传绕过】十二、%00截断之POST提交
文章目录一、实验环境二、源码三、绕过一、实验环境如果是白名单检测的话,我们可以采用00截断绕过。00截断利用的是php的一个漏洞。在 php<5.3.4 版本中,存储文件时处理文件名的函数认为0x00是终止符。于是在存储文件的时候,当函数读到 0x00(%00) 时,会认为文件已经结束。例如:我们上传 1.php%00.jpg 时,首先后缀名是合法的jpg格式,可以绕过前端的检测。上传到后端后,后端判断文件名后缀的函数会认为其是一个.jpg格式的文件,可以躲过白名单检测。但是在保存文件时,保原创 2020-10-11 14:52:19 · 5693 阅读 · 1 评论 -
【文件上传绕过】十、利用后缀名双写绕过
文章目录一、实验环境二、源码三、双写后缀进行绕过一、实验环境服务端对敏感后缀名替换为空本pass会从文件名中去除.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.asp原创 2020-10-11 12:05:19 · 2798 阅读 · 0 评论 -
【文件上传绕过】九、路径拼接问题导致上传漏洞
文章目录一、源码二、使用burpsuite修改文件后缀绕过一、源码$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",原创 2020-10-10 23:58:05 · 2017 阅读 · 0 评论 -
【文件上传绕过】八、::$DATA上传绕过
文章目录一、利用Windows特性二、源码三、使用burpsuite抓包在文件后缀加::$DATA绕过一、利用Windows特性在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名例如:"phpinfo.php::$DATA"Windows会自动去掉末尾的::$DATA变成"phpinfo.php"二、源码源码中未过滤::$DATA$is_upload = false;$ms原创 2020-10-10 23:09:34 · 16399 阅读 · 6 评论 -
【文件上传绕过】七、利用Windows特性加点绕过
文章目录一、后端代码过滤不严格二、源码三、绕过一、后端代码过滤不严格黑名单,但是没有对后缀名进行去”.”处理,利用windows特性,会自动去掉后缀名中最后的”.”,可在后缀名中加”.”绕过:二、源码$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4","原创 2020-10-10 22:45:21 · 2015 阅读 · 0 评论 -
【文件上传绕过】六、后缀名中加空格绕过
文章目录一、利用Windows特性二、源码三、使用burpsuite抓包在文件后缀加空格绕过一、利用Windows特性在Windows中文件后缀名末尾有空格会自动去掉例如:"phpinfo.php "Windows会自动去掉末尾的空格变成"phpinfo.php"二、源码$is_upload = false;$msg = null;if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny原创 2020-10-10 22:27:55 · 1721 阅读 · 0 评论 -
【文件上传绕过】五、文件后缀大小写绕过
文章目录一、描述二、源码三、大小写绕过一、描述本pass禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.as原创 2020-10-10 16:57:39 · 1987 阅读 · 0 评论 -
【文件上传绕过】四、.htaccess文件解析漏洞
文章目录一、实验环境二、源码一、实验环境PHPstudyphp5.6以下不带nts的版本upload-labs-master上传漏洞靶场服务器没有禁止.htaccess文件的上传,且服务商允许用户使用自定义.htaccess文件本pass禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.原创 2020-10-10 16:42:36 · 7067 阅读 · 0 评论 -
【文件上传绕过】三、黑名单不全绕过
文章目录一、描述二、实验原理三、检测代码四、添加黑名单中未做限制的后缀进行绕过一、描述Web系统可能会采用黑名单的方式进行过滤。而过滤的方式存在一定的缺陷,比如存在过滤的黑名单不全,未考虑大小写,以及对上传文件名单次进行敏感字符清除。二、实验原理当下流行的网站开发语言均存在多个可解析后缀,例如asp脚本语言的可解析后缀,不仅仅是.asp,还有.cer,.asa等等。而由于开发人员相关知识或安全意识的局限性(欠缺),导致设置的黑名单不全。这时就可以通过其他可解析后缀绕过黑名单上传可执行的websh原创 2020-10-10 15:42:01 · 1840 阅读 · 0 评论 -
【文件上传绕过】二、文件类型之MIME-TYPE检测
文章目录一、什么是MIME?二、常见MIME类型三、检测代码四、抓包修改MIME类型进行绕过一、什么是MIME?MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。二、常见MIME类型text/plain(纯文本)text/html(HTML文档)text/javascript(js代码)application/原创 2020-10-09 23:17:28 · 2195 阅读 · 0 评论 -
【文件上传绕过】一、前端js检测后缀绕过
文章目录一、描述二、检测代码三、通过burpsuite抓包修改文件后缀进行绕过一、描述Web应用系统虽然对用户上传的文件进行了校验,但是校验是通过前端javascript代码完成的。恶意用户可以对前端javascript进行修改或者是通过抓包软件篡改上传的文件,就会导致基于js的校验很容易被绕过。二、检测代码定义允许上传的文件类型(白名单)function checkFile() { var file = document.getElementsByName('upload_file'原创 2020-10-09 22:22:27 · 2385 阅读 · 0 评论