apache常见漏洞以及安全加固

1、解析漏洞原理

php+apache:

属于配置错误产生的漏洞

php本身可以解析: .php3 .php5 .pht .phtml 等等。。。。
apache解析文件从后往前解析 例如:1.php.xxx.aaa 从aaa向前解析,遇到认识的后缀如php则交给php处理。
apache : mime.typs 文件写了apache认识的后缀
httpd-php-conf文件定义了apache如何解析php文件

此时漏洞依然无法形成,因为就算apache将1.php.aaaa交给php处理可是php不认识.aaaa所以无法解析只能将原内容输出。
Apache和PHP三种结合方法:
1.CGI:共同网关接口,是HTTP服务器与机器上其他程序进行通信的一个接口,让WEb服务器必要时启动额外的程序处理动态内容。
2.FastCGI:CGI解释器的更快实现,可以提供良好的性能、伸缩性、Fail-Over特性等
3.Module:把PHP编译为Apache模块,也是用的最多的一种方法

漏洞产生条件:
1、apache使用module模式 :在httpd.conf中设置
apache常见漏洞以及安全加固_第1张图片

2、运维人员在配置服务器时,为了使Apache能够解析PHP,而自己添加了一个handler :AddHandler application/x-httpd-php .php
window下路径:Apache\conf\extra\httpd-php.conf
apache常见漏洞以及安全加固_第2张图片
上传1.php.aaaa 访问1.php.aaaa 解析成功:
apache常见漏洞以及安全加固_第3张图片
防御方法
运维人员正确配置文件,不要偷懒乱配置,要注意权限和范围的问题。这里就是不要使用AddHandler,改用SetHandler,写好正则,就不会有问题。

<FileMatch ".+\.php$">
SetHandler application/x-httpd-php
</FileMatch>

禁止.php.这样的文件执行

<FileMatch ".+\.ph(p[3457]?|t|tml)\.">
Require all denied
</FileMatch>

资料:https://www.jianshu.com/p/3cf34c60a6e8
Apache httpd 换行解析漏洞(CVE-2017-15715)https://blog.csdn.net/m0_37711941/article/details/88684515

2、apache目录遍历

在httpd.conf文件中找到 Options +Indexes +FollowSymLinks +ExecCGI 并修改成 Options -Indexes+FollowSymLinks +ExecCGI 并保存;


apache 安全加固:

1、apache降权 -针对windows,因为linux不会出现这个问题

2、只加载必要的Module(模块)
根据“最小权限原则”,应该尽可能地减少不必要的Module,对于要使用的Module,则检查其对应版本是否存在已知的安全漏洞。可以在httpd.conf中配置需要加载或禁用的Module。

3、Apache日志安全设置
首先要修改日志的默认保存路径,然后设置只允许管理员有日志保存目录的完全控制权限。

4、网站目录权限配置
–原则:目录有写入权限,一定不要分配执行权限;目录有执行权限,一定不要分配写入权限。

–网站上传目录和数据库目录一般需要分配“写入”权限,但一定不要分配执行权限。其他目录一般只分配“读取”和“记录访问”权限即可。

5、关闭Apache的目录浏览功能
在httpd.conf文件中找到 Options +Indexes +FollowSymLinks +ExecCGI 并修改成 Options -Indexes+FollowSymLinks +ExecCGI 并保存;

6、修改Apache默认banner信息
在httpd.conf中添加或修改为如下

ServerTokens OFF
ServerSignature  prod

资料:http://secsky.sinaapp.com/89.html

你可能感兴趣的:(apache)