首页 » 漏洞 » XSS平台中keepsession分析

XSS平台中keepsession分析

 

本文讲述的是XSS平台中keepsession分析,旨在服务社会,供安全研究人员学习使用,请勿用于其他非法用途,违者后果自负。

很早就发现XSS平台有一个 keepsession 的功能,今天把源码看了看,发现其实就是 XSS平台每隔一段时间带着获取到的 cookie 去访问一下远程服务器 。这种黑科技居然这么简单,发现网上并没有说为什么这样就可以 keepsession ,然后就找资料看了看~~~

一、PHP中的SESSION机制 有两种方式用来传送会话ID COOKIEURL 参数如何设置URL参数传递会话ID。

1、设置php.ini中的 session.use_trans_sid = 1 开启 自动跨页传递 session_id 。

2、表单隐藏、数据库存取、文件存取等形式 手动跨页传递 。如何设置Cookies传递会话,默认方式 session.use_cookies = 0 表示是否开启基于cookie的session会话( 设为0 )session.use_only_cookies=1 表示是否只开启基于cookie的session会话二、SESSION什么时候失效 1、当前会话调用 session_destroy()2、 session 文件被破坏3、 session 文件被删除第一种情况,如果用户注销了会话,那就是真没有办法了。

第二种不考虑、第三种是 session 文件被删除。但是这个文件什么时候会被删除啊,我打开了我本地的文件,发现里面留下了很多很多 session 文件。

三、SESSION的垃圾回收机制 php.ini 有三个配置与 session 的回收有关 1、 session.gc_maxlifetime 指定过了多少秒之后数据就会被视为“垃圾”并被清除,官方的说法不是很准确,其实应该是 session 文件经过此时间没有被使用就会被当做”垃圾”2、 session.gc_probability 与 session.gc_divisor 合起来用来管理 gc(garbage collection 垃圾回收)进程启动的概率。默认为 1。3、 session.gc_divisor 与 session.gc_probability 合起来定义了在每个会话初始化时启动 gc(garbage collection 垃圾回收)进程的概率。

此概率用 gc_probability / gc_divisor 计算得来。例如 1/100 意味着在每个请求中有 1% 的概率启动 gc 进程。四、总结 session 的垃圾回收看来是一个概率问题,XSS平台每过一段时间用获取到的 cookie 去访问目标服务器,就是为了不让 session 文件标记为”垃圾”。这个算是我对这个 keepsession 的理解,不妥之处望大家指出。

有两个问题: 其它平台的 session 机制是否类似?如果, session 文件被标记成了”垃圾”,但是 gc 由于概率小没有启动。如果下一刻时间如果 session 文件被使用了,这个所谓的”垃圾”标记是否会被去除?五、参考 PHP运行时配置PHP: session.gc_maxlifetime vs. session.cookie_lifetime

 

原文链接:XSS平台中keepsession分析,转载请注明来源!

0