文件上传-解析漏洞

文件上传-解析漏洞

Apache解析漏洞:

形式: test.php.qwe.asd ,任意不属于Apache解析黑名单且也不属于白名单的名称
原理:Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如 test.php.qwe.asd ,".qwe"和".asd" 这两种后缀是apache不可识别解析,apache就会把test.php.qwe.asd 解析成php。
条件:apache通过mod_php来运行脚本,其2.4.0-2.4.29中存在apache换行解析漏洞,在解析php时
xxx.php\x0A 将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略
www.xxx.com/test.php.qwe.asd
以moudel方式连接,配置文件httpd.conf 中 LoadModule rewrite_module
modules/mod_rewrite.so 前的注释去掉,寻找关键词: AllowOverride ,并把后面的参数从None全部改成All。

Nginx解析漏洞:

形式:任意文件名/任意文件名.php

一个在任意文件名后边添加/任意文件名.php的解析漏洞,比如原本的文件名是test.jpg,可以添加为test.jpg/x.php进行解析攻击。

原理:Nginx < 0.8.37默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置 SCRIPT_FILENAME 。当访问 www.xx.com/phpinfo.jpg/1.php 这个URL时,
$fastcgi_script_name 会被设置为 phpinfo.jpg/1.php ,然后构造成 SCRIPT_FILENAME 传递给PHPCGI,但是PHP为什么会接受这样的参数,并将phpinfo.jpg作为PHP文件解析呢?这就要说到
fix_pathinfo 这个选项了。 如果开启了这个选项,那么就会触发在PHP中的如下逻辑: PHP会认为
SCRIPT_FILENAME 是 phpinfo.jpg ,而 1.php 是 PATH_INFO ,所以就会将 phpinfo.jpg 作为PHP文件来解析。

漏洞形式:
www.xxxx.com/UploadFiles/image/1.jpg/1.php
www.xxxx.com/UploadFiles/image/1.jpg.php
www.xxxx.com/UploadFiles/image/1.jpg/ \0.php

形式: 任意文件名%00.php
对低版本的 Nginx 可以在任意文件名后面添加 %00.php 进行解析攻击。(Nginx版本 <=0.8.37空字节代码执行漏洞)

IIS 6.0解析漏洞

1.目录解析:

形式:www.xxx.com/xx.asp/xx.jpg

原理: 服务器默认会把 .asp 目录下的文件都解析成asp文件。
https://www.cnblogs.com/milantgh/p/4347520.html
2. 文件解析
形式: www.xxx.com/xx.asp;.jpg
原理:服务器默认不解析;号后面的内容,因此 xx.asp;.jpg 便被解析成asp文件了。
IIS6.0 默认的可执行文件除了asp还包含这三种 :

/test.asa
/test.cer
/test.cdx

IIS 7.0/7.5解析漏洞

形式: 任意文件名/任意文件名.php
原理:IIS7.0/7.5 是对 php 解析时有一个类似于 Nginx 的解析漏洞,对任意文件名只要在 URL后面追加上字符串 /任意文件名.php 就会按照 php 的方式去解析
由于php配置文件中,开启了 cgi.fix_pathinfo ,而这并不是nginx或者iis7.5本身的漏洞。

                       

点击阅读全文

上一篇 2023年 6月 14日 am11:14
下一篇 2023年 6月 14日 pm11:59