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便会失效。

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

相关推荐
xw-pp9 分钟前
从输入 URL 到页面展示到底发生了什么?
网络协议·tcp/ip·http·网络安全·https·tcpdump
筑梦之月41 分钟前
我国网络安全领域有哪些法律法规?主要内容是什么?
网络·安全·web安全
星辰中的维纳斯44 分钟前
vue新手入门教程(项目创建+组件导入+VueRouter)
前端·javascript·vue.js
嫣嫣细语1 小时前
css实现鼠标禁用(鼠标滑过显示红色禁止符号)
前端·css
Days20501 小时前
web前端主要包括哪些技术
前端
XF鸭2 小时前
HTML-CSS 入门介绍
服务器·前端·javascript
聪明的小脑袋瓜儿2 小时前
网络安全设备——防火墙
网络·web安全·网络安全·防火墙
wanhengwangluo2 小时前
徐州服务器租用:论带宽的作用有哪些
运维·网络安全·数据安全
forwardMyLife2 小时前
element-plus 的form表单组件之el-radio(单选按钮组件)
前端·javascript·vue.js
fs哆哆2 小时前
ExcelVBA运用Excel的【条件格式】(二)
linux·运维·服务器·前端·excel