为什么要禁止除GET和POST之外的HTTP方法?


最近老是听朋友说,被上级单位通报HTTP不安全方法漏洞,本来是低危漏洞,也没怎么注意它,最近升为中危漏洞,每天催着去整改,闹得人心惶惶,甚至经常被维护人员吐槽,做的是得不偿失的事情。

因此,有必要说明一下,为什么要禁止除GET和POST之外的HTTP方法。

换句话说,对于这些HTTP不安全方法,到底有多不安全呢?

一、HTTP请求方法有哪些

根据HTTP标准,HTTP请求可以使用多种方法,其功能描述如下所示。

HTTP1.0定义了三种请求方法: GET、POST、HEAD

HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE 、CONNECT

640?wx_fmt=jpeg

二、举例说明不安全的HTTP方法

众所周知,GET、POST是最为常见方法,而且大部分主流网站只支持这两种方法,因为它们已能满足功能需求。其中,GET方法主要用来获取服务器上的资源,而POST方法是用来向服务器特定URL的资源提交数据。而其它方法出于安全考虑被禁用,所以在实际应用中,九成以上的服务器都不会响应其它方法,并抛出404或405错误提示。以下列举几个HTTP方法的不安全性:

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

640?wx_fmt=jpeg

2、PUT方法,由于PUT方法自身不带验证机制,利用PUT方法即可快捷简单地入侵服务器,上传Webshell或其他恶意文件,从而获取敏感数据或服务器权限。

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

三、漏洞验证

(一)环境搭建

1、测试环境为:WIN10 64位、Tomcat 7.0.72、curl 7.49

2、在Tomcat 7默认配置中,web.xml文件的org.apache.catalina.servlets.DefaultServlet的

readonly参数默认是true,即不允许DELETE和PUT操作,所以通过PUT或DELETE方法访问,就会报403错误。为配合测试,把readonly参数设为false。

640?wx_fmt=jpeg

(二)漏洞利用

1、PUT上传和DELETE删除文件成功

在DefaultServlet的readonly参数为falsed的情况下,使用Curl进行测试,发现已能通过PUT上传和DELETE删除文件。

640?wx_fmt=jpeg

2、直接PUT上传.jsp失败

此时想直接上传webshell.jsp,但发现上传失败。

640?wx_fmt=jpeg

研究发现,原因是在默认配置下,涉及jsp、jspx后缀名的请求由org.apache.jasper.servlet.JspServlet处理,除此之外的请求才由org.apache.catalina.servlets.DefaultServlet处理。

640?wx_fmt=jpeg640?wx_fmt=jpeg

刚才将DefaultServlet的readonly设置为false,并不能对jsp和jspx生效。因此,当PUT上传jsp和jspx文件时,Tomcat用JspServlet来处理请求,而JspServlet中没有PUT上传的逻辑,所以会403报错。

3、利用漏洞成功上传WebShell

对于不能直接上传WebShell的问题,一般的思路是通过解析漏洞来解决,而不少中间件版本如IIS 6、TOMCAT 7等都出现过相关的漏洞。

在此测试环境中,利用Tomcat 7的任意文件上传漏洞(CVE-2017-12615)来实现目的,该漏洞通过构造特殊后缀名,绕过tomcat检测,让它用DefaultServlet的逻辑处理请求,从而上传jsp文件。具体来说,主要有三种方法,比如shell.jsp%20 、shell.jsp::$DATA 、shell.jsp/

本次测试,使用第一种方法,在1.jsp后面加上%20,如此即可成功实现上传,并取得WebShell。

curl -X PUT http://127.0.0.1:8080/examples/1.jsp%20 -d “HelloJSP”

然后就直接挂马了,从下图可以看到成功上传webshell.jsp,并成功实现对服务器的控制。

640?wx_fmt=jpeg640?wx_fmt=jpeg

四、如何自纠自查

从上面的Tomcat测试可以发现,虽然需在DefaultServlet的readonly参数为false前提下,才能实现渗透,但还是建议把除了GET、POST的HTTP方法禁止,有两方面原因:

1、除GET、POST之外的其它HTTP方法,其刚性应用场景较少,且禁止它们的方法简单,即实施成本低;

2、一旦让低权限用户可以访问这些方法,他们就能够以此向服务器实施有效攻击,即威胁影响大。

写到这里,也许大家都明白了,为什么要禁止除GET和POST外的HTTP方法,一是因为GET、POST已能满足功能需求,二是因为不禁止的话威胁影响大。

