upload-labs靶场-Pass-12关-思路以及过程
开始前的小准备
upload-labs靶场 是PHP环境运行的,所以我准备了一个PHP脚本和一张图片 图片好准备,PHP脚本如果不想写的话可以用我的这个获取当前时间的PHP脚本
<?php header("content-type:text/html;charset=utf-8"); date_default_timezone_set("PRC");//设置时区 echo "当前时间为:"; $today = date("Y-m-d D h:i:s A "); echo $today; ?>
图片默认不清楚放大看!!!
Pass-12
代码:
$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); if(in_array($file_ext,$ext_arr)){ $temp_file = $_FILES[upload_file][tmp_name]; $img_path = $_POST[save_path]."/".rand(10, 99).date("YmdHis").".".$file_ext; if(move_uploaded_file($temp_file,$img_path)){ $is_upload = true; } else { $msg = "上传失败"; } } else { $msg = "只允许上传.jpg|.png|.gif类型文件!"; } }
查看代码可以看出来,它是只有上传文件格式是jpg,png,gif的时候才上传文件
通关过程:
这关和上一关差不多只是这次是post请求还是用 %00截断漏洞,还是得版本PHP小于5.3的还有就是要把%00编码一下,有的时候上传失败看看PHP版本,或者编码的问题,编码的问题我没有碰到,遇到自己查一下吧
过关!