运维安全之Apache(CGI&SSI&.htaccess)安全隐患

Apache默认配置支持解析CGI (Common Gateway Interface) (仅cgi-bin目录),不解析SSI(Server Side Includes)和.htaccess。当配置不当时,可能导致系统命令执行。本文由腾讯安全应急响应中心的Mark4z5同学通过实验来探讨开启解析CGI/SSI/.htaccess的危害以及安全建议。

一、安装实验环境

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

 

二、解析CGI (Common Gateway Interface)

 

http://httpd.apache.org/docs/current/howto/cgi.html

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

先看httpd.conf相关默认配置

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

可以看到默认/cgi-bin/目录可解析CGI,但是当打开网页时,并没有执行输出,

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

原因是程序默认并没有赋予X执行权限,

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

当赋予X执行权限后,

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

可以执行CGI,

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

那么当攻击者可以往/cgi-bin/目录写文件,或者服务器管理员配置某个可写目录解析CGI时,就会造成严重危害,执行系统命令。如

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

执行系统命令id并输出,

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

 

三、解析SSI (Server Side Includes)

 

http://httpd.apache.org/docs/current/howto/ssi.html

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

先看httpd.conf相关默认配置

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患运维安全之Apache(CGI&SSI&.htaccess)安全隐患

 

默认并不解析SSI,开启解析可配置如下,

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患运维安全之Apache(CGI&SSI&.htaccess)安全隐患

当攻击者上传.shtml文件时,可以执行任意系统命令。如

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

执行id并输出,

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

四、解析.htaccess

 

http://httpd.apache.org/docs/current/howto/htaccess.html

 

先看httpd.conf相关默认配置

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

默认并不解析.htaccess,当配置解析时

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患

攻击者只要可以上传.htaccess文件和其他恶意文件,就可以让apache解析CGI/SSI来执行系统命令。如下,

 

运维安全之Apache(CGI&SSI&.htaccess)安全隐患运维安全之Apache(CGI&SSI&.htaccess)安全隐患

五、安全建议

       1、如果CGI&SSI非必需,则编译apache时禁用掉,参数为(--disable-cgi --disable-cgid --disable-include)

       2、如果CGI&SSI为必需,则在httpd.conf配置可写目录禁止AllowOverride,且Options为FollowSymLinks。

<Directory "/usr/local/apache2/htdocs/YourPath">

      Options FollowSymLinks

      AllowOverride None

</Directory>

注:Options可以按需设置,但绝不能设置成ExecCGI或Includes;AllowOverride None是禁止解析.htaccess。

 

 

【最后】

       已配置php安全模式的Apache并不完全能防止webshell执行系统命令,因为Apache本身支持CGI和SSI执行系统命令。

原味连接:blog.sina.com.cn/s/blog_e092fd2f0102v6oa.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值