ITPub博客

首页 > IT基础架构 > 网络安全 > CWE-293: 依赖referer字段进行身份鉴别漏洞构成条件有哪些?

CWE-293: 依赖referer字段进行身份鉴别漏洞构成条件有哪些?

原创 网络安全 作者:zktq2021 时间:2021-08-05 10:40:30 0 删除 编辑

01 什么是依赖referer字段进行身份鉴别?

HTTP请求中的referer字段可以很容易地修改,因此不是身份鉴别检查的有效方法。

根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该 HTTP 请求的来源地址。也就是说,服务器会验证客户端的请求来源,如果本网站请求则响应,否则不响应。但是即使这样,验证HTTP Referer字段这种方式也存在安全隐患。

02 依赖referer字段进行身份鉴别漏洞的构成条件有哪些?

依赖HTTP请求的referer字段进行身份鉴别。

03 依赖referer字段进行身份鉴别漏洞会造成哪些后果?

攻击者可通过修改HTTP请求的referer字段冒用其他用户的身份。

04 依赖referer字段进行身份鉴别漏洞的防范和修补方法有哪些?

为了有效地检查给定的操作是否被授权,必须使用一些强身份验证和方法保护的手段。通过用户名口令、数字证书等其他手段对用户身份进行鉴别。

05 依赖referer字段进行身份鉴别漏洞样例:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

String param = request.getHeader("referer");

if (param == null) param = "";

param = java.net.URLDecoder.decode(param, "UTF-8");

String bar = "safe!";

java.util.HashMap<String,Object> map56344 = new java.util.HashMap<String,Object>();

map56344.put("keyA-56344", "a Value"); // put some stuff in the collection

map56344.put("keyB-56344", param); // put it in a collection

map56344.put("keyC", "another Value"); // put some stuff in the collection

bar = (String)map56344.get("keyB-56344"); // get it back out

Object[] obj = { "a", "b" };

response.getWriter().format(java.util.Locale.US,bar,obj);

}

使用Wukong代码安全检测工具检测上述程序代码,则可以发现代码中存在着“依赖referer字段进行身份鉴别”的安全漏洞。请见下图:

依赖referer字段进行身份鉴别在CWE中被编号为CWE-293: Using Referer Field for Authentication


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000012/viewspace-2785371/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
中科天齐软件源代码安全缺陷检测平台(WuKong)是一款B/S 架构的国产信创静态软件安全测试工具,为客户在软件开发过程中查找、识别、追踪绝大部分主流编码中的技术漏洞与逻辑漏洞,帮助用户提升抵御网络攻击、防止数据泄露等安全问题的能力。

注册时间:2021-05-14

  • 博文量
    533
  • 访问量
    358688