Web应用安全测试-防护功能缺失

Web应用安全测试-防护功能缺失

1、Cookie属性问题

++漏洞描述:++

Cookie属性缺乏相关的安全属性,如Secure属性、HttpOnly属性、Domain属性、Path属性、Expires属性等。

++测试方法:++

  1. 通过用web扫描工具进行对网站的扫描,如果存在相关cookies的安全性问题,则一般工具都会检测出来,误报率小。
  2. 或在浏览器调试窗口的网络请求处查看HTTP Header,判断是否设置Cookie属性。

++风险分析:++

cookie的属性设置不当可能会造成系统用户安全隐患,Cookie信息泄露是Cookie http only配置缺陷引起的,在设置Cookie时,可以设置的一个属性,如果Cookie没有设置这个属性,该Cookie值可以被页面脚本读取。 例如:当攻击者发现一个XSS漏洞时,通常会写一段页面脚本,窃取用户的Cookie,如果未设置http only属性,则可能导致用户Cookie信息泄露,攻击者能够利用该用户的身份进行系统资源访问及操作。如图是设置了cookies属性和没有设置属性,被XSS跨站截获的cookies对比:

设置了httponly属性:

未设置httponly属性:

++风险等级:++

低危】:存在未设置 HttpOnly 或 Secure 属性;Domain 或者 Path 设置路径不合理。

**++修复方案:++**如果网站基于cookie而非服务器端的验证,建议设置Cookie的一些安全属性,jsp参考代码如下:

java 复制代码
response.setHeader("SET-COOKIE",

"user=" + request.getParameter("cookie") + "; HttpOnly");

PHP中的设置如下:

PHP5.2以上版本已支持HttpOnly参数的设置,同样也支持全局的HttpOnly的设置,在php.ini中设置session.cookie_httponly,设置其值为1或者TRUE,来开启全局的Cookie的HttpOnly属性,当然也支持在代码中来开启:

php 复制代码
<?php ini_set("session.cookie_httponly", 1);

 // or session_set_cookie_params(0, NULL, NULL, NULL, TRUE);

 ?>

Cookie操作函数setcookie函数和setrawcookie函数也专门添加了第7个参数来做为HttpOnly的选项,开启方法为:

|--------------------------------------------------------------------------------------------------------------------|
| setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); |

对于PHP5.1以前版本以及PHP4版本的话,则需要通过header函数来设置:

|----------------------------------------------------------|
| <?php header("Set-Cookie: hidden=value; httpOnly"); ?> |

**++注意事项:++**暂无

2、会话重用

**++漏洞描述:++**用户退出系统后,服务器端Session未失效,攻击者可利用此Session向服务器继续发送服务请求。

**++测试方法:++**通过客户端提供的注销功能退出客户端登录,利用登录时的会话再次向服务器发出操作请求,判断服务器是否返回操作结果。

**++风险分析:++**攻击者通过网络嗅探或者钓鱼攻击窃取用户的Session信息,在用户注销系统后,如服务器端未直接清理此Session,则攻击者仍可利用窃取到的Session成功访问系统直到Session过期。

++风险等级:++

高危】:关闭浏览器后或退出后返回之前页面会话依然有效

**++修复方案:++**用户退出系统后,服务器端应清空此用户的Session信息。

**++注意事项:++**暂无

3、会话失效时间过长

**++漏洞描述:++**应用系统的会话失效时间过长。导致服务器性能受损,且由于过长的失效时间会导致可以被多次利用。

**++测试方法:++**登录目标系统获得会话,几个小时之后再次利用该会话操作目标系统,测试会话是否失效。

**++风险分析:++**实施会话保持攻击的前提是攻击者已通过网络中间人攻击窃取用户的SessionID,并能修改用户的Cookie的Expire时间为长久有效,用户不退出系统的前提下,攻击者可长时间利用用户的SessionID登录系统。

++风险等级:++

低危】:公网系统会话失效时间超过 30 分钟

++修复方案:++

  1. 服务器端设置Session的存活时间,超过存活时间强制销毁Session;
  2. 当客户端发生变化时(比如IP、UserAgent等信息),要求用户重新登录;
  3. 限制每个用户只允许拥有一个有效Session,当用户再次登录时,攻击者所保持的Session便会失效。

**++注意事项:++**暂无

相关推荐
华玥作者5 小时前
[特殊字符] VitePress 对接 Algolia AI 问答(DocSearch + AI Search)完整实战(下)
前端·人工智能·ai
Mr Xu_5 小时前
告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案
前端·javascript·vue.js
前端摸鱼匠5 小时前
Vue 3 的toRefs保持响应性:讲解toRefs在解构响应式对象时的作用
前端·javascript·vue.js·前端框架·ecmascript
lang201509285 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
好家伙VCC6 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
未来之窗软件服务7 小时前
未来之窗昭和仙君(六十五)Vue与跨地区多部门开发—东方仙盟练气
前端·javascript·vue.js·仙盟创梦ide·东方仙盟·昭和仙君
嘿起屁儿整7 小时前
面试点(网络层面)
前端·网络
VT.馒头7 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
phltxy8 小时前
Vue 核心特性实战指南:指令、样式绑定、计算属性与侦听器
前端·javascript·vue.js
Byron07079 小时前
Vue 中使用 Tiptap 富文本编辑器的完整指南
前端·javascript·vue.js