这个东西去年的安全扫描都没有,今天就扫出来了,非常奇怪的一个东西。好吧,找资料找原因。结果可能应为搜索名词的原因,这个问题在群友的帮助下解决了。

在我理解中servlet只有post和get方法,然后结果怎么出来这么多奇奇怪怪的方法呢。这些方法干啥的呢?

首先找到的是一个禁用http下不安全的方法的博客,具体谁的博客我也没关注。先按照他的方法修改,修改方法也挺简单,改下tomcat的web.xml就好。

[html] view plaincopy print?
  1. <security-constraint>
  2. <web-resource-collection>
  3. <http-method>HEAD</http-method>
  4. <http-method>PUT</http-method>
  5. <http-method>DELETE</http-method>
  6. <http-method>OPTIONS</http-method>
  7. <http-method>TRACE</http-method>
  8. <url-pattern>/*</url-pattern>
  9. </web-resource-collection>
  10. <auth-constraint>
  11. <role-name></role-name>
  12. </auth-constraint>
  13. </security-constraint>
<security-constraint><web-resource-collection><http-method>HEAD</http-method><http-method>PUT</http-method><http-method>DELETE</http-method><http-method>OPTIONS</http-method><http-method>TRACE</http-method><url-pattern>/*</url-pattern></web-resource-collection><auth-constraint><role-name></role-name></auth-constraint>
</security-constraint>

为啥要加这个呢!找了下web.xml的说明

WebDAV (Web-based Distributed Authoring and Versioning)是基于 HTTP 1.1 的一个通信协议。它为 HTTP 1.1 添加了一些扩展(就是在 GET、POST、HEAD 等几个 HTTP 标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到 Web Server 上,并且在写文件时候可以对文件加锁,写完后对文件解锁,还可以支持对文件所做的版本控制。这个协议的出现极大地增加了 Web 作为一种创作媒体对于我们的价值。基于 WebDAV  可以实现一个功能强大的内容管理系统或者配置管理系统。

好吧,这样就理解了,既然是一个通讯协议增加了这些方法,那么按博主的方法改掉就好了。

可惜事与愿违,使用AppScan扫描还是存在这个问题。那么就纳闷了,为啥会出现这样的情况呢?

于是找到了

AppScan问题“HTTP动词篡改导致的认证旁路”的解决方法

这篇博客,这个里面提供的思路不错,看得出来他也配置了web.xml。这样看起来要升级tomcat的节奏?
如果要升级tomcat我讲面临和那个博主一样的问题,公司层面不好解决,而且公司也不只是用tomcat。其他的应该也存在问题。
从上面可以明显看出来这个漏洞和WebDAV 这个东西其实关系并不大,主要问题在于篡改,WebDAV 只是提供了一些方法,这些方法虽然会导致一些修改或者什么的问题。但是如果是篡改了一个不存在的方法,其实结果也是一样。好吧,其实上面那个博客最大的好处不是认识到了问题的根源,而是找到一个测试神器burpsuite。再也不用苦逼的猜了。
好吧,那么就剩下一个办法,那就是自己写拦截器。拦截住除开get和post的方法。为啥不在web.xml配置这个?因为我试过了配置了之后我自己都登陆不上。
谁配置成功了可以告诉我,我是拿现在这个6.0的tomcat毫无办法。以后考虑升级到9.0。
写拦截器去了,祝福我能成功。
ok,今天加了拦截器,成功干掉了这个问题。
[java] view plaincopy print?
  1. <span style="white-space:pre">    </span> String method = req.getMethod();
  2. if(!"GET".equals(method)&&!"POST".equals(method)&&!"HEAD".equals(method))
  3. {
  4. log.error("The request with Method["+method+"] was forbidden by server!");
  5. response.setContentType("text/html;charset=GBK");
  6. response.setCharacterEncoding("GBK");
  7. resp.setStatus(403);
  8. response.getWriter().print("<font size=6 color=red>对不起,您的请求非法,系统拒绝响应!</font>");
  9. return;
  10. }
<span style="white-space:pre">    </span> String method = req.getMethod();if(!"GET".equals(method)&&!"POST".equals(method)&&!"HEAD".equals(method)){log.error("The request with Method["+method+"] was forbidden by server!");response.setContentType("text/html;charset=GBK");response.setCharacterEncoding("GBK");resp.setStatus(403);response.getWriter().print("<font size=6 color=red>对不起,您的请求非法,系统拒绝响应!</font>");return;}

在burpsuite上面验证,也成功的反应出了正确的消息头。

这里请记住

[java] view plaincopy print?
  1. resp.setStatus(403);
resp.setStatus(403);

不然是无法通过AppScan的扫描的

转载于:https://www.cnblogs.com/firstdream/p/8393316.html

网络安全-使用HTTP动词篡改的认证旁路相关推荐

  1. IT 安全专业人员需要 CISSP 认证 - 网络安全专家 Joseph Steinberg 推荐的认证

    问:为什么要进行CISSP认证? 答:认证为雇主提供了一种客观的方式,来衡量候选人对特定主题或一组主题的认知. 也就是说,信息安全领域存在许多有价值的认证,选择哪个或哪个组进行认证对于某些人来说可能是 ...

  2. 【网络安全期末复习2】消息认证与数字签名的过程图与原理

    消息认证: 过程图示: 原理: 首先发送方使用密钥K对消息进行Hash加密生成消息摘要 发送方将消息和消息摘要打包通过公开信道发送给接收方 接收方接收到消息和消息摘要 接收方对使用密钥K对消息进行Ha ...

  3. 网络安全-已解密的登录请求,会话标识未更新,跨站点请求伪造

    这些没有那么麻烦,一天就搞定了.所以简单记录一下. 已解密的登陆请求是非常简单的,随便找个浏览器,火狐谷歌都行.打开F12找到网络 就可以非常清楚的看到这里是明文密码.虽然这里是客户端,还没有到传输阶 ...

  4. 安全篇 ━━ 整改php和IIS(根据安全等级保护评估、渗透测试报告)

    1.HTTP响应标头 响应头的一般设置参考:提高安全性而在HTTP响应头中可以使用的各种响应头字段 * 点击劫持:X-Frame-Options未配置 点击劫持(ClickJacking)是一种视觉上 ...

  5. WEB安全防御总结 : 列举漏洞及修复建议

    一. 不安全的第三方链接: 漏洞简介: 在新打开的页面中可以通过 window.opener获取到源页面的部分控制权,即使新打开的页面是跨域的也照样可以 修复建议: 在a标签中加入rel=" ...

  6. HCL AppScan Standard扫描有关前端Xss安全报告处理

    报告问题描述 1."X-Content-Type-Options"头缺失或不安全 2. "X-XSS-Protection"头缺失或不安全 3. HTTP St ...

  7. 信息安全保障人员(CISAW)工控网络安全方向认证介绍

    信息安全保障人员(CISAW)工控网络安全方向认证a信息安全保障人员(CISAW)工控网络安全方向认证介绍~ 中国网络安全审查技术与认证中心依据<信息安全人员认证准则>,发布了信息安全保障 ...

  8. 网络安全领域内的资格认证相关

    引子: 随着全球性信息化的深入发展,信息网络技术已广泛应用到企业商务系统.金融业务系统.政府部门信息系统等,由于Internet具有开放性.国际性和自由性等特点,因此为保护机密信息不受黑客和间谍的入侵 ...

  9. 虹科分享 | 终端安全防护丨您的网络安全是否防篡改

    下一代防病毒(NGAV).端点检测和响应(EDR)以及端点保护平台(EPP)等网络安全解决方案面临着滥用.篡改和利用,以实现初始访问和持久性.威胁者知道,破坏这些防御系统往往更容易得到他们想要的东西. ...

最新文章

  1. 当前被频频提及的企业数字化转型是什么?
  2. Mysql使用trigger触发器说明
  3. Redis Scan命令
  4. leetcode 28. Implement strStr() 实现strStr()
  5. SpringBoot开发案例之CountDownLatch多任务并行处理
  6. 如何在ASP.NET Core程序启动时运行异步任务(2)
  7. python流程自动化_基于Python的SAP流程自动化
  8. C# Reflection
  9. 微信公众号支付失败的各种原因
  10. 倾斜摄影——3维建模软件PhotoScan教程(附安装包+教学视频)
  11. vlc 网页插件的 使用与控制 API
  12. 原生js 获取屏幕各种宽高的方法
  13. 怎样在Excel中添加水印?学会这个方法可以轻松搞定
  14. SIFT算法原理(2)-极值点的精确定位
  15. 假如孔子看见《孔子》――兼谈我们需要怎样的国学
  16. Gvim中实现特定行文本的替换
  17. BIM技术都是如何应用于水利工程中
  18. java去掉date分时秒_java Date获取年月日时分秒的实现方法
  19. 超市购物车的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. 【修改蓝牙设备名称】一步简单操作

热门文章

  1. display:table-cell自适应布局下连续单词字符换行
  2. 从Spring到SpringBoot构建WEB MVC核心配置详解
  3. (转载)控制反转(IoC)与依赖注入(DI)
  4. dexpler的使用方法
  5. 【原】UIView实现点击着重效果的解决方案
  6. 软件工程 工具之二—— PowerDesigner v12(六)
  7. 安卓突然自动关机 android正在启动,华为手机开机重启后老是显示安卓正在启动优化应用是为什么?...
  8. java8 stream to map_Java 8 Stream Api 中的 map和 flatMap 操作
  9. python json dict对象使用_Python中:dict(或对象)与json之间的互相转化
  10. docker容器配置加速器