BUU-web 你传你 * 呢:文件上传

简介.htaccess文件:
.htaccess 文件是用于Apache 服务器下的一种控制文件访问的配置文件,它存放的是多条对目录操作的指令,其作用范围是当前目录以及所有子目录;

.htaccess文件上传漏洞解析:
新建一个txt,命名 .htaccess,向里面写入:

AddType media-type .jpg

这句话的意思是 :将目录下的.jpg格式文件当做 php文件解析,当然 .jpg 还可以改成其他格式;
这里还有另一种配置方法,向 .htaccess文件写入:

<FilesMatch "jpg|png|gif|txt">
SetHandler application/x-httpd-php
</FilesMatch>

这一句的作用与 AddType media-type .jpg 作用是相同的,jpg|png|gif|txt 将这些格式的文件当做 php 来解释执行;

解题:
打开解题网址,明显的文件上传题,审查源码,没有找到 js 等前端验证的信息,所以直接抓包一波~:
可以看到,图片马上传成功了;

在这里插入图片描述
但是直接上传的是 .jpg 格式,无法被当做 php文件执行,所以这里利用 .htaccess配置文件,写入:

<FilesMatch "jpg|png|gif|txt">
SetHandler application/x-httpd-php
</FilesMatch>

上传成功:
在这里插入图片描述
由于没有其他过滤,再传一个 2.jpg简单的图片马,就是一句话,只是文件以.jpg为后缀(其实这里文件后缀也可以是 txt等,因为 .htaccess配置文件设置的原因,请自行尝试其他文件后缀上传):

在这里插入图片描述
上传成功后,直接复制路径访问,然后蚁剑连接,在根目录下即可找到 flag,这里,蚁剑右键虚拟终端运行 cd ,cat 等命令来获取flag的做法是行不通的,因为加了一个 disable_function 的限制,对于这个问题,请阅读者自行百度;

此外,在翻看大佬关于解这道题的wp时,看到大佬运用了 readfile() 函数直接在页面上输出了flag,首先是在 一句话木马里面,写入 phpinfo():

在这里插入图片描述
然后查看 disable_functions,发现system()等被禁用,但是没有禁用 readfile():
在这里插入图片描述
所以可以直接:readfile(’/flag’);

在这里插入图片描述
然后访问,over:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46635165/article/details/109166855