DVWA-9.Weak Session IDs

大约

了解会话 ID 通常是在登录后以特定用户身份访问站点所需的唯一内容,如果能够计算或轻松猜测该会话 ID,则攻击者将有一种简单的方法来访问用户帐户,而无需暴力破解密码或查找其他漏洞,例如跨站点脚本。

目的

该模块使用四种不同的方法来设置 dvwaSession cookie 值,每个级别的目标是弄清楚 ID 是如何生成的,然后推断其他系统用户的 ID。

low level

cookie 值应该非常明显地可预测。

源码解析:

这段代码是PHP语言编写的,用于在用户访问网站时创建和设置一个名为dvwaSession的cookie。当用户访问网站时,选择的请求方法是“POST”,代码会检查是否已经设置了一个名为“last_session_id”的会话变量,如果没有,则设置成0。然后,代码会自增last_session_id的值,并将它赋值给cookie。最后,通过使用PHP内置函数setcookie()设置cookie。

注:代码中使用的SESSION及COOKIE需要在之前的代码中进行声明或初始化。

DVWA-9.Weak Session IDs_第1张图片

每次点击generate,会获取当前的session,并将其值加1,这种方式明显不安全。

中级

该值看起来比低值更随机,但如果您收集一些,您应该开始看到一种模式。可见,源码为获取用户操作时的时间来作为dvwaSession。


 源码解析:当用户访问网站时,选择的请求方法是“POST”,代码将使用PHP内置函数time()获得系统当前时间戳,并将其赋值给cookie。最后,通过使用PHP内置函数setcookie()设置cookie。

DVWA-9.Weak Session IDs_第2张图片

高水平

首先确定值的格式,然后尝试找出用作生成值的输入的内容。

Cookie 中还添加了额外的标志,这不会影响挑战,但突出显示了可以添加的额外保护以保护 Cookie。


解析:代码将首先检查是否已经设置了一个名为“last_session_id_high”的会话变量,如果没有,则将其设置为0。然后,代码会自增last_session_id_high的值,并将其通过使用MD5算法处理后赋值给cookie。

通过使用setcookie()函数设置cookie时,该函数允许传递多个参数:

1. 第一个参数是cookie的名称“dvwaSession”。
2. 第二个参数是cookie的值,即通过 MD5 处理后的last_session_id_high的值。
3. 第三个参数是cookie的过期时间,该参数值为当前时间增加1小时,即time()+3600。
4. 第四个参数是cookie作用路径,“/vulnerabilities/weak_id/”表示只对当前网址下/vulnerabilities/weak_id/目录下的网页有效,其他网页无效。
5. 第五个参数是cookie作用域,指定可以访问该cookie的主机名,通过使用$_SERVER['HTTP_HOST']获取当前主机名。
6. 第六个参数是一个可选的布尔值,如果设置为true,则表示将cookie仅通过HTTPS协议发送。
7. 第七个参数是一个可选的布尔值,如果设置为true,则表示将cookie标记为仅通过HTTP协议发送,即无法通过JavaScript访问该cookie。

DVWA-9.Weak Session IDs_第3张图片

不可能的水平

在此级别,cookie 值不应可预测,但请随时尝试。

除了额外的标志外,cookie 还与域和挑战路径相关联。


解析:

这段代码是PHP语言编写的,用于在用户访问网站时创建和设置一个名为dvwaSession的cookie。当用户访问网站时,选择的请求方法是“POST”,代码将使用PHP内置函数mt_rand()生成一个随机整数,并与当前时间戳和字符串"Impossible"混合并处理。然后,使用SHA1算法处理该值,并将结果将其赋值给cookie。

通过使用setcookie()函数设置cookie时,该函数允许传递多个参数:

1. 第一个参数是cookie的名称“dvwaSession”。
2. 第二个参数是cookie的值,即使用SHA1算法处理的随机值。
3. 第三个参数是cookie的过期时间,该参数值为当前时间增加1小时,即time()+3600。
4. 第四个参数是cookie作用路径,“/vulnerabilities/weak_id/”表示只对当前网址下/vulnerabilities/weak_id/目录下的网页有效,其他网页无效。
5. 第五个参数是cookie作用域,指定可以访问该cookie的主机名,通过使用$_SERVER['HTTP_HOST']获取当前主机名。
6. 第六个参数是一个可选的布尔值,如果设置为“true”,则表示将cookie仅通过HTTPS协议传输。
7. 第七个参数是一个可选的布尔值,如果设置为“true”,则表示将cookie标记为仅通过HTTP协议发送,即无法通过JavaScript访问该cookie。

注:代码中使用的COOKIE需要在之前的代码中进行声明或初始化。

DVWA-9.Weak Session IDs_第4张图片

你可能感兴趣的:(安全测试,php,开发语言,安全测试)