1、网络和基础设施配置
需要采取以下步骤来测试配置管理:
1、识别构成基础设施的各种组件,以便理解它们如何与web应用进行交互,以及如何影响web应用的安全性。 2、审计基础设施的所有组件,从而确保它们没有包含任何已知的漏洞。 3、审计用以维护各种组件的管理工具。 4、审计认证系统,以保证它能够满足应用的需要,而不能被外部用户用以提升权限。 5、维护应用需要的端口的列表,并纳入变更控制。 只有在绘制由不同组件组成的基础设施之后,我们才能审计每个已发现组件的配置和测试所有已知的漏洞。
2、应用平台配置
需要采取以下步骤来测试平台配置:
1、检查是否为默认配置,很多以默认配置安装的web服务器都存在安全问题。 2、执行注释审查,确定是否通过注释向外泄露信息。 3、审查日志,确定日志中是否包含了敏感信息、日志是否存储在专用的日志服务器上、日志的使用是否能产生DoS攻击条件、日志的存储时间是否符合安全策略。
3、敏感文件扩展处理
通过文件上传点检查扩展名校验机制是否安全,验证相应的扩展名文件是否有必要访问,并且验证其是否包含了敏感信息。
常见的扩展名:
.zip .tar .gz .tgz .rar……:压缩归档文件 .java:无任何理由理工对Java源文件的访问 .txt:文本文件 .pdf:PDF文件 .doc .rtf .xls .ppt……:Office办公文件 .bak .old:备份文件
4、管理(后台)页面枚举
对管理界面的测试如下:
1、目录和文件枚举。 2、利用可获取的工具对服务器内容执行暴力攻击。 3、审查源代码中的注释和链接。 4、审查服务器和应用程序文档。 5、通过公共可获取的信息来测试,主要是测试默认的管理页面。 6、通过不同的服务器端口来测试管理页面。
5、HTTP方法
标准的HTTP 1.1定义了8种方法:
HEAD、GET、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT
其中有些方法可能导致存在潜在的安全风险,因为它们允许攻击者修改存储在web服务器上的文件,并且在一些情况下盗取合法用户的凭证。
通常,应该被禁止的方法有:
PUT、DELETE、TRACE、CONNECT
测试哪些方法被支持,从而利用相关的漏洞缺陷来搞事情。
6、HTTP强制安全传输
HTTP强制安全传输(HSTS)头是web站点和web浏览器之间的一种机制,它要求它们之间的流量交换始终基于HTTPS之上,这将有助于没有加密的信息在传输过程中受到保护。
测试当前的HSTS头可以通过劫持代理并检查服务器响应的HSTS头,或使用如下的curl指令:
$ curl -s -D- https://domain.com/ | grep Stric
如果结果是下面这样,则说明是没有问题的:
Strict-Transport-Security: max-age=...