您的位置:首页 > 汽车 > 新车 > seo诊断的网络问题_java 平台搭建能力_小网站怎么搜关键词_网络营销技能大赛优秀作品

seo诊断的网络问题_java 平台搭建能力_小网站怎么搜关键词_网络营销技能大赛优秀作品

2024/12/24 21:24:53 来源:https://blog.csdn.net/m0_73360524/article/details/144174208  浏览:    关键词:seo诊断的网络问题_java 平台搭建能力_小网站怎么搜关键词_网络营销技能大赛优秀作品
seo诊断的网络问题_java 平台搭建能力_小网站怎么搜关键词_网络营销技能大赛优秀作品

关注这个靶场的其它相关笔记:UPLOAD LABS —— 靶场笔记合集-CSDN博客

0x01:过关流程

本关的目标是上传一个 WebShell 到目标服务器上,并成功访问:

查看源码,我们发现了,其上传文件名是通过 $_POST['save_path'] 获取的,且其采用了黑名单校验,如果你上传的文件名后缀不在黑名单内,你的文件就会被服务端保存:

通过了前 19 关历练的你,相信一眼就能找到本关的 Bug:

  • Bug 01:黑名单过滤不全,其并没有过滤 .ini 后缀,我们可以通过上传配置文件 .user.ini 进行绕过。(::$DATA 也没过滤)

  • Bug 02:pathinfo 仅仅是获取后缀,通过抓包可以发现目标运行在 Windows 系统上,利用 Windows 移除文件扩展名多余 . 的特性,我们也可以进行绕过。

下面,笔者就用 Bug 02 过关吧(比较简单)。

首先,上传一个一句话木马文件,并修改保存名称为 shell.php.,这样其后端在获取 $file_ext 时就会获得一个空的结果,该结果肯定不在黑名单中,所以成功绕过:

如上,我们已经成功上传了 shell.php,下面使用 “中国蚁剑” GetShell(如下,成功 GetShell,本关结束):

0x02:源码分析

下面是本关的 WAF 源码,采用黑名单校验方式。怎么说呢,黑名单不全,对后缀的处理也不咋地:

 $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","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");​$file_name = $_POST['save_name'];$file_ext = pathinfo($file_name,PATHINFO_EXTENSION);​if(!in_array($file_ext,$deny_ext)) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH . '/' .$file_name;if (move_uploaded_file($temp_file, $img_path)) { $is_upload = true;}else{$msg = '上传出错!';}}else{$msg = '禁止保存为该类型文件!';}​} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com