session攻击:Asynchronous  session  攻击来源: 发布时间:星期六, 2009年9月12日 浏览:0次 评论:0
Team : I.S.T.O
Writer : kj021320 Tester : Living/Amxsa BLOG : http://blog.csdn.net/I_S_T_O (套话) 首先介绍下什么是 session , 相信很多开发人员已经很熟悉了!但是我还需要老生常谈, session是服务器 上面块内存区域 , 存放登陆用户(同个会话) 信息 , 而浏览器端只需要 保存个KEY , 每次提交时候只需 要拿着相应key去服务器取东西 为了适应大家阅读所以 下面为常用WEB代码事例 (概念) 那如何才算是 asynchronous session 攻击呢!这个形容词在国外是没有涉及过!很显然是在session 异步 操作过程中 , 中引发权限拷贝 , 或者权限提升 流程改变现象(living amxsa管它叫做 session竞争)..... 现在我们带着 4维空间研究模式 去分析这个过程! (模拟) A页面操作 查询数据库 设置session 模块=A 查询数据库 设置session 权限=1 完成 B页面操作 查询数据库 设置session 模块=B 查询数据库 设置session 权限=2 完成 切很正常~ 但是当同用户并发到来时候 就有可能这样操作 A页面操作 查询数据库 设置session 模块=A 系统时间片停止 把执行权交给B页面 ( B页面操作 查询数据库 设置session 模块=B 查询数据库 设置session 权限=2 完成 ) 继续A页面 查询数据库 设置session 权限=1 完成 大家看了吗?这样就是 模块=B 权限=1 出现了! 如果大家熟悉数据库事务话 看就明白!违背了 原子性 (解说) 在这样细微攻击地方 并不是什么WEB应用都会出现 至少在ASP/ASPX上面不会他核心处理方式不样 , 页面处理session都是串行化 PHP话在WIN环境下APACHE也不会发生这个问题!感谢 AMXSA LIVING协助测试 PHP *NIX大家可以回去测试 但是在J2EE应用上面就刚刚好会出发这样漏洞 现在来讲讲 J2EE容器 接收请求实现模式 首先J2EE容器启动被请求SERVLET(JSP也被翻译为SERVLET执行)OK当每个请求到来时候!J2EE容器会采用反射把 请求采用多线程方式交给SERVLETSERVICE思路方法处理 请求 ---> J2EE容器 ---> SERVLET(SERVICE思路方法) 而 HttpSession 是存储在 HttpServletRequest 里面 容器不定有监控页面对session操作是否加入LOCK 就造成这样攻击 大家可以先运行 session.jsp 然后 打开a.jsp 再打开 b.jsp 很显然就能看到 a.jsp处理中途session给修改了! (攻击引申) 以上只是个 理论和演示有可能实际中很少见到这样事情! 但是在开发J2EE应用时候真得要注意!要不然以后肯定是J2EE攻击重大隐患... 例如 论坛斑竹权限被拷贝 OA被权限被越过本来有邮件模块权限现在给拷贝了有用户管理 或者在处理过程中 session被改变而流程改变 0
相关文章
读者评论发表评论 |