upload-labs靶场Pass-13
查看源码
$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类型文件!";}
}
发现相比于Pass-12只是提交方式变为POST,所以此关只需要将修改报文的位置改变一下就可以上传
注意:本关环境也要求php版本小于5.3且php魔术引导开关要关闭
上传文件
<?php phpinfo(); ?>
修改后缀为jpg等白名单容许的
抓包
因为是POST提交,我们需要修改表单处信息
修改报文
因为%00是URL编码,使用GET请求是在URL地址中添加,服务器会自动解码,而在POST中添加服务器就不会自动将%00解码成空字符
所以此处我们需要在bp中对%00进行解码。
然后放包
访问
注意文件是1.php