渗透测试人员必备技能:实施渗透测试的HTTP方法

简介:

如果你没有积极地参与Web应用程序开发,几乎就不可能了解HTTP协议的内部工作机理,也几乎没有机会知道Web应用程序与数据库进行交互的不同方法,也无法真正知道,当用户点击了一个链接或在浏览器的URL中键入字符时会发生什么。

如果你以前并没有编程技能,也没有积极地参与Web应用程序的开发,就不可能有效地执行渗透测试。作为渗透测试人员,你需要Web应用程序和HTTP协议的基础知识。

作为渗透测试人员,理解信息流是如何从客户端达到服务器,再返回服务器是非常重要的。举个例子,一位给你修电视的技术人员在接触电视的任何零件之前,必须理解电视的内部工作原理。本文将讨论一些实施渗透测试时的重要HTTP方法,旨在帮助没有Web应用渗透测试知识的渗透测试人员能够充分利用已有工具,成功地实施端到端的Web渗透测试。

实施渗透测试的重要HTTP方法

在客户端将请求发送给服务器时,它还应当通知服务器对目标源采取的行动。例如,如果一个用户仅希望查看一个网页的内容,就会激发GET方法,通知服务器将网页上的内容发送给客户端的Web浏览器。

本文将讨论几种方法,其宗旨就是要使渗透测试人员明确,在两端之间发生了哪些类型的数据交换。

GET/POST方法

GET方法通过URL将参数传递给Web应用程序。它取得表单中的所有输入并将其附加到URL。这种方法有些局限性;你在URL中通过GET方法最多只能传递255个字符,如果超过了这个数字,多数服务器就会在不发出警告的情况下截下超过限制的字符,或者会返回一个HTTP 414错误。使用GET方法的另一个重要问题是,输入的内容成为URL的一部分而易于被嗅探。如果用户键入了用户名和口令,而这些值都通过GET方法被传递给服务器,那么Web服务器上的任何人都可以从Apache或IIS的日志文件中找到用户名和口令。如果你收藏了URL,传递的值也会连同URL以明文的形式被保存。GET方法最初仅用于从服务器来恢复数据,但是许多开发人员用它向服务器发送数据。

POST方法类似于GET方法,它用于从服务器上检索数据,但它是通过请求主体来传递内容的。因为数据是在请求主体中传送的,所以攻击者就很难检测并攻击底层操作。

HEAD方法

攻击者使用HEAD方法来确认服务器的类型,因为服务器仅通过HTTP头来响应而无需发送任何负载。这是一种快速发现服务器版本和日期的方法。

TRACE方法

在使用TRACE方法时,检索服务器会通过响应主体中的原始请求消息,返回TRACE响应。TRACE方法用于确认中间设备(例如,代理服务器和防火墙)对请求做出的任何修改。有些代理服务器会在数据包经过时编辑HTTP头部,而这可以通过使用TRACE方法来确认。TRACE方法用于测试目的,你可以跟踪另一端接收了什么。微软的IIS服务器有一个与TRACE方法相同的TRACK命令。有一种更加高级的攻击称为XST(跨站跟踪),它利用跨站脚本攻击(XSS)和TRACE方法来窃取用户的cookies。

PUT和DELETE方法

PUT和DELETE方法是WebDAV(HTTP协议的一个扩展)的一部分,它支持对Web服务器上的文档和文件进行管理。开发者用WebDAV将制作完成的网页上传到web服务器。PUT用于上传数据到服务器,而DELETE用于删除数据。

OPTIONS方法

OPTIONS方法用于查询服务器所支持的方法。有一种方法可以很容易查询服务器支持什么:使用所有Linux发行版都内置的Netcat(nc)实用程序。我们可以在80端口上连接网站,然后使用OPTIONS方法查询服务器所支持的方法。我们可以使用HTTP/1.1向服务器发送请求。返回的响应就可以确认服务器所支持方法,连同其它信息,如内容长度、日期,等等。


作者:赵长林

来源:51CTO

相关文章
|
1月前
|
设计模式 安全 测试技术
【软件设计师备考 专题 】系统实施:程序设计和系统测试
【软件设计师备考 专题 】系统实施:程序设计和系统测试
64 0
|
1月前
|
安全 测试技术
BOSHIDA DC电源模块的安全性能评估与测试方法
BOSHIDA DC电源模块的安全性能评估与测试方法
 BOSHIDA DC电源模块的安全性能评估与测试方法
|
1月前
|
安全
DC电源模块的安全性能评估与测试方法
DC电源模块的安全性能评估与测试方法 DC电源模块的安全性能评估与测试方法应包括以下几个方面: 1. 输入安全性测试:包括输入电压范围、输入电压稳定性、输入电流范围、输入电流保护等方面的测试。测试方法可以是逐步增加输入电压或输入电流,观察模块的工作状态和保护功能。
DC电源模块的安全性能评估与测试方法
|
1月前
|
监控 JavaScript 前端开发
在生产环境中测试和监控Vue项目的方法有哪些?
在生产环境中测试和监控Vue项目的方法有哪些?
28 4
|
1月前
|
芯片
电容在ESD测试中的选用方法
电容在ESD测试中的选用方法
28 2
|
2月前
|
JSON 搜索推荐 网络协议
玩转curl指令—测试简单的HTTP接口
玩转curl指令—测试简单的HTTP接口
59 0
|
1月前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
9 0
|
1天前
|
测试技术 API Python
Appium控件交互策略:优化自动化测试效率的关键方法
该文介绍了如何使用Selenium与APP进行交互,包括点击、输入和状态判断等操作。例如,通过element.click()点击控件,element.send_keys()输入文本,以及element.is_displayed()检查元素是否可见。还展示了如何获取元素属性,如resource-id、text和class,并提供了Python代码示例来定位并操作APP元素,如滑动条的显示、可点击性检测及点击滑动条中心位置。在编写测试脚本时,应注意元素定位和状态验证以确保测试稳定性。
8 1
|
2天前
|
API 开发者
免费邮箱API发送邮件测试调试的方法和步骤
本文介绍了使用免费邮箱API如aoksend、Mailgun、SMTP2GO发送邮件的测试调试步骤:选择合适的API,获取访问密钥,配置邮件参数,编写测试代码,调试和测试,查看发送日志,以及优化改进邮件发送功能,确保其稳定运行。

热门文章

最新文章