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

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

相关推荐
xy34531 小时前
wireshark 如何捕获信息
网络·测试工具·渗透测试·wireshark
kyriewen1 小时前
看了微软几万人用AI编程的数据——效率涨24%的代价没人提
前端·ai编程·claude
2601_963771371 小时前
How to Scale Your WordPress Store Traffic in 2026
前端·php·plugin
亿元程序员1 小时前
老板说我的3D箭头游戏用来做试玩太普通了,没人想玩,让我变点花样...
前端
李伟_Li慢慢2 小时前
01-threejs架构原理-课程简介
前端·three.js
_瑞3 小时前
深入理解 iOS 渲染原理
前端·ios
IT_陈寒3 小时前
SpringBoot自动配置失灵?你可能忘了这个关键注解
前端·人工智能·后端
零零信安3 小时前
AI智能体,攻守失衡的催化剂 | 零零信安
人工智能·网络安全·数据泄露·暗网·零零信安
iCOD3R4 小时前
Skill - kill-ai-slop 解决“AI 味”样式
前端·css·ai编程
皮音4 小时前
Skill 在项目中的实践 —— 从 Agent 困境到 Skill 工程化
前端