简介
简介
前端JS过滤绕过
1
Content-type过滤绕过
1
文件头过滤绕过
112222
.htaccess文件上传
htaccess上传是利用.htacess文件对web服务器进行配置的功能,实现将扩展名.jpg、.png等文件当作PHP文件解析的过程
.htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
.htaccess是web服务器的一个配置文件,可以通过.htaccess文件实现web服务器中的文件的解析方式、重定向等配置
1.修改配置文件httpd.conf
Options FollowSymLinks AllowOverride None 修改为: Options FollowSymLinks AllowOverride All
2.去掉mod_rewrite.so的注释,开启rewrite模块
# LoadModule foo_module modules/mod_foo.so
漏洞代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Upload Labs</title>
</head>
<body>
<h2>Upload Labs</h2>
<form action="index.php" method="post" enctype="multipart/form-data">
<label for="file">文件名:</label>
<input type="file" name="upfile" id="file"><br>
<input type="submit" name="upload" value="提交">
</form>
<hr>
<center>榆林学院信息安全协会 2020/2/29</center>
</body>
</html>
<?php
if(isset($_POST["upload"])){
$upfile=$_FILES["upfile"];
$name=$upfile["name"]; //获取上传文件的文件名
$type=substr($name,strrpos($name,‘.‘)+1); //获取上传文件的后缀
$size=$upfile["size"]; //获取上传文件的大小
$tmp_name=$upfile["tmp_name"]; //获取上传文件的临时存放路径
//通过正则表达式黑名单过滤php、php1、pjp3等但是我们可以上传.htaccess文件
if(preg_match(‘/php.*/i‘,$type)){
echo "<script>alert(‘不能上传php文件!‘);</script>";
die();
}else{
$error=$upfile["error"];
echo "====================<br>";
echo "上传文件名称是:".$name."<br>";
echo "上传文件类型是:".$type."<br>";
echo "上传文件大小是:".$size."<br>";
echo "上传后系统返回的值是:".$error."<br>";
echo "上传文件的临时存放路径是:".$tmp_name."<br>";
//吧上面的临时文件移动到up目录下面
move_uploaded_file($tmp_name,‘upload/‘.$name);
$destination="upload/".$name;
echo "====================<br/>";
if($error==0){
echo "文件上传成功";
echo "<br>图片预览</br>";
echo "<img src=".$destination.">";
}
}
}
?>
上传.htaccess文件内容为
SetHandler application/x-httpd-php //将目录下所有文件当成PHP来解释
或者
<FilesMatch "jpg"> SetHandler application/x-httpd-php </FilesMatch> //将该目录下匹配的jpg当成php执行

上传名字为xiaohua.jpg文件 内容为phpinfo();

访问执行

.user.ini文件上传
1
文件截断上传
1
竞争条件上传
1
漏洞修补
原文:https://www.cnblogs.com/xhds/p/12381395.html