文件上传基础学习3

文件上传基础学习

三、靶场实操

11、利用windows环境的叠加特性来绕过,upload第10关

在 Windows 环境中上传文件名包含冒号(:)的文件时,Windows 文件系统会解释冒号作为分隔符来标识备用数据流。这可能导致问题,因为 Windows 会认为你试图创建一个备用数据流而不是正常文件名。

如果你尝试上传名为 "a.php:.jpg" 的文件,Windows 可能会将文件名解释为 "a.php",而不是 "a.php:.jpg"。这是因为冒号在 Windows 文件系统中通常用于指示备用数据流的开始。

php和windows环境的叠加属性,以下符号在正则匹配时相等

"等于.

> 等于?

<等于*

  • 上传a.php:.jpg,此时可以上传,会在upload路径下生成一个a.php文件,但是内容为空

  • 接着上传a.>>>

  • 再次访问a.php,可以正常访问

12、双写绕过,upload第11关
  • 查看页面的源代码

     $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","ini");
    
            $file_name = trim($_FILES['upload_file']['name']);
            $file_name = str_ireplace($deny_ext,"", $file_name);
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;        
    

    第四行代码是将文件中的后缀名如果在元组中出现则会被置空,因此上传文件的时候,可以试试将文件名进行双写

  • 上写文件后缀名并上传

  • 访问上传的文件

13、目录可控上传攻击,upload第12关

该关卡有php的版本限制以及配置限制

  • 先上传一个图片文件,然后修改路径,利用%00截断

  • 查看靶机后台是否上传成功

  • 浏览器中浏览该文件

14、00截断,upload第13关

这一关卡也是路径可控上传

  • 与上一关不同的是,在hex(16进制)中修改

  • 查看靶机后台的文件

  • 浏览器访问

15、文件包含之图片码,第14关
  • 查看源码,检测内容开头的两个字节

  • 制作图片码

  • 上传图片码

  • 利用文件包含读取上传的图片码

16、第15关

根据文件的大小判断是否为图片

  • 合成图片码

  • 上传图片码

  • 利用文件包含访问图片码

posted @ 2023-09-13 00:42  凉城厌心  阅读(30)  评论(0编辑  收藏  举报