Apache潜在漏洞
很多多论坛网站,都具备有上传附件的的功能,一般都会开放rar附件上传,并可能会保留原来文件名称,这从而可能导致一个很严重的问题,test.php.rar文件可能会被Apache当作php文件来执行,造成一定程度的安全隐患。
如何测试? 当你将某个php程序文件后缀名修改成 test.php.rar,这时测试一下,还是按照PHP文件解析执行,Apache并不会认为这是一个rar文件,这是为什么呢?
其实,因为每遇到一种后双重后缀名(如test.php.rar)的文件,Apache都会去conf/mime.types文件中检查最后一个后缀,如果最后一个后缀并没有在mime.types文件中定义,则使用前一个后缀来解释,因为在默认情况下,rar并未在mime.types中定义,故 Apache会使用php后缀来解释文件,这就是漏洞的原因所在吧。
由此可知,如果使用test.jsp.aaa.rar则会很可能认为是jsp文件,如果修改成test.shtml.rar,则会识别成shtml文件。
如果没有相应修改设置,不知道有多少网站可能存在这个问题? 如何杜绝这个隐患 ?
修改Apache相应的配置文件httpd.conf文件内容:
AddType application/rar .rar AddType application/x-compressed .rar AddType application/x-rar .rar AddType application/x-rar-compressed .rar AddType application/x-rar-compressed; application/x-compressed .rar AddType compressed/rar; application/x-rar-compressed .rar
然后重新启动Apache服务
针对Web管理员及Web程序开发者,如何更安全
1.只允许上传指定后缀名的文件,当然,要禁止掉rar格式文件上传。(但这条往往行不通,一般的网站都需要上传rar文件)
2.对上传后的文件名进行强制重命名,强制使用最后一个扩展名,如原始文件名为test.php.rar,上传后强制重命名为20090412.rar即可避免这个隐患
ps:早期版本的phpcms、discuz等貌似存在这个漏洞

