SessionID漏洞
漏洞原理
- 当用户第一次访问服务程序时,服务器端会给用户创建一个独立的会话
Session
并且生成一个SessionID
。 SessionID
在响应浏览器的时候会被加载到cookie
中,并保存到浏览器中。- 当用户再一次访问服务程序时,请求中会携带着
cookie
中的SessionID
去访问服务器。 - 服务器会根据这个
SessionID
去查看是否有对应的Session
对象,有则使用,没有就新创建一个Session
。
漏洞介绍
- 如果
SessionID
的构造原理太简单,就很容易被别人仿造。 - 仿造了
SessionID
之后应用到cookie
,即可无登录访问被害者服务。
漏洞复现
- 使用
DVWA
靶场的Weak Session IDs
作为演示场景。
Low
代码
审计
- 使用
POST
上传参数时候,设置SessionID
。 - 若设置过,则使用上一次的
SessionID
直接+1
,若未设置,则初始化为0
。 - 这样的
SessionID
太过简单,并且很容易冲突,无法标识单一个体。
攻击
-
找到每次
dvwaSession
的变化规律,使用BurpSuite
抓包查看dvwaSession
。 -
使用他人的
dvwaSession
以及其他cookie
内容,尝试删除cookie
后登录。 -
能够登录,说明
cookie
构造成功(虽然是自己已经看到的)。
Medium
代码
审计
- 使用时间函数获取当前时间作为
cookie
,故同一时间的会话将会发生冲突。 - 其余设置同
Low
。
time( ) : int 返回当前的
GMT
时间,即Unix
纪元起到现在的秒数。
攻击
-
使用时间戳在线转换器构造时间点,诱骗受害者在该时间点击,形成
SessionID
碰撞(感觉不太可能)。 -
或者在受害者最近一次登录后,通过获取其登入时间点,构造时间戳。
-
使用预测的
dvwaSession
登入即可。
High
代码
审计
- 基本内容同
Low
,在累加的基础上增加了md5
加密。
setcookie( string
$name
, string$value
= "" , int$expires
= 0 , string$path
= "" , string$domain
= "" , bool$secure
=false
, bool$httponly
=false
) : bool 即定义一条cookie
,名为name
,值为value
,失效期为expires
(GMT
时间),path
为有效的服务器路径,domain
为有效的域名,secure
表示是否建立HTTPS
连接,httponly
表示是否只通过HTTP
协议访问。
攻击
-
获取现有
dvwaSession
后,使用网上的md5在线加解密工具得到明文。 -
找到明文规律后,构造
dvwaSession
实现无登录访问。
漏洞防御
- 使用
DVWA
的Impossible
级别进行审计。
代码
审计
- 使用
SHA1
加密,使得SessionID
难以破译。 - 明文内容为随机数+
GMT
时间+字符串,增加了伪造的难度。 - 但仍存在
SessionID
冲突的情况。
sha1( string
$string
, bool$binary
=false
) : string计算字符串的SHA-1
散列,binary
为TRUE
时为二进制,FALSE
时为十六进制。mt_rand( int
$min
, int$max
) : int 使用Mersenne Twister的算法生成随机数,若有参数则介于min
和max
,若无参数则生成0
到mt_getrandmax()之间的随机数。
__EOF__

本文链接:https://www.cnblogs.com/cheuhxg/p/14473131.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix