小型Web安全加固方案

摘要

本文介绍一下小型Web应用的加固方案,内容均为原创即使在存在某些高危漏洞的情况下,我们只要做好配置方面的安全加固即可防御许多攻击。

本文介绍一下小型Web应用的加固方案,内容均为原创

0x00 配置管理安全

即使在存在某些高危漏洞的情况下,我们只要做好配置方面的安全加固即可防御许多攻击。

列目录 - 显示目录索引

Apache

修改站点目录对应的配置文件

小型Web安全加固方案

<Directory />     Options +Indexes +FollowSymLinks # 将 "+" 与 Indexes 去掉即可限制列出目录索引     AllowOverride All     Order allow,deny     Allow from all     Require all granted </Directory>

修改后:

<Directory />     Options FollowSymLinks     AllowOverride All     Order allow,deny     Allow from all     Require all granted </Directory>

小型Web安全加固方案

创建DirectoryIndex默认文件

大家都见过很多框架的每个目录都有一个 index.html 文件,这个文件的存在是非常有意义的,很多线上的Web服务器都没有合格配置 列出目录索引 。导致网站内部许多文件都被攻击者查看到,泄漏大量信息。

为了防止列出目录索引,我们可以在站点的每个文件夹中创建一个 index.html ,这个文件内容是什么都无所谓了。当攻击者想通过列目录的手法访问你站点文件夹的时候,Web服务器将会判断当前目录下有没有 DirectoryIndex 默认首页,如果存在就显示 DirectoryIndex 对应的文件名的内容,这样攻击者就无法查看该目录下有什么文件了。

Tomcat

修改conf/web.xml配置文件

小型Web安全加固方案

<init-param>             <param-name>listings</param-name>              <param-value>true</param-value> <!-- 将true改为false --> </init-param>

修改后:

<init-param>             <param-name>listings</param-name>              <param-value>false</param-value> </init-param>

小型Web安全加固方案

Nginx

修改conf/nginx.conf配置文件

小型Web安全加固方案

location / {             index  index.html index.htm index.php l.php;            autoindex on;   }

修改后:

location / {             index  index.html index.htm index.php l.php;            autoindex off;   }

小型Web安全加固方案

IIS

设置”目录浏览”权限

小型Web安全加固方案

小型Web安全加固方案

小型Web安全加固方案

隐藏服务器版本信息

Apache

小型Web安全加固方案

将以下配置加入 conf/httpd.conf

ServerTokens Prod ServerSignature Off

小型Web安全加固方案

PHP

修改 php.ini ,将 expose_php On 改为: expose_php Off

IIS

找到 HTTP响应头 设置响应报文内容,可以将 ASP.NET 随意更改,甚至删除

小型Web安全加固方案

Nginx

小型Web安全加固方案

在加入 conf/nginx.conf 一行:

server_tokens off;

小型Web安全加固方案

Tomcat

小型Web安全加固方案

到apache-tomcat安装目录下的lib子文件夹,找到catalina.jar这包,并进行解解压

修改: lib/catalina.zip/org/apache/catalina/util/ServerInfo.properties

server.info=X server.number=5.5 server.built=Dec 1 2015 22:30:46 UTC

小型Web安全加固方案

目录安全

攻击者上传恶意脚本(Webshell)到服务器端后,该脚本会被当做可信任的代码执行,这并不是我们想看到的。

Apache

小型Web安全加固方案

更改配置文件:

<Directory "C:/phpstudy2/WWW/uploads">     <FilesMatch "/.(?i:php|php3|php4|php5)$">      Order allow,deny     Deny from all     </FilesMatch> </Directory>

C:/phpstudy2/WWW/uploads 为要禁止执行的目录, /.(?i:php|php3|php4|php5)$ 中可以添加多个文件扩展名,例如: .htaccess

小型Web安全加固方案

上面的方法已经杜绝了Webshell的执行,但是如果 - 在根目录创建 .htaccess 分布式部署文件,也能够执行脚本。

服务器端配置必须满足以下三个条件:

  • 能够在目录中写入任意文件
  • AllowOverride 为 All
  • 开启modules/mod_rewrite.so

小型Web安全加固方案

我们现在先来做一个加固:

<Files ~ "^.(htaccess|htpasswd)$"> deny from all </Files>

禁止所有人访问 .htaccess.htpasswd 文件。

接下来要做的就是设置 AllowOverrideNone

小型Web安全加固方案

Nginx

小型Web安全加固方案

location ~* ^/uploads/.*.(php|php5)$ {       deny all; }

注意事项:

  • $ 与 { 之间有空格
  • 以上的配置文件代码需要放到 location ~ .php {...} 上面,如果放到下面是无效的
  • uploads需要写相对路径,不能写绝对路径
  • 修改后重启Nginx

小型Web安全加固方案

IIS

小型Web安全加固方案

设置 处理程序映射 即可:

小型Web安全加固方案

设置后:

小型Web安全加固方案

Tomcat

可以采用Apache配置,后续再更新关于Tomcat的配置

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: