upload-labs pass10-16

pass10

首先看一看pass09的代码(忽略掉小漏洞= =)
在这里插入图片描述
再看一下pass10的代码
在这里插入图片描述
发现最后用的是file_name这个变量,前面很多步骤处理的是file_ext ,只有deldot处理了file_name
deldot:删除文件末尾点,有趣的是我在php手册上没搜到??

所以我们可以上传一个文件(抓包改后缀) 1.php. .

另一种方法: 先上传1.php:.jpg ,再上传 1.php<

1.php:.jpg 这类文件在上传后,在Windows中会被保存为一个 空的 1.php 文件,然后可以再上传一个 1.php<> 或者 1.php<< 或者 其他Windows不允许的后缀,就会覆盖 前边那个空的1.php

pass11

  $file_name = str_ireplace($deny_ext,"", $file_name);

这是一个替换,把黑名单中出现的后缀都替换成空的了
用双写绕过

pass12

代码:

$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 = $_GET['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类型文件!";
    }
}

绕过方式:%00截断
%00使用条件:PHP小于 5.3.4,打开php的配置文件php-ini,将magic_quotes_gpc设置为Off
由于程序保存文件的路径是可以通过 URL 控制的,所以,我们可以使用 00截断的方式。
强推该文
在这里插入图片描述

pass13

和 Pass12相比,Pass 13 只不过把路径用POST方式提交了,还是可控的。
绕过方式: 0x00截断

 $img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

pass14-16

两个图片函数,上传图片马即可= =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值