许多应用程序使用标准的cookie机制传输会话令牌,这样可直接确定哪些数据包含令牌。然而,在其他情况下,可能需要进行一番探测才能找到令牌。
(1)应用程序常常使用几个不同的数据共同表示一个令牌,包括cookie、URL参数和隐藏表单字段。其中一些数据可用于在不同的后端组件中维护会话状态。如果没有得到确认,不要想当然地认为某个特殊的参数就是会话令牌,或者只使用一个数据追踪会话。
(2)有时,一些数据似乎是应用程序的会话令牌,其实并非如此。具体来说,由Web服务器或应用程序平台生成的标准会话cookie可能存在,但实际并不被应用程序使用。
(3)用户通过验证后,观察浏览器收到哪些新数据项。应用程序通常会在用户通过验证后建立新的会话令牌。
(4)为确定应用程序到底使用哪些数据项作为令牌,找到一个确信依赖会话的页面(如某一名用户的“用户资料”页面),并向它提出几个请求,系统性地删除疑似被用作令牌的数据。如果删除某个数据后,应用程序不再返回会话依赖页面,即可确定该数据可能为会话令牌。Burp Repeater是执行这类测试的有效工具。