Upload-Labs and 1-21关通关教程
前言:本文章一下的涉及的环境均来着GitHub中的官方upload-labs环境,中间件是使用phpstudy2018搭建,文章涉及的内容仅代表个人思路个人观点,绕过思路不是单一的,举一反三即可。请勿较真。
第一关:针对JavaScript的处理绕过
通过浏览器网络进行抓包,并没有发现任何数据,猜测为前端JavaScript验证的。

绕过方法:直接在浏览器禁用JavaScript代码

右键查看地址访问


第二关:Content-Type的验证
通过源代码可发现是验证上传文件的type值,那么直接修改成允许的值即可。


黑名单的绕过
前言:黑名单的意思就是,不允许上传的类型,比如禁止上传php,asp等等,这种就是黑名单。
第三关:其他后缀名的绕过
先看源代码
源代码:
$deny_ext = array('.asp','.aspx','.php','.jsp');
$file_name = trim($_FILES['upload_file']['name']);
$file_name = deldot($file_name);//删除文件名末尾的点
$file_ext = strrchr($file_name, '.');
$file_ext = strtolower($file_ext); //转换为小写
$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
$file_ext = trim($file_ext); //收尾去空
$img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;
解析:这里定义了禁止上传的名单,并且对上传的后缀做了删除末尾的点,转换小写等等操作
文件命名还做了时间戳的处理。
综合上面的源代码,发现并没有对php2,php3,phtml这些后缀进行过滤,在php中,这些后缀都是会当作php来解析的。前提是httpd.conf中AddType application/x-httpd-php.php.phtml.php3.php4.php5 没有被注释掉才可以用。ps:其实也可以通过.user.ini进行绕过。

第四关:利用.htaccess绕过
先看源代码
源代码:
$deny_ext = array(".php",".php5",".php4",".php3",".php2",".php1"

本文详细介绍了Upload-Labs的多个关卡,讲解如何通过禁用JavaScript、修改Content-Type、利用黑名单和白名单漏洞、.htaccess文件、空格和特殊字符绕过等方法来实现文件上传的绕过策略。同时,提到了文件包含漏洞、%00截断、二次渲染图片马等技术在绕过上传限制中的应用。文章强调了在网络安全和Web应用中理解这些概念的重要性。
最低0.47元/天 解锁文章
2399

被折叠的 条评论
为什么被折叠?



