CTF-Web5(00截断)

5.上传绕过



题目名字和提示都说的很明确,这题是一道上传绕过的题目,点开题目链接,可以看到一个文件上传的界面:

这里可以尝试随便上传一些文件,看看效果:

先尝试上传一个jpg文件:

上传jpg文件的提示为必须上传后缀名为php的文件才行,那么我们再上传一个php文件:

上传的结果是告诉我们仅支持jpg,gif,png后缀的文件。

仅支持上传jpg,gif,png后缀的文件,但是上传后又会提示必须上传后缀名为php的文件才行。

那么现在这个问题该怎么去解决呢,目前有一个思路就是我们上传一个jpg,gif,png后缀的文件但是我们的服务器认为这个文件是后缀名为php的文件。

怎么起实现这个思路呢,这里我们可以用到0x00截断上传的方法。那么什么是0x00截断上传呢?首先说一下这个截断上传的思路:在我们进行文件上传的时候,当文件系统读到【0x00】时,会认为文件已经结束。利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。具体怎么实现呢?

首先,我们就要使用Burpsuite工具,

然后,我们上传a.jpg文件,里面啥也没有,其实有没有内容都无所谓的,我们的目的是上传上去而已。这里进行上传的同时,用Burp Suite拦截上传请求:

仔细观察这个上传的Post请求,这里我们可以看到Content-Disposition这个信息,上传路径是"/uploads/",文件名是"1.jpg",我们先发送到Repeater,现在我们可以对这个请求进行修改,那么我们需要修改哪些地方呢?因为实际上上传的最终地址就是dir + filename,所以我们可以先对这个路径进行修改,我们在dir上加上一个a.php,这样上传的路径就变为了/uploads/a.php,但是这样我们最终的上传地址就变成了/uploads/a.phpa.jpg,如果就这样上传的话,实际上服务器还是将我们上传的文件作为jpg文件处理,我们需要做的就是再次对这个路径进行修改,使得最终的路径让我们的服务器认为我们上传的是php文件

(注:这道题的做法是对路径的修改再00截断,让服务器误判为我们上传的文件是php文件,这样就躲过了后台脚本的检测,特别注意的是我们并没有上传真正的php文件,也没让一句话木马与jpg图片结合,从而让菜刀连接,这里只是提供了一个欺骗服务器的方法而已,要想00截断然后菜刀连接服务器请在本文最底下点击链接,看另外一篇博客)

(注:查看网页源代码我们也能看到题目暗示的上传路径:

å¨è¿éæå¥å¾çæè¿°

这里我们就可以开始进行0x00截断的方法,首先我们再次对dir进行修改,在后面随便加一个字符,比如加个+,这里随便加什么都好,我们只是为了让这个字符占一个字符的位置:

点击Hex,将+修改为00,将这个字符修改为00(0x00的意思就是16进制下的00),这样就形成了%00截断:

(注:将+修改为%00之前,保存路径是/uploads/a.php+a.jpg)

修改后文件保存路径变成了/uploads/a.php%00a.jpg,也就是/uploads/a.php

在服务器中检测后缀名时,%00后面的字符并不会被检测,成功绕过了服务器端的后缀检测。
点击go,即可得到flag:



当然我们也可以直接提交xx.php.jpg文件,让filename=xx.php.jpg 这样我们依然可以利用00截断来做,不明白的可以参考 利用00截断上传webshell 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ctfhub 文件上传 - 00截断是一种常见的安全漏洞,攻击者可以通过截断文件名或者文件内容来绕过文件上传的限制,从而上传恶意文件或者执行任意代码。这种漏洞需要开发人员在编写文件上传功能时注意对文件名和内容进行严格的校验和过滤,以防止攻击者利用截断漏洞进行攻击。同时,用户也应该注意不要上传可疑的文件或者访问不可信的网站,以保护自己的计算机安全。 ### 回答2: 文件上传漏洞是目前很多Web应用存在的一种常见漏洞,该漏洞的攻击者可以利用该漏洞从Web应用程序中上传恶意文件,绕过访问控制机制,并在受害者服务器上执行任意命令。 在CTFHub文件上传-00截断中,漏洞原理是:在上传文件时,上传文件的后缀名是通过从客户端请求中获取的,如果在获取后缀名的过程中,我们可以通过攻击来修改请求,就可以上传任意类型的文件,甚至是可执行文件,从而达到绕过文件类型的限制。 具体细节如下: 1. 开始上传文件,上传的文件后缀名为.php 2. 修改上传请求中的文件后缀名为.gif,并截断请求,使之只保留文件的前8个字节。 3. 上传的文件类型变为gif,并成功上传。 4. 由于文件类型被篡改,服务器未检测到有可执行文件被上传,因此上传成功。 5. 资产管理窗口中能够看到已上传的文件,并能够通过访问路径访问到上传的文件,例如,可以直接访问上传的可执行文件,从而达到绕过文件类型限制,执行任意命令的目的。 由此可见,文件上传漏洞是一种危害性较高的漏洞,因此开发人员在开发Web应用程序时,一定要认真检查,确保不会出现类似的漏洞现象。同时,在测试人员测试网站时,也应该重点检查文件上传功能,以确保网站的安全性和可靠性。 ### 回答3: ctfhub 文件上传 - 00截断是一种常见的文件上传漏洞攻击,攻击者利用该漏洞可以上传恶意文件并将其存储到服务器中,从而导致服务器被攻击。 文件上传 - 00截断漏洞主要是利用了一些文件上传的不足之处,攻击者可以通过伪造请求包来修改原始文件名,从而实现文件截断的目的,也就是只保留了原始文件名的部分内容而去掉了后面的内容。 当攻击者上传文件时,如果原始文件名过长,则服务器会自动截断文件名,一旦攻击者将文件名截断并发送一个伪造的请求包到服务器上,则服务器会根据该请求包上传一个被截断的文件,从而导致服务器受到攻击。 例如,攻击者可以将文件名设置为“hack.php\x00.jpg”,当该文件上传到服务器上时,服务器会将文件名截断为“hack.php”,从而隐藏了文件的真实后缀名,诱骗用户下载并执行该文件。 为了避免被此类文件上传漏洞攻击,开发人员应该加强字符串截断的限制,防止非法输入,并进行文件类型检测,只允许上传指定的文件类型,同时加密重要文件和数据,保护系统安全。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值