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

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

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

  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,今天加了拦截器,成功干掉了这个问题。
  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上面验证,也成功的反应出了正确的消息头。

这里请记住

  1. resp.setStatus(403);
resp.setStatus(403);

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

网络安全-使用HTTP动词篡改的认证旁路的更多相关文章

  1. asp.net mvc 安全测试漏洞 " HTTP 动词篡改的认证旁路" 问题解决

    IBM Security Appscan漏洞筛查-HTTP 动词篡改的认证旁路漏洞,具体解决方案: 在Web.Config中system.webServer节点增加配置security: <se ...

  2. AppScan9.0.3.5漏洞扫描记录

    1.跨站点脚本编制 这个安全漏洞拿cookie做文章,而且是将前端的一些弹窗方法,要么通过脚本注入,要么通过url.encode之后注入,看几个变异的版本: 版本一: cookie  从以下位置进行控 ...

  3. 使用appscan安全扫描问题以及解决办法

    最近在做安全扫描,把遇到的一些问题以及一些解决方法记录下,以备后用. 扫描软件: IBM Security AppScan Standard  规则: 17441 1. 已解密的登录请求 (高) - ...

  4. 传说中的WCF(10):消息拦截与篡改

    我们知道,在WCF中,客户端对服务操作方法的每一次调用,都可以被看作是一条消息,而且,可能我们还会有一个疑问:如何知道客户端与服务器通讯过 程中,期间发送和接收的SOAP是什么样子.当然,也有人是通过 ...

  5. 传说中的WCF:消息拦截与篡改

    我们知道,在WCF中,客户端对服务操作方法的每一次调用,都可以被看作是一条消息,而且,可能我们还会有一个疑问:如何知道客户端与服务器通讯过程中,期间发送和接收的SOAP是什么样子.当然,也有人是通过借 ...

  6. 腾讯云TcaplusDB获新加坡MTCS最高等级安全认证

    近日,经过国际权威认证机构DNV GL的全面评估审核,TcaplusDB获得了新加坡多层云安全(以下简称"MTCS")T3级最高等级认证,这标志着TcaplusDB全面满足了新加坡 ...

  7. Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】

    源码请移步至:https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc 版 ...

  8. Appscan漏洞之Authentication Bypass Using HTTP Verb Tampering

    本次针对 Appscan漏洞 Authentication Bypass Using HTTP Verb Tampering(HTTP动词篡改导致的认证旁路)进行总结,如下: 1. Authentic ...

  9. Nmap备忘单:从探索到漏洞利用(Part 4)

    这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...

随机推荐

  1. 递归demo

    递归算法就是直接或间接调用自己的算法 public static void main(String[] args) { int m = sum(9); System.out.println(m); } ...

  2. 《大数据日知录》读书笔记-ch11大规模批处理系统

    MapReduce: 计算模型: 实例1:单词统计 实例2:链接反转 实例3:页面点击统计 系统架构: 在Map阶段还可以执行可选的Combiner操作,类似于Reduce,但是在Mapper sid ...

  3. XNA 中3D模型的显示

    XNA 中3D模型的显示: ModelMeshPart[] meshParts; Model start_model; Matrix[] dq_model_transforms; Matrix vie ...

  4. Mybatis缓存(二)

    Mybatis的二级缓存 1.二级缓存的范围  1. 二级缓存是Mapper级别的缓存.  2. 二级缓存的结构也是一个HashMap.  3. 不同的SqlSession对象去操作同一个mapper ...

  5. 深入理解JavaScript系列(40):设计模式之组合模式

    介绍 组合模式(Composite)将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性. 常见的场景有asp.net里的控件机制(即control ...

  6. c#单例(Singleton)模式实现

    sealed class Singleton { private Singleton(); public static readonly Singleton Instance=new Singleto ...

  7. 【转】.net MVC 生命周期

    对于Asp.net MVC,我对它的生命周期还是兴趣很浓,于是提出两个问题: 一个HTTP请求从IIS移交到Asp.net运行时,Asp.net MVC是在什么时机获得了控制权并对请求进行处理呢?处理 ...

  8. 解决VS2010在新建实体数据模型出现“在 .NET Framework Data Provider for Microsoft SQL Server Compact 3.5 中发生错误。请与提供程序供应商联系以解决此问题。”的问题

    最近想试着学习ASP.NET MVC,在点击 添加--新建项--Visual C#下的数据中的ADO.NET 实体数据模型,到"选择您的数据连接"时,出现错误,"在 .N ...

  9. linux系统下部署项目

    一.修改防火墙设置,开放对应的端口 修改Linux系统防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条  -A RH-Firewall- ...

  10. Idea 配置启动JDK___在windows中使用Intellij Idea时选择自定义的64位JVM

    略过下面的叙述快速配置 配置你的Idea启动jdk  (Idea15之后的版本启动不要JDK1.8) 添加环境变量IDEA_JDK_64,配置和JAVA_HOME环境变量相同,路径写到1.8的jdk就 ...