专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »安全 » session攻击:Asynchronous  session  攻击 »正文

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被改变而流程改变 

  • 篇文章: 脚本和批处理合 2为

  • 篇文章: 推荐:Sql脚本注射窍门技巧整理大全
  • 0

    相关文章

    读者评论

    发表评论

    • 昵称:
    • 内容: