51

安全技术 | Web应用渗透测试策略与方法论

 5 years ago
source link: https://www.freebuf.com/articles/web/193647.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

写在前面的话

现在越来越多的数据会存储在Web应用程序里面了,因此Web应用安全的重要性也愈发凸显。在对Web应用程序进行了安全测试之后,我们可以判断其存储的敏感数据是否真的能够实现受限访问,并只允许特定用户对数据执行操作任务。

Web安全测试的范围非常广,其中涉及到多种安全测试过程,从识别整个Web应用程序开始,再到对多个阶段的测试进行监控,它是一个系统化的操作流程。

jquqmqv.jpg!web

在本文中,我们将跟大家一起讨论一下在发现和修复Web应用程序中可能存在的安全漏洞时需要注意哪些关键因素。

Web应用程序安全测试

功能测试

在功能测试中,需要对Web应用程序中的每一个实际功能进行测试,并验证这些功能是否能够完全按照规范或者标准来运行。测试过程需要访问Web页面中所有的链接,其中不仅包括所有的页面超链接、数据库链接以及表单链接,而且还包括所有需要收集并上传用户数据的表单元素。

可用性测试

可用性测试包括以下几个方面:

1、 网站应当上手简单,易于使用。
2、 操作指引应该简单明了,表达明确。
3、 每一个页面的标题应当能够概括当前页面的主要内容。
4、 网站中的内容应该保持一致性。

接口测试

在接口测试中,Web应用程序接口、Web服务器接口和数据库服务器接口都是需要测试的主要接口。

在进行接口测试的过程中,测试人员需要访问这些服务器之间的全部交互信息,并对交互信息进行分析,以此来判断接口间的数据处理是否正确。如果Web应用程序的后台数据库服务器返回了查询错误,那么在正常情况下,应用程序服务器应当捕捉到异常,并将错误信息以适当的方式显示给终端用户。

兼容性测试

网站的兼容性测试是非常重要的,在进行兼容性测试的过程中,需要测试的方面包括操作系统兼容性、页面打印兼容性和浏览器兼容性等等。

性能测试

测试人员在进行Web应用程序安全测试时必须熟悉HTTP协议,他们不仅要了解服务器与客户端是如何进行通信的,而且还要明确HTTP的完整工作流程。需要注意的是,Web应用程序的安全性相对其他类型的应用程序来说是比较低的,因此测试人员必须详细检测目标Web应用中可能存在的每一个缺陷。

nIbU7v3.jpg!web

漏洞检测

在进行性能测试时,测试人员必须同时检测以下几种安全漏洞:

SQL注入

存在SQL注入漏洞的后果是非常严重的,因为它会导致Web应用程序的机密数据从后台数据库服务器中泄露出去。这种类型的攻击需要在软件或应用程序的运行过程中进行,我们可以通过对各种输入字段(如注释和文本框等)进行详细的安全检测,并对用户输入进行有效过滤来防止这种类型的攻击。

密码破解

为了获取用户的敏感信息,攻击者会使用各种密码破解工具。不过常用的用户名和密码都可以直接从网上找到,或者直接使用开源的密码破解工具。因此,性能测试对于密码破解来说是非常重要的。

URL篡改

攻击者还可以通过篡改URL查询字符串来获取服务器中的敏感数据。如果目标Web应用程序缺乏相应的安全措施,那么机密数据就会泄漏。一般来说,GET方法最容易受到这种类型的攻击,因此测试人员必须要对请求参数进行分析,并在服务器接收和处理请求之前对恶意信息进行过滤,

跨站脚本XSS

XSS允许攻击者在用户浏览的页面中插入恶意代码或链接,当用户访问该页面或点击了恶意URL之后,页面代码会发生变化,并允许攻击者访问或窃取目标用户的个人数据以及其他的关键信息。

安全测试

在安全测试过程中,测试人员可以参考下列步骤进行操作:

Jv2MFru.jpg!web

1、 了解并识别目标应用程序的安全需求。
2、 尽可能多地收集关于目标Web应用程序的所有信息,包括后台服务器信息、网络架构及设置信息、编程开发语言、技术实现细节以及硬件配置等等。
3、 识别可能存在的安全风险或漏洞,并列出清单。
4、 根据列表建立威胁模型。
5、 根据识别出的潜在风险或漏洞制定测试计划。
6、 为每一个安全风险或漏洞制作一个跟踪矩阵。
7、 准备好相关的安全测试用例文档。
8、 执行安全漏洞测试用例。
9、 在已识别出的安全缺陷被修复后,重新进行测试。
10、生成安全测试文档,其中需包括安全风险或漏洞的详细描述,以及仍然可能存在的风险详情。

* 参考来源: gbhackers ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK