服务器解析漏洞
Apache解析漏洞
Apache解析文件时是按照从右向左的方式,如果后缀名为不可识别文件解析,就再往左判断
test.php.aaa.sss,Apache无法解析.aaa.sss,
向左解析到.php,于是test.php.aaa.sss就被解析为php文件
比如 test.php.qwe.asd “.qwe”和”.asd” 这两种后缀是apache不可识别解析,
apache就会把wooyun.php.qwe.asd解析成php。
www.xxxx.xxx.com/test.php.php123
能够使用php解析.phtml .php3 .php5
前提是apache的httpd.conf中有如下配置代码
AddType application/x-httpd-php
AddType application/x-httpd-php .php .phtml .php3 .php5
其余配置问题导致漏洞
.htaccess(分布式配置文件)解析
局部变量成功作用于当前目录下文件的两个条件
(1.启用AllowOverride,2.开启mod_rewrite模块)
修改httpd.conf:
1、Allow Override All
2、LoadModule rewrite_module modules/mod_rewrite.so
是Apache服务器中的一个配置文件
负责相关目录下的网页配置。针对每个目录改变配置的方法
可以帮我们实现:
网页301重定向、
自定义404错误页面、
改变文件扩展名、
允许/阻止特定的用户或者目录的访问、
禁止目录列表、
配置默认文档等功能。
把.htaccess文件放在一个目录中,其中里面的指令作用于此目录及其所有子目录。
意味着允许用户自己修改服务器的配置,可能会导致某些意想不到的修改。安全起见,应该尽可能地避免使用.htaccess文件。
<FilesMatch "myqf">
SetHandler application/x-httpd-php
</FilesMatch>
作用是文件名包含myqf的都会以php代码执行
.user.ini文件 所有的php文件都自动包含jpg文件
1、服务器脚本语言为PHP
2、服务器使用CGI/FastCGI模式
3、上传目录下要有可执行的php文件
1、apache服务器。
2、能够上传.htaccess文件,一般为黑名单限制。
3、AllowOverride All,默认配置为关闭None。
4、LoadModule rewrite_module mod ules/mod_rewrite.so #mod_rewrite模块为开启状态
5、上传目录具有可执行权限
可上传.htaccesss
配置了黑名单,拒绝了几乎所有有问题的后缀名,除了.htaccess
先上传一个.htaccess文件 上传后,403无法访问
上传一个myqf.jpg文件,内容包含
<?php phpinfo(); ?>
上传当前目录的.htaccess 文件然后修改为以下内容:
AddType application/x-http-php .jpg #(上传的jpg 均以php执行)
把.htaccess 上传后,且上传成功后,再上传内容为一句话的jpg文件
.htaccess绕过
1.如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php
这时只要文件名里包含.php 即使文件名是 test2.php.jpg 也会以 php 来执行。
2.如果在 Apache 的 conf 里有这样一行配置 AddType application/x-httpd-php .jpg
即使扩展名是 jpg,一样能以 php 方式执行。
修复方案
1.apache配置文件,禁止.php.这样的文件执行,配置文件里面加入
2.用伪静态能解决这个问题,重写类似.php.*这类文件,打开apache的httpd.conf找到LoadModule rewritemodule modules/modrewrite.so 把#号去掉,重启apache,在网站根目录下建立.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .(php.|php3.) /index.php
RewriteRule .(pHp.|pHp3.) /index.php
RewriteRule .(phP.|phP3.) /index.php
RewriteRule .(Php.|Php3.) /index.php
RewriteRule .(PHp.|PHp3.) /index.php
RewriteRule .(PhP.|PhP3.) /index.php
RewriteRule .(pHP.|pHP3.) /index.php
RewriteRule .(PHP.|PHP3.) /index.php
介绍
Apache是一个开源的Web服务器软件,全称为Apache HTTP Server,由Apache软件基金会开发和维护。它是目前全球使用最广泛的Web服务器软件之一,占全球所有网络服务器的很大比例。Apache服务器具有跨平台的特性,可以在多种操作系统上运行,如Windows、Linux、Unix等。
Apache服务器快速、可靠,并且可以通过简单的API扩展,将Perl、Python等解释器编译到服务器中。它还支持多种协议和功能,包括HTTP、HTTPS、SSL/TLS、CGI、SSI、代理服务器等。此外,Apache具有高稳定性和安全性的特点,这得益于其成熟的开发和广泛的应用实践。
Apache被广泛用于托管网站、搭建Web应用程序、构建Web服务和代理等场景。它是接收和响应访问网页请求的软件,类似于餐厅的主机,会检查请求的网页并提取以供查看。
APACHE
后缀解析
文件解析漏洞
test.php.x1.x2.x3,Apache是从右往左判断后缀
例如1.php.aaa.zzz。
未知扩展名解析漏洞
配置错误导致的解析漏洞、目录遍历
.htaccess文件
Apache HTTP Server的文件目录系统级别的配置文件的默认的名字
局部配置文件 指定的文件进行解析 配合上传
```
插入
<FilesMatch “xxx.jpg”> SetHandler application/x-httpd-php
.jpg文件会被解析成.php文件。
```