DVWA Weak Session IDs

本文探讨了Web应用中的会话标识概念,涉及cookie、Senssion和token的区别,以及session的使用、MD5在生成会话标识中的作用。还介绍了针对DVWA的弱点利用方法,如修改cookie实现免密码登录。最后提到MD5的单向加密特性及其在防止预测性会话标识中的应用。
摘要由CSDN通过智能技术生成

目录

会话标识

概念

session的使用

总结

DVWA

LOW

源码分析

步骤

MEDIUM 

 源码分析

HIGH 

源码分析

MD5

概念

特点

步骤


cookie,senssion,token的概念区别: 

https://blog.csdn.net/2201_75843485/article/details/133324256

会话标识

概念

在 Web 应用程序中,会话标识是一种用于识别用户的机制,通常存储在客户端(通常是作为 cookie)和服务器之间。会话标识用于维护用户与应用程序之间的状态信息,以便在用户与应用程序之间的多次请求之间保持用户的身份和状态

session的使用

  1. 用户访问网站: 当用户使用其浏览器访问网站时,服务器会创建一个唯一的会话标识,通常称为 Session ID

  2. Session ID 的创建

    • 服务器生成一个随机的 Session ID,通常是一个长字符串,可以包含数字和字母。
    • 这个 Session ID 通常会与用户相关联,以便在服务器端跟踪用户的状态和会话数据。
  3. Session ID 存储

    • 服务器将 Session ID 存储在服务器端,通常在内存中或数据库中。
    • 服务器将 Session ID 发送给用户的浏览器,通常通过 Cookie。
  4. Cookie 存储

    • 浏览器收到 Session ID 后,通常会将其存储在 Cookie 中。
    • Cookie 会在后续的请求中被浏览器自动发送到服务器。
  5. 使用 Session

    • 当用户与网站互动时,服务器可以使用 Session ID 来查找或创建与用户关联的会话数据。这些数据可以包括用户的登录状态、购物车内容、个人偏好等。
    • 服务器可以通过 Session ID 来检索或更新会话数据,以便向用户提供个性化的体验。
  6. Session 超时和终止

    • 为了确保安全性和资源管理,会话通常会有一个超时时间,如果用户在一段时间内没有活动,会话可能会被自动终止。
    • 用户也可以手动注销,终止会话。

总结

用户第一次通过浏览器访问服务器,登录后,服务器会建立一个session,包含用户信息,保存在服务器内,服务器会将session返回给浏览器和用户,用户将session保存在cookie里。用户以后都会携带含session的cookie访问该服务器,服务器就知道是哪个用户了,不用再次登录。

DVWA

这道题关键就是我们修改了cookie的值,实现免密码登录。

需要先在火狐浏览器下载个hackbar插件

LOW

源码分析

  • 检查是否存在last_session_id,不存在就置0,存在就加一
  • 然后将其作为session,存入cookie

步骤

先用brup抓包

用上面的post构造url:http://127.0.0.1/vulnerabilities/weak_id/ 

复制cookie,先清除浏览器的cookie

将Burp Suite或其他代理工具的Cookie复制到Hackbar(Burp Suite的一个组件)中时,清除浏览器的Cookie通常是为了确保你在登录DVWA时使用的是代理工具捕获的Cookie,而不是浏览器保存的Cookie

如果Cookie名称在浏览器中与代理工具(如Burp Suite)中使用的名称相同,浏览器中存储的Cookie会覆盖代理工具中的Cookie。这可能导致代理工具中捕获的Cookie失效,因为浏览器的Cookie具有更高的优先级

 然后打开一个空白页面,打开hackbar,输入URL,把cookie复制进去,然后点击excute,就能实现无账号密码登录

MEDIUM 

 源码分析

用时间来为session赋值

时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。

时间格式 = 真实时刻(时间戳)+所处位置(时区) 

时间戳生成工具https://tool.lu/timestamp/

用这个工具获取当前的时间戳,然后将dvwaSession =/*时间戳*/加入cookie中,剩下的过程跟LOW一样

  

HIGH 

源码分析

MD5

MD5算法全解析_md5解析-CSDN博客

单向加密算法

在介绍MD5算法前,很有必要解释一下单向加密算法。单向加密,人如其名,就是只能单向对明文进行加密,而不能逆向通过密文得到明文。该算法在加密过程中,在得到明文后,经过加密算法得到密文,不需要使用密钥。因为没有密钥,所以就无法通过密文得到明文。

概念

MD5,全称为 "Message Digest Algorithm 5",是一种广泛使用的哈希函数(散列函数)。它的主要目的是将输入数据转换成一个固定长度的散列值,通常是128位(16个字节),是计算机安全领域广泛使用的一种散列函数,用于确保信息传输的完整性。MD5是一种单向函数,这意味着可以轻松地将输入转换为散列值,但无法将散列值还原为原始输入(是一种单向加密算法,一种不可逆的加密方式)。 

特点
  1. 固定长度输出:MD5 始终生成128位(16字节)长度的散列值。无论输入数据的大小如何,输出的散列值长度是固定的。

  2. 快速计算:MD5 是一种高效的哈希算法,计算速度较快,适合用于大量数据的哈希计算。

  3. 冲突问题:MD5 哈希算法存在冲突问题,即不同的输入数据可能会生成相同的散列值。这意味着不同的输入可以产生相同的 MD5 散列,尽管这在密码学应用中是不可接受的。

在源码中,MD5的使用是用来生成会话标识的一种方式。

  1. $_SESSION['last_session_id_high'] 存储了一个整数,它被用作计数器来生成不同的会话标识。

  2. md5($_SESSION['last_session_id_high']) 这一行代码将 $_SESSION['last_session_id_high'] 的值作为输入,使用MD5哈希算法来生成一个固定长度(通常是32字符)的散列值。

  3. 这个散列值被用作会话标识,并存储在名为 "dvwaSession" 的Cookie中。每次用户提交POST请求时,$_SESSION['last_session_id_high'] 会递增,生成一个新的MD5散列值,作为会话标识。

这个机制的目的是在每次用户提交POST请求时,会生成一个不同的会话标识,以增加会话的随机性。通过使用MD5哈希算法,会话标识变得更难以预测,因为MD5会将输入转换为一串看似随机的字符。

步骤

抓包发送,然后解密

用的是这个网站md5解密 MD5在线解密 破解md5 

再抓一遍

递增的

接下来跟LOW一样,伪造playload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值