文件上传基础学习2

文件上传基础学习2

三、靶场实操

5、.htaccess重写解析绕过上传(第四关)

.htaccess文件是在Apache Web服务器上进行配置的重要文件,它可以用于控制网站的许多方面,包括URL重写和上传文件的处理。攻击者可以尝试绕过文件上传限制,通过编写特定的.htaccess规则来执行恶意操作。

  • 该关卡是将所有的可执行后缀名都加入了黑名单了,利用htaccess重写解析绕过尝试一下

  • 准备一个图片码4.jpg

    <?php phpinfo();?>
    
  • 上传文件,然后访问图片,然后访问图片的地址,会出现无法解析的错误

  • 在上传一个.htaccess文件

    <FilesMatch "4.jpg">
    Sethandler application/x-httpd-php
    </FilesMatch>
    

    其中,4.jpg是我们刚上传的图片码,然后这个是文件是可以将4.jpg解析为php文件

  • 重新访问图片的地址,此时服务器会将该图片文件解析成php文件

6、. .进行绕过、upload第五关
  • 查看页面的源代码

    $file_name = trim($_FILES['upload_file']['name']);
    $file_name = deldot($file_name);//删除文件名末尾的点
    $file_ext = strrchr($file_name, '.');
    $file_ext = strtolower($file_ext); //转换为小写
    $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
    $file_ext = trim($file_ext); //首尾去空
    

    先将文件收尾去空一次,然后删除文件末尾的点,在接着对文件名去空一次

  • 上传一个phpinfo.php用burpsuite进行拦截,然后后缀名,修改为phpinfo.php. .

  • 上传成功后,对上传的文件进行访问

    • 在Windows环境下,浏览器(以及许多其他应用程序)会自动省略文件名中的末尾句点(.),这是因为Windows操作系统对文件名有一些特殊的处理规则
7、大小写绕过,upload第六关
  • 分析源代码

     $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".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",".htaccess",".ini");
    

    没有对php后缀名进行严格的过滤,存在大小写绕过

  • 上传phpinfo.PHP文件

    <?php phpinfo();?>
    
  • 可以成功上传,然后在行的标签页打开上传的文件

8、空格绕过
  • 查看页面的源码

    发现并没有过滤空格,此时可以试试在后缀名后面加一个空格

  • windows中文件的命名不能以空格结尾,所以用burpsuite工具来添加空格

  • 在新标签页中打开图像

9、利用windows系统特性,文件名后面加点。upload第8关

在Windows环境下,浏览器(以及许多其他应用程序)会自动省略文件名中的末尾句点(.),这是因为Windows操作系统对文件名有一些特殊的处理规则

  • 查看靶场源代码

    发现过滤规则中并没有删除文件末尾的点

  • 上传木马文件,并在文件后缀名加.

  • 访问上传文件,注意将后面的.删除

    未删除点

    删除点
10、利用::$DATA,Upload第九关

::$DATA 是一个用于存储 NTFS 文件系统中的备用数据流(Alternate Data Stream)的特殊名称。备用数据流是一种 NTFS 文件系统的功能,它允许文件除了默认数据流之外,还可以包含一个或多个附加数据流。这些附加数据流可以用来存储额外的信息,但通常不会像默认数据流那样被广泛使用。

  • 查看页面源码,并没有过滤::$DATA

  • 上传文件并用bp拦截,在文件后缀名后加::$DATA

  • 访问上传的文件,删除文件路径中文件名的::$DATA

posted @ 2023-09-11 23:09  凉城厌心  阅读(25)  评论(0编辑  收藏  举报