记文件上传靶场upload-labs1-10题笔记

1.js绕过可以禁用前端js加载进行绕过
2.检测Content-Type:正常上传通过有image/jpeg 或 image/png 或 image/gif,可以再bp中抓包修改进行上传
3.Apache服务器是能解析PHP的.php5和.phtml扩展名的,但也不是绝对的这就看Apache服务器是否开启了解析这两个扩展名的配置了
在Apache服务器配置文件中找到:AddType application/x-httpd-php 将注释解除变更为:AddType application/x-httpd-php .php .phtml .phps .php5 .pht 就可以解析了
4.黑名单中限制了很多后缀,但是没有.htaccess,我们可以上传.htaccess文件更改apache配置
  4.1先写一个.htaccess文件
        
          SetHandler application/x-httpd-php
        

  4.2这段代码的意思是把2.jpg文件当作php文件执行在这里插入图片描述上传.htaccess文件,然后再上传2.jpg图片马
5.上传普通的失败前面的方法都失效可能连.htaccess也加入黑名单了我们只好查看源码发现对比上一关少了一个转小写的代码我们直接上传11.phP发现成功了
6.发现前面几关的都进黑名单了,大写也默认转小写了但对比发现没有做对首尾去空处理我们上传时抓包在文件名加个空格,发现成功了
7.空格后缀也被禁了,但是少了删除文件名后的点 “.”所以我们利用windwos特性,会自动去掉文件后缀名最后的“.”进行上传。抓包在文件名后面加个点
8.::$DATA了原理查了一下就是必须是windows, 必须是php, 必须是那个源文件php在window的时候如果文件名+"::$DATA“会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持”::$DATA"之前的文件名他的目的就是不检查后缀名…
9.先上传11.jpg,抓包改11.php. .
10.$file_name = str_ireplace($deny_ext,"", $file_name);  str_ireplace  这里讲解一下核心代码的意思,把带有黑名单中的后缀替换为空,但是我们发现只是替换了一次,我们可以双写绕过,如11.pphphp,过滤一个直接拼凑出11.php

你可能感兴趣的:(web安全)