CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)

这篇具有很好参考价值的文章主要介绍了CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)

前端验证—MIME绕过
有关MIME

web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类

MIME的作用

使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。

简单来说就是一种校验机制,当文件进行上传的时候对文件的Content-Type进行校验,如果是白名单中所允许的类型则能够成功上传,如果不是则无法上传。

解题时有很多种思路

方法一

直接上传木马文件,把mime类型改为前端可验证的

方法二

也就是直接传入前端可验证文件,抓包修改为PHP脚本文件

题目解析

既然是Content-Type验证,就需要进行抓包

依旧上传php一句话木马文件,并抓包

这里,修改Content-Type字段的值为image/jpeg(也可以是别类型)

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

放包,发现上传成功
CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

访问一下,发现执行成功
CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

用蚁剑进行连接,寻找flag即可

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

html中发现flag

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

MIME绕过—00截断
关于00截断

截断原理:
0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。
00截断的限制条件:
PHP<5.3.29,且GPC关闭

参考链接:http://www.admintony.com/%E5%85%B3%E4%BA%8E%E4%B8%8A%E4%BC%A0%E4%B8%AD%E7%9A%8400%E6%88%AA%E6%96%AD%E5%88%86%E6%9E%90.html
00截断有限制,php版本得低于5.3,并且GPC得关闭,一般在url上。
两种方法,%00和0x00,后台读取是遇到%00就会停止。
举个例子,url中输入的是upload/post.php%00.jpg,那么后台读取到是upload/post.php,就实现了绕后目的。
————————————————
参考链接:https://blog.csdn.net/m0_52432374/article/details/113850458

00截断简单来说,就是由于php解释器是由C语言编写的,所以遵循C语言解析文件时遇到ascll码0时停止解析,而%00表示ascll码中的0,所以php解释器在解析文件时遇到%00就会默认文件名已经解析结束,所以我们可以利用这一原理进行上传。

题目解析

这里直接上传php一句话木马文件,不可行,显示文件类型不匹配

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

查看源代码发现,设置了白名单

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

根据提示,我们使用00截断进行绕过。

首先使用bp抓包

我们找到文件名,在文件名后面,在POST请求后面,都加上我们的截断(让他后面的代码不在执行。),1.php%00;.jpg

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

放包,上传成功

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

虽然这次页面没有提示我们的文件存放在哪里,但是根据之前的题目。我们可以判断出我们上传的文件摆放在upload目录下面。我们直接访问/upload/1.php,发现代码执行成功

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

然后我们使用蚁剑进行连接一句话木马,寻找flag

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

MIME绕过—00截断-双写后缀
关于双写

双写后缀绕过,这里适用于前后端都对文件的扩展名做了限制。我们可以通过双写文件的扩展名,达到绕过的目的。例如:xxx.php=>xxx.pphphp.

用于只将文件后缀名,例如"php"字符串过滤的场合; 
例如:上传时将Burpsuite截获的数据包中文件名【evil.php】改为【evil.pphphp】,那么过滤了第一个"php"字符串"后,开头的'p'和结尾的'hp'就组合又形成了【php】。
题目解析

先规矩的上传一个php文件,发现上传成功

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

但文件后缀名被过滤了(原先我的文件名字是1.php)

查看源代码,发现使用了黑名单机制

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

如果是文件名被过滤,我们就可以直接利用双写来绕过。我们回到我们的文件,将后缀进行两次写入,使用双写后缀绕过。

两种方法:

在上传前,将后缀名改为pphphp

在上传时,用bp抓包,将filename文件名改为1.pphphp

注意,双写一定要在php里面在写一个php,不能两个php连着写,不然两个php都会被识别,两个都会被过滤掉

这里使用bp抓包的方法

将filename文件名改为1.pphphp

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

放包,上传成功

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

访问,发现代码执行

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端

使用蚁剑连接,寻找flag

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端
CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀),CTFHUB解题思路,前端文章来源地址https://www.toymoban.com/news/detail-854965.html

