【Web安全】不安全的HTTP方法

简介: 围绕渗透攻防层面来看不安全的HTTP方法漏洞的检测发现修复等手法。

一、常见的HTTP请求方法如下


GET:Get长度限制为1024,特别快,不安全,在URL里可见,URL提交参数以 ?分隔,多个参数用 & 连接,请求指定的页面信息,并返回实体主体。

HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。

POST:长度一般无限制,由中间件限制,较慢,安全,URL里不可见。请求的参数在数据包的请求body中。

PUT:向指定资源位置上传其最新内容。

DELETE:请求服务器删除指定的页面。

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向WEB服务器发送’*'的请求来测试服务器的功能性。

TRACE:回显服务器收到的请求,主要用于测试或诊断。


如下图展示:

image.png

二、请求方式安全隐患


PUT:由于PUT方法自身不带验证机制,利用PUT方法可以向服务器上传文件,所以恶意攻击者可以上传木马等恶意文件。

DELETE:利用DELETE方法可以删除服务器上特定的资源文件,造成恶意攻击。

OPTIONS:将会造成服务器信息暴漏,如中间件版本、支持的HTTP方法等。

TRACE:可以回显服务器上收到的请求,主要用于测试或诊断,一般都会存在反射型跨站漏洞(XSS漏洞)


三、渗透攻击检测


使用OPTIONS方法列出服务器使用的HTTP方法。注意,不同目录中激活的方法可能各有不同。

有时被告知一些方法有效,但实际上它们并不能使用,有时即使OPTIONS请求返回的响应中没有列出某个方法,但该方法仍然可用。


  • 手动测试每一个方法是否可用,使用CURL发送OPTIONS请求,查看响应头部分

curl -I -X OPTIONS https://X.X.X.X

image.png


  • 使用burp工具进行查看

image.png

image.png

nc.exe –nvv IP 端口 (其中IP和端口按实际状况填写,用空格隔开)

回车

在新行中输入以下一行,并回车

OPTIONS / HTTP/1.1

image.png

存在响应体中Allow字段或其他显示请求方法的字段中存在以上请求方式,均会对目标应用系统造成影响!


攻击手段这里不做过多介绍,大家自行百度!!!


四、修复方案


禁用OPTIONS不安全的HTTP请求方法!


以下针对不安全的HTTP方法中的TRACE相关的修复建议:


中间件为Apache服务器

image.png

更多详细介绍:

LoadModule rewrite_module modules/mod_rewrite.so #首先激活rewrite模块

RewriteEngine On #启用Rewrite引擎

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) #对Request中的Method字段进行匹配:^TRACE 即以TRACE字符串开头

RewriteRule .* - [F] #定义规则:对于所有格式的来源请求,均返回[F]-Forbidden响应。

image.png

或参考如下方法:

image.png


中间件为Microsoft IIS

image.png


中间件为Sun ONE Web Server releases 6.0

 若是你使用的是Sun ONE Web Server releases 6.0 SP2 或者更高的版本, 在obj.conf文件的默认object section里添加下面的语句:

 <Client method="TRACE">

 AuthTrans fn="set-variable"

 remove-headers="transfer-encoding"

 set-headers="content-length: -1"

 error="501"

 </Client>


中间件为Sun ONE Web Server releases 6.0 SP2


若是你使用的是Sun ONE Web Server releases 6.0 SP2 或者更低的版本, 编译以下地址的NSAPI插件:

http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603

目录
相关文章
|
1月前
HTTP协议探究:常用方法一网打尽
总的来说,HTTP协议的命令犹如一把钥匙,解锁了互联网世界的大门。它是规则,也是工具,了解了它,就等于掌握了互联网的一把通行证。我们每天都在用,也常常无视它,但是只有深刻理解了它,才能更好地运用它。如此,我们的互联网世界旅程就会变得更加顺畅,更加有趣。
57 14
|
2月前
|
运维 安全 网络安全
443端口:HTTPS通信的安全基石
作为互联网安全的基石,443端口通过加密与认证机制,保护了数十亿用户的隐私与数据完整性。无论是开发者、运维人员还是普通用户,理解其原理与作用都至关重要。在享受便利的同时,也需时刻关注安全实践,防范潜在风险。
330 12
|
3月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
120 35
|
4月前
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
668 83
|
4月前
|
负载均衡 监控 安全
优化HTTP代理IP安全稳定性的关键要点
随着科技发展,越来越多企业依赖HTTP代理IP。为确保其安全稳定,建议采取以下措施:选择可靠服务商、使用HTTPS加密、定期更换IP、监控可用性、设置访问控制、使用负载均衡、配置防火墙、定期更新维护及用户教育。这些方法能有效提升代理IP的安全性和稳定性。
220 59
|
3月前
|
移动开发 前端开发 JavaScript
H5 页面与 Web 页面的制作方法
H5页面制作利用HTML5、CSS3和JavaScript技术,结合H5编辑器或框架(如Adobe Dreamweaver、Ionic),注重移动设备兼容性与响应式布局。Web页面制作则基于传统HTML、CSS和JavaScript,借助文本编辑器或IDE完成开发。两者区别在于技术版本、交互性和浏览器支持:H5更互动、现代,但可能不兼容旧浏览器;Web页面更静态、兼容性广。根据需求选择:高交互选H5,广泛兼容选Web。
179 6
|
3月前
|
缓存 安全 Java
深入解析HTTP请求方法:Spring Boot实战与最佳实践
这篇博客结合了HTTP规范、Spring Boot实现和实际工程经验,通过代码示例、对比表格和架构图等方式,系统性地讲解了不同HTTP方法的应用场景和最佳实践。
275 5
|
4月前
|
API 开发者
了解 HTTP 的PUT 与 POST方法的综合指南
HTTP PUT 和 POST 方法是构建 Web 应用与 API 的核心工具,用于资源的创建与更新。PUT 方法通过指定 URL 更新或创建完整资源,具有幂等性;而 POST 方法更灵活,主要用于创建新资源,但不具备幂等性。本文详细对比了两者在请求体、URL 使用、资源处理等方面的区别,并提供了实际应用示例,帮助开发者根据场景选择合适的方法以优化 API 设计。
|
4月前
|
缓存 安全 API
为什么 HTTP GET 方法不使用请求体?
本指南深入探讨了为什么HTTP GET方法通常不使用请求体,解释了GET方法的主要用途及其设计原则。GET请求旨在通过URL安全、幂等地检索数据,避免因请求体带来的复杂性和潜在问题。尽管HTTP/1.1规范允许GET请求包含请求体,但这并不常见且可能引发副作用。掌握这些原则有助于开发者在API开发中更高效地使用GET请求。
|
5月前
|
存储 JSON JavaScript
WEB CAD插件通过上下文对象MxPluginContext修改UI界面的方法
本文介绍了如何使用MxPluginContext动态控制MxCAD项目的UI界面。通过该上下文对象,开发者可以灵活设置UI配置,如控制操作栏显隐、编辑按钮、添加侧边栏等。具体方法包括调用`getUiConfig()`获取并修改`mxUiConfig.json`中的属性,实现界面的定制化。此外,还提供了控制命令行聚焦的功能,解决输入框焦点锁定问题。详细代码示例和效果对比图展示了具体实现步骤,帮助开发者更好地适配项目需求。