文件上传 1~11

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情

前言

最近在学代码执行,然后孙胜利老师的死亡六十集也快看完了,不过昨天晚上学长正好讲了文件上传漏洞,据说这个也比较好学,所以对这个赶紧学习做个总结! 在这里插入图片描述

一、文件上传漏洞是什么

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器

二、靶场训练

第一关:

先上传以一个png图片,然后用burp suite拦截(这里说一个问题,burp suite不能拦截本地网站127.0.0.1的问题,这里把我学习到的博客地址放在这里) blog.csdn.net/weixin_4539… 在这里插入图片描述 把jpg改为php,再放包。 在这里插入图片描述 成功上传

第二关:

在这里插入图片描述 我靠,啥是MIME,网址: zhidao.baidu.com/question/41… 继续burp suite抓包,然后继续放包, 在这里插入图片描述 上传成功

第三关:

在这里插入图片描述 发现不让上传php文件,大写绕过,如果改成php1,试一下行不行 先试试大写, 在这里插入图片描述 发现不行,试一下php1 在这里插入图片描述 上传成功

第四关:

在这里插入图片描述 直接一看,好家伙!吓我一跳在这里插入图片描述 apache解析漏洞实现黑名单绕过 解析漏洞,在Apache 2.x中存在一个解析漏洞,如果我们将 lyshark.php 修改为 lyshark.php.rar 这样的格式,正常情况下会弹出文件下载提示框,但是由于Apache 2.x存在解析漏洞所以,会默认将其当作PHP脚本文件进行展开并执行。

Apache在解析文件时有一个原则,当碰到不认识的扩展名时,会从后向前解析,直到碰到认识的扩展名为止,如果不认识则会爆露其源代码,此时我们 如果上传 lyshark.php.rar 的话,很明显.rar 他不认识,则会先前递增,会看到.php 默认就会使用.php 解析啦。

第二种方法

重写文件解析规则绕过 上传一个名为.htaccess文件 在这里插入图片描述 Apache中当上传到文件全部被解析为.jpg的后缀时。可以尝试一下后缀为.htaccess的文件。

<FilesMatch "4.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
复制代码

代码的含义是将上传的文件后缀名为.jpg格式的文件以 php格式来解析文件成功绕过在这里插入图片描述

第三种方法 将后缀改成php . . (注意 改成php.. 不行哦) 在这里插入图片描述 然后forward 在这里插入图片描述

第五关:

在这里插入图片描述 查看源码,发现比上一关多了一个.htaccess过滤,咱们还用php . . 绕过 在这里插入图片描述

第六关:

在这里插入图片描述 在这里插入图片描述 并且还没有让输入的全变成小写 发现没有pHP绕过,咱们就试一试 在这里插入图片描述

第七关:

在这里插入图片描述

在这里插入图片描述 发现没有删除 . 就还是 php . . 在这里插入图片描述

第八关:

在这里插入图片描述 在这里插入图片描述 发现还是没用禁用 . 在这里插入图片描述

第九关:

在这里插入图片描述 在这里插入图片描述 发现并没有禁用:: D A T A : : DATA (:: DATA 利用 Windows文件流特性绕过 构造8.php::$DATA 会被保存为8.php) 主要是因为下面这一串代码,前几关有,这一关没有!


  $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
复制代码

在这里插入图片描述 也可以继续咱们的 php . . 绕过 在这里插入图片描述

第十关:

在这里插入图片描述 在这里插入图片描述

发现这里还是没有禁用小数点,可以继续用 php .. 也可以利用Apache 构建 10.php.aaa Apache从右往左解析,解析不了aaa,最后得到的结果就还是php

第十一关:

在这里插入图片描述 之前都是禁止上传,这一关就变成了从文件名中去除,所以这一关咱么就试试双写绕过 pphphp 在这里插入图片描述

总结

在这里插入图片描述

猜你喜欢

转载自juejin.im/post/7128424263354155045