网络安全-使用HTTP动词篡改的认证旁路
这个东西去年的安全扫描都没有,今天就扫出来了,非常奇怪的一个东西。好吧,找资料找原因。结果可能应为搜索名词的原因,这个问题在群友的帮助下解决了。
在我理解中servlet只有post和get方法,然后结果怎么出来这么多奇奇怪怪的方法呢。这些方法干啥的呢?
首先找到的是一个禁用http下不安全的方法的博客,具体谁的博客我也没关注。先按照他的方法修改,修改方法也挺简单,改下tomcat的web.xml就好。
- <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>
<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动词篡改导致的认证旁路”的解决方法
- <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;
- }
<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上面验证,也成功的反应出了正确的消息头。
- resp.setStatus(403);
resp.setStatus(403);
不然是无法通过AppScan的扫描的
网络安全-使用HTTP动词篡改的认证旁路的更多相关文章
- asp.net mvc 安全测试漏洞 " HTTP 动词篡改的认证旁路" 问题解决
IBM Security Appscan漏洞筛查-HTTP 动词篡改的认证旁路漏洞,具体解决方案: 在Web.Config中system.webServer节点增加配置security: <se ...
- AppScan9.0.3.5漏洞扫描记录
1.跨站点脚本编制 这个安全漏洞拿cookie做文章,而且是将前端的一些弹窗方法,要么通过脚本注入,要么通过url.encode之后注入,看几个变异的版本: 版本一: cookie 从以下位置进行控 ...
- 使用appscan安全扫描问题以及解决办法
最近在做安全扫描,把遇到的一些问题以及一些解决方法记录下,以备后用. 扫描软件: IBM Security AppScan Standard 规则: 17441 1. 已解密的登录请求 (高) - ...
- 传说中的WCF(10):消息拦截与篡改
我们知道,在WCF中,客户端对服务操作方法的每一次调用,都可以被看作是一条消息,而且,可能我们还会有一个疑问:如何知道客户端与服务器通讯过 程中,期间发送和接收的SOAP是什么样子.当然,也有人是通过 ...
- 传说中的WCF:消息拦截与篡改
我们知道,在WCF中,客户端对服务操作方法的每一次调用,都可以被看作是一条消息,而且,可能我们还会有一个疑问:如何知道客户端与服务器通讯过程中,期间发送和接收的SOAP是什么样子.当然,也有人是通过借 ...
- 腾讯云TcaplusDB获新加坡MTCS最高等级安全认证
近日,经过国际权威认证机构DNV GL的全面评估审核,TcaplusDB获得了新加坡多层云安全(以下简称"MTCS")T3级最高等级认证,这标志着TcaplusDB全面满足了新加坡 ...
- Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】
源码请移步至:https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc 版 ...
- Appscan漏洞之Authentication Bypass Using HTTP Verb Tampering
本次针对 Appscan漏洞 Authentication Bypass Using HTTP Verb Tampering(HTTP动词篡改导致的认证旁路)进行总结,如下: 1. Authentic ...
- Nmap备忘单:从探索到漏洞利用(Part 4)
这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...
随机推荐
- python+Selenium之操作滚动条
当我们做测试的时候,如果页面过长,就会定位元素失败,这时可以使用move_to_element方法跳到该元素的位置再操作: from selenium.webdriver.common.action_ ...
- String数据转Matrix矩阵
String数据转Matrix矩阵 private Matrix String_To_Matrix(string str) { int[] Remove_Num = new int[10]; int ...
- (转)Uri详解之——Uri结构与代码提取
前言:依然没有前言…… 相关博客:1.<Uri详解之——Uri结构与代码提取>2.<Uri详解之二——通过自定义Uri外部启动APP与Notification启动> 上几篇给大 ...
- Oracle 数据库管理员及管理员的作用
以下测试实例均在Oracle11gr2下测试!!! 一.简介:每个Oracle数据库应该至少有一名数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库,可能需要多个db ...
- centos 7编译安装apache
1.安装工具和依赖包 yum install unzipyum -y install gcc gcc-c++ 2.创建软件安装目录mkdir /usr/local/{apr,apr-util,apr- ...
- python 正则表达式应用——缩写词扩充
看具体示例 import re def expand_abbr(sen, abbr): lenabbr = len(abbr) ma = '' for i in range(0, lenabbr): ...
- Linux修改BASH命令提示符
Shell命令提示符及颜色是由PS1来配置: 1.其中PS1常用的参数含义如下: \d :#代表日期,格式为weekday month date,例如:"Mon Aug 1" \H ...
- Amoeba+Mysql 实现读写分离
About Amoeba Amoeba可译为阿米巴.变型虫Amoeba是一个开源项目,致力于Mysq的分布式数据库前端代理层Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口 ...
- 《C++ Primer》〓〓〓〓〓〓〓〓〓〓【第七章】
7.5.1 构造函数初始化列表 如果成员是const.引用,或者属于某种未提供默认构造函数的类类型,我们必须通过构造函数初始值列表为这些成员提供初值. 成员的初始化顺序与他们在类定义中的出现顺序一致. ...
- 关于vue的常识问题及解决方法
一.VSCode开发必备插件 1.Beautify:语法高亮: 2.Bracket Pair Colorizer :对括号对进行着色: 3.ESLint:ESLint插件,高亮提示: 4.HTML C ...