当前位置: 代码迷 >> 综合 >> upload-labs-master
  详细解决方案

upload-labs-master

热度:31   发布时间:2023-12-04 23:21:34.0

1.js前端绕过

禁用js就行了。做过的不细讲了。可以去看CTFHub-文件上传-js前端验证_留将一面与花的博客-CSDN博客1.关闭js前端验证通过F12右上角...处的设置,禁用js就可以通过js前端验证。然后用蚁剑查看就行了。2.bp改包绕过一般的php文件是在经过js前端检验后是上传不了的。先将文件改为png的形式绕过js,再用bp改包为php文件就行了。改为,...https://blog.csdn.net/qq_60905276/article/details/121411680?spm=1001.2014.3001.5501

2.MIME检验

非常的简单,做过的。

CTFHub 文件上传 - MIME验证_留将一面与花的博客-CSDN博客首先了解一下题目,所谓MIME验证就是对文件类型的检测。浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理URL,因此Web服务器会在响应头中添加正确的MIME类型。常见类型如下:思路是将MIME验证结果修改为上传文件相同的类型,就可以了1.PHP文件传入2.抓包,改Content-Type的内容为image/png...https://blog.csdn.net/qq_60905276/article/details/121419863?spm=1001.2014.3001.5501

3.畸形后缀名绕过

 

首先看到源代码首先不能使用以下的文件后缀名。

'.asp','.aspx','.php','.jsp'

 尝试了双写,大写,改包,.haccess文件还是不行。能用畸形后缀名绕过例如:.php3 .php4 .phtml .phps .php5 .pht

4..htaccess文件

因为它的源代码显示其禁用了一大串可以使用的后缀名,堵死了畸形后缀名绕过的路。

此时我们可以用.htaccess文件来将png中的代码当成php来执行。

详情请看之前的。

".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2","pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf"

CTFHub-文件上传-.htaccess文件_留将一面与花的博客-CSDN博客icon-default.png?t=LA92https://blog.csdn.net/qq_60905276/article/details/121411917?spm=1001.2014.3001.5501

5.大小写绕过

相当于第四题的加强版,禁用了.htaccess文件。所以老办法行不通了,尝试了一下双写后缀名绕过但是不成功现在想想也是,它又没有删除后缀名,我为什么要双写呢,?。然后使用了大写绕过。

原理:网站源代码没有过滤大小写,而windows对大小写不敏感,linux对大小写敏感。也就是检验时大写的PHP不过滤直接检验不匹配php然后Windows接收到还是按照php文件来执行。

抓包改包就可以了。注意Content-Type,

可以先将png文件上传,然后改文件后缀名为PHP。

6.空格绕过

windows等系统下,文件后缀加空格命名之后是默认自动删除空格。查看网站源代码发现过滤了大小写,没用过滤空格。

本题对大小写进行了检验,所以考虑其他的。看到其对空格没有进行过滤,所以使用空格过滤。

7.双写绕过

在如下的源代码中,多种绕过手段都被禁止,考虑采用双写绕过。

str_ireplace这个函数将php,php5,php4等后缀变成空格,且只执行了一次,所以可以尝试构造文件后缀为pphphp绕过。

 8.点的绕过

原理:同空格绕过原理一样,主要原因是windows等系统默认删除文件后缀的.和空格,查看网站源码发现,没有过滤点。

所以我们只需要在php后面加个.就好了。

9.::$DATA绕过

原理:php在windows的适合,如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持"::$DATA"之前的文件名,目的就是不检查后缀名。查看网站源代码。发现没有过滤::$DATA。

  相关解决方案