到了这里,关于CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CTFHub-Web-文件上传

    目录 知识点 一、无验证 二、前端验证 三、.htaccess 1、题目简介 2、解题思路 3、解题:上传htaccess文件==》上传符合我们重新后规则的文件==》蚁剑连接 四、MIME绕过 1、知识点 2、解题思路  五、文件头检查 六、00截断 1、知识点:PHP 5.2 00截断上传的原理 2、题目简介 3、解题

    2024年02月14日
    浏览(39)
  • CTFHUB技能树——web篇

    因为我一开始是没打算写博客的,所有前面的图基本都没截图,以至于后面想写博客的时候没图,又没有金币了,我想吃西瓜都吃不到,更别说充金币。分币不花,玩的就是陪伴。前面的一些图来自于大佬们的博客,我会在结尾@出来。 HTTP协议 请求方式 用bp抓包把请求头改为

    2024年02月02日
    浏览(39)
  • CTFHub技能树web之RCE(二)

    第五题:远程包含 根据题目,使用远程包含进行 打开phpinfo,可以看到allow_url_fopen和allow_url_include都是On,因此可以使用php://input,由于代码会检查file中的内容,因此不能够使用php://filter包含文件,使用php://input通过hackbar使用POST方式发包,抓包并在最后一行加php代码执行 成功

    2024年02月22日
    浏览(39)
  • CTFhub-文件上传-.htaccess

    首先上传 .htaccess 的文件 .htaccess SetHandler application/x-httpd-php 这段内容的作用是使所有的文件都会被解析为php文件 然后上传1.jpg 的文件   内容为一句话木马 1.jpg ?php echo \\\"PHP Loaded\\\"; eval(@$_POST[\\\'a\\\']); ? 用蚁剑连接 http://challenge-e3884f63b3d65683.sandbox.ctfhub.com:10800/upload/1.jpg

    2024年02月10日
    浏览(35)
  • CTFHUB-文件上传

    目录 一.使用工具 二.实操 1.无验证 2.JS前端验证 代码绕过 浏览器设置绕过 bp更改数据 3..htaccess 4.MIME绕过 尝试上传jpg文件 尝试更改MIME类型 5.00截断 6.双写绕过 中国蚁剑 kali bp 打开环境  文件上传 并且提示我们是无限制的 于是我们了解到i我们可以运用一句话木马 进行漏洞上

    2024年02月04日
    浏览(32)
  • CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

    小白一个,记录解题过程,如有错误请指正! 知识点:         eval():把字符串 code 作为PHP代码执行。函数eval()语言结构是非常危险的,因为它允许执行任意 PHP 代码。它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外别无方法, 请多加注意,不要允许传入

    2024年02月01日
    浏览(47)
  • 【初学者必读】能让你月薪过万的5大web前端核心技能

    前言 Web前端开发所涉及的内容主要包括W3C标准中的结构、行为和表现,那么这三项中我们需要掌握的核心技能是什么呢?看小编来为你揭开谜底的。 HTML发展历史有二十多年,历经多次版本更新,HTML5和CSS3的出现又是一次革新。有些人认为前端开发要掌握的技能简单,不就是

    2024年02月08日
    浏览(52)
  • 【LeetCode刷题篇零】一些基础算法知识和前置技能(上)

    冒泡排序 冒泡的核心是两两比较,大数下沉,小数上浮,比较的轮数是数组的长度 N,每一轮比较的次数为 N - 当前轮的索引: 外层循环控制轮数 round: [1,N] 内层循环控制次数 i: [0,N - round) 在每一轮当中,内循环中两两比较相邻的两个数,大数下沉(交换),如果某一轮没

    2024年02月07日
    浏览(46)
  • JavaScript Web APIs2(2),GitHub标星1w的前端架构师必备技能

    应用:tab 栏切换 H5自定义属性 自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。 自定义属性获取是通过getAttribute(‘属性’) 获取。 但是有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。 H5给我们新

    2024年04月09日
    浏览(48)
  • WPF必须掌握的技能之自定义控件——实战:自制上传文件显示进度按钮

    自定义控件在WPF开发中是很常见的,有时候某些控件需要契合业务或者美化统一样式,这时候就需要对控件做出一些改造。 目录 按钮设置圆角 按钮上传文件相关定义 测试代码 话不多说直接看效果 默认效果: 上传效果: 按钮设置圆角 因为按钮本身没有 CornerRadius 属性,所以只

    2024年02月08日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包