思维导图
0x01 错误详情页banner隐藏
黑客在渗透的过程中,收集服务器的信息是至关重要的,这对于他在后期漏洞的利用上有很大的帮助。
错误详情页
测试方法:
在访问站点时,随便访问一个不存在的页面,如果站点没做404重定向的话,就会泄露一些敏感信息。详情如下图:
查看响应头信息:
$curl -I http://114.115.214.203/zk/shell.php
HTTP/1.1 200 OK
Date: Tue, 05 Dec 2017 07:47:46 GMT
Server: Apache/2.4.7 (Ubuntu) #中间件版本及操作系统
X-Powered-By: PHP/5.5.9-1ubuntu4.22 # 显示服务端脚本语言及版本号
Content-Type: text/html; charset=UTF-8
修复方法:
1)修改配置文件:/etc/apache2/apache2.conf或者/etc/httpd/conf/httpd.conf隐藏中间件信息。修改或者添加以下配置:
ServerTokens Prod
ServerSignature Off
2)修改配置文件:/etc/php5/apache2/php.ini第367行隐藏PHP信息,将expose_php = On修改为Off
376 expose_php = Off
保存退出之后,重启apache服务。
再次访问不存在的页面,已经没有banner信息了。
列目录问题
什么是列目录
当Web服务器配置不当的时候,如果当前目录不存在默认文件(比如index.html),Apache会列出当前目录下所有文件,造成敏感信息泄露。如下图所示:
修复方法
修改配置文件/etc/apache2/apache2.conf或者/etc/httpd/conf/httpd.conf
164 <Directory /var/www/> #这边必须是网站根路径
165 Options Indexes FollowSymLinks
166 AllowOverride All
167 Require all granted
168 </Directory>
Options Indexes FollowSymLinks
这里的indexes 是指在目录中要存在index文件,如果不存在把文件列出来,如果存在index文件可以直接显示index文件,因此每个目录都必须存在index文件,如果不存在有可能此目录把文件全部列出来。
删除Indexes这个参数,然后重启apache服务。service apache2 restart
再次访问就出现403 Forbidden页面
控制文件权限的意义
现在大部分站点都存在文件上传,比如说头像上传,附件上传等等。如果在代码层对上传的文件限制的不够严格,很容易被上传Webshell。一旦被上传Webshell对服务器造成十分大的威胁
加固方法
如果我们对存放上传文件的目录限制脚本执行的权限的话,上传的脚本文件就无法执行,在一定程度上能够减轻黑客攻击造成的危害,并且还不影响正常的业务,上穿的图片不需要执行权限,也能正常打开。
修改配置文件/etc/apache2/apache2.conf或者/etc/httpd/conf/httpd.conf
<Directory /var/www/html/zk/> #这里文件夹设置想要限制的
171 php_flag engine off
172 </Directory>
此时上传的小马已经无法执行