简介
简介
前端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