自纠自查方面,可以使用OPTIONS方法遍历服务器使用的HTTP方法。但要注意的是,不同目录中激活的方法可能各不相同。而且许多时候,虽然反馈某些方法有效,但实际上它们并不能使用。许多时候,即使OPTIONS请求返回的响应中没有列出某个方法,但该方法仍然可用。总的来说,建议手动测试每一个方法,确认其是否可用。

具体方法,举例说明,使用curl测试:

1、测试OPTIONS是否响应,并是否有 Allow: GET, HEAD, POST, PUT, DELETE, OPTIONS

curl -v -X OPTIONS  http://www.test.com/test/

2、测试是否能通过PUT上传文件

curl -X PUT  http://www.test.com/test/test.html -d “test”

3、找一个存在的文件,如test.txt,测试是否能删除

curl -X DELETE  http://www.example.com/test/test.text

* 本文作者:进击的大熊2018,转载请注明来自FreeBuf.COM

python通过get,post方式发送http请求和接收http响应的方法
01-20
本文实例讲述了python通过get,post方式发送http请求和接收http响应的方法。分享给大家供大家参考。具体如下: 测试用CGI,名字为test.py,放在apache的cgi-bin目录下: #!/usr/bin/python import cgi def main(): ...
JAVA发送http get/post请求,调用http接口、方法详解
08-26
主要介绍了Java发送http get/post请求调用接口/方法,文中通过示例代码介绍的常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
tomcat 禁用trace,put,head,post,delete 请求方式
shuxiansheng1的博客
07-15 3517
背景 项目中请求方式只有GET,POST请求,处于安全考虑准备禁用TRACE,HEAD,PUT,DELETE,OPTIONS请求方式。 实现 在tomcat的web.xml配置 文件最后加上请求方式限制,配置如下,本次使用的tomcat8 <security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> ...
启用了不安全的HTTP方法
u013673367的专栏
08-20 1985
启用了不安全的HTTP方法   2012-09-12 18:09:17|  分类: IT技术 |  标签:curl  webdav  tomcat  安全测试  |举报|字号 订阅 安全风险:       可能会在Web 服务器上上载、修改或删除Web 页面、脚本和文件。 可能原因:       Web 服务器或应用程序服务器是以不安全的方式配置的。 修
HTTP的危险方法(不安全的HTTP方法
weixin_45116657的博客
11-01 9259
友情链接: Web安全|为什么要禁止除GET和POST之外HTTP方法? 不安全的HTTP方法 我们常见的HTTP请求方法是GET、POST和HEAD。但是,其实除了这两个之外HTTP还有一些其他的请求方法。 WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GE...
学习-Springboot禁止内置Tomcat不安全的HTTP方法
liutinghui989的博客
04-17 8197
SpringBoot禁止内置Tomcat不安全的HTTP方法学习问题记录新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入...
nodejs使用http模块发送get与post请求方法示例
12-23
本文实例讲述了nodejs使用http模块发送get与post请求方法。分享给大家供大家参考,具体如下: GET请求 var http = require('http'); var querystring = require('querystring'); var data = { a: 123, time: ...
Go语言中利用http发起Get和Post请求方法示例
09-21
主要给大家介绍了关于Go语言中利用http发起Get和Post请求的相关资料,文中通过示例代码介绍的常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
HttpTest.rar_GET和POST请求_HTTPTest_get post
07-15
本程序包含一个http协议的工具类,支持get和post请求两种方式,返回值类型为字符串类型,方便开发。
java 调用第三方接口,post/get/delete方法,webservice 接口调用
weixin_47056195的博客
06-13 1471
【代码】java 调用第三方接口,post/get/delete方法,webservice 接口调用。
php 防止被get,PHP如何过滤GET或者POST的参数?如何样才能保证代码不被注入
weixin_42500240的博客
03-10 342
------解决方案--------------------直接查查 魔术转换 相关东西吧不用去看wordpress了,学这么个东西还要去看wordpress,搞死人啊------解决方案--------------------if (!get_magic_quotes_gpc())//如果没有开启的话{/****需要对这几个数组,遍历,注意数组多维的情况,addslashes($str)就可以$...
NGINX配置禁用http请求方式
qq_36842015的博客
10-17 3314
Nginx配置禁用http请求
不安全的HTTP方法
最新发布
Decaede的博客
02-27 1305
HTTP方法是一组用于与web服务器通信的协议命令。最常被用到的方法是:GET和POSTGET、POST和HEAD是HTTP 1.0定义的三种请求方法。OPTIONS、PUT、DELETE、TRACE和CONNECT是HTTP 1.1新增的物种方法
如何禁用不需要的HTTP方法
icontent
09-24 983
转自:如何禁用不需要的HTTP方法IIS7 0默认开启了不安全的OPTIONS和TRACE方法,建议关闭这两个方法。以下环境为windows server 2008、IIS7 0方法(1):web config在https://www.pinlue.com/article/2019/06/0614/549119750211.html ...
WEB漏洞-关闭不安全的HTTP方法
踮脚敲代码
12-19 6299
一.测试过程 通过手工测试,站点启动了不安全的HTTP方法漏洞,详细测试如下: OPTIONS /main/login HTTP/1.1 Host: xxx.com User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language
http协议支持post和get方法吗?
06-11
是的,HTTP协议支持GET和POST方法。 GET方法用于从服务器获取资源,通常用于获取页面、图片等静态资源。 POST方法用于向服务器提交数据,通常用于提交表单数据、上传文件等。 GET方法将数据放在URL的查询字符串中,而POST方法将数据放在请求正文中,因此POST方法更加安全,适用于提交敏感数据。但是,POST方法也会增加服务器的负担,因为它需要在服务器上处理请求正文。 需要注意的是,根据HTTP协议的规定,GET方法应该只用于获取资源,而不应该用于修改服务器上的数据。因此,如果使用GET方法来修改数据,可能会导致安全风险和数据完整性问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 让一台电脑死机的代码 19715
  • JS报错:Uncaught ReferenceError: ShowDetail is not defined at HTMLAnchorElement.onclick 14533
  • 如何解决PL/SQL Developer过期的情况(两种解决方法) 13141
  • C# Guid.NewGuid() —— 随机生成唯一标识符 11434
  • SqlSever中Where子句后进行条件判断 10331

分类专栏

  • Windows 5篇
  • Algorithm 7篇
  • DataStructure 7篇
  • Back-End 33篇
  • FrontEnd 11篇
  • DataBase 13篇
  • NetworkSecurity/Cryptography 2篇
  • 开发工具的那些事 5篇
  • 一些和编程无关的小事 5篇

最新评论

  • C# Mstsc远程桌面控件AxMsRdpClientNotSafeForScripting使用示例

    xueshaoyu: 每次都要弹出来输入密码

  • C# Mstsc远程桌面控件AxMsRdpClientNotSafeForScripting使用示例

    weixin_35534629: 注意:一定要把EnableCredSspSupport属性置为ture 否则连接上去就是一片空白!

  • 如何解决PL/SQL Developer过期的情况(两种解决方法)

    qq_45902531: 我按照你的前面删除注册表有用,就是不大懂原理是什么,为什么要删除HKEY_CURRENT_USER\Software\Microsoft\Security这个目录下的Security,我总觉得这个Security是系统里的,希望能够得到回复

  • 使用Auto.js实现蚂蚁森林自动收取能量

    桃桃小可爱: 代码写到那个软件里啊

  • 如何解决PL/SQL Developer过期的情况(两种解决方法)

    weixin_46099347: 感谢老铁!

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 阿里云消息队列RocketMQ ( TCP商业版协议 .NET SDK)实例
  • C# Mstsc远程桌面控件AxMsRdpClientNotSafeForScripting使用示例
  • SQL DATENAME(month,getdate())返回的数据为英文日期及把日期转为字符去比较的性能问题
2021年1篇
2020年2篇
2019年28篇
2018年57篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司玉林外贸网站建设哪家好辽阳SEO按效果付费价格垦利优化哪家好宿州网站关键词优化价格宿迁SEO按天收费推荐海南关键词排名包年推广推荐喀什如何制作网站公司金昌营销网站多少钱金昌百度seo多少钱通辽网站开发价格天门网页制作推荐泸州设计网站报价黑河外贸网站建设哪家好林芝网站建设多少钱合肥百度关键词包年推广价格重庆网站推广系统报价安顺网站seo优化推荐益阳seo网站推广南充网络营销多少钱潮州SEO按天收费报价丽江百姓网标王推广报价四平企业网站设计报价临猗网站排名优化价格乐山SEO按效果付费公司沧州百度网站优化多少钱和县网站优化多少钱和县网站设计模板推荐烟台网站定制泉州网络营销价格鹤壁外贸网站建设价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化