某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

    • 实验室做题记录
    • 服务器端

      • SQL注入

      • 身份验证

        • 学徒-用户名枚举-不同的响应
        • 从业者-用户名枚举-响应的细微差异
        • 从业者-用户名枚举-响应的时差
        • 从业者-暴力破解防护-IP锁定机制
        • 从业者-暴力破解防护-账户锁定机制
        • 专家-暴力破解防护-一个请求多个凭据
        • 学徒-双因素身份验证-2FA简易绕过
        • 从业者-双因素身份验证-2FA逻辑缺陷
        • 专家-双因素身份验证-通过暴力攻击绕过2FA
        • 从业者-保持用户登录-对保持登录的Cookie进行暴破
          • 题目
          • 实操
            • 正常的登录流程
            • 编码测试 && 字典制作
            • 暴破 stay-logged-in Cookie
        • 从业者-保持用户登录-离线密码破解
        • 学徒-密码重置-破坏重置逻辑
        • 从业者-密码重置-中间件投毒
        • 从业者-密码更改-密码暴力破解
      • 目录遍历

      • OS命令注入

      • 业务逻辑漏洞

      • 信息泄露

      • 访问控制

      • 文件上传漏洞

      • SSRF漏洞

      • XXE注入漏洞

    • 客户端

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 服务器端
  • 身份验证
clincat
2023-05-23
目录

从业者-保持用户登录-对保持登录的Cookie进行暴破

# 实验室:对保持登录状态的 Cookie 进行暴力破解

# 题目

此实验室允许用户 即使在关闭浏览器会话后,也能保持登录状态。用于提供此功能的 Cookie 容易受到暴力破解的攻击。

要解决实验室问题,请暴力破解 carlos 的 Cookie 并访问他的账户页面。

  • 你的凭据:wiener:peter
  • 受害者的用户名:carlos
  • 密码候选列表 (opens new window)

实验室-从业者

对保持登录状态的 Cookie 进行暴力破解 >>

- name: 实验室-从业者
  desc: 对保持登录状态的 Cookie 进行暴力破解 >>
  avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
  link: https://portswigger.net/web-security/authentication/other-mechanisms/lab-brute-forcing-a-stay-logged-in-cookie
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

根据题意,可得实验目标:

  • 该实验室存在 “保持用户登录” 的功能,该功能通过某种加密方式,将用户信息保存在 Cookie 当中。
  • 请对 Cookie 进行暴力破解,推断出它的加密方式。
  • 得出加密方式后,伪造 carlos 用户的身份信息,并访问其账户页面。

点击 “Access the lab” 进入实验室。

点击 “My account” 进入登录页面。

# 正常的登录流程

我们先进行一次正常的登录流程,看下会经过哪些操作。

启用浏览器代理,输入用户名和密码wiener:peter,并勾选 “Stay logged in” ,然后进行登录操作。

BurpSuite 不需要启用拦截,起到一个监控作用。

登录成功之后,会分配 2 个 Cookie ,

  • 一个是正常的 Cookie,
  • 另一个是用于保持登录的 “remember me” Cookie 。

复制 stay-logged-in 的参数值,然后使用 BurpSuite 自带的解码功能,解码之后可以看到 明文的用户名 + 密文的密码。

使用在线md5解密平台 (opens new window)对密码进行解码,可以看到明文的 peter 。

由此得出 “remember me” Cookie 的加密方式为:base64(用户名:md5(密码)) 。

# 编码测试 && 字典制作

知道了 Cookie 的加密方式之后,可以自己尝试一下加密操作,看看最后的字符串是否相同。

我们可以使用 Python 来进行简单的实现:

看到上图的加密结果,与 BurpSuite 数据包中的字符串一致,说明我们实现了正确的加密。

Python 代码:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

# By clincat
import hashlib

password = 'peter'                          # 原字符串

hl = hashlib.md5(password.encode('utf-8'))  # 创建md5对象并进行哈希

print('before: ' + password)
print('after: ' + hl.hexdigest())           # 打印哈希值的十六进制字符串
1
2
3
4
5
6
7
8
9
10
11
12

我们需要构造一个用户名:md5(密码)格式的字典,用于暴破 Cookie ,这同样可以使用 Python 实现:

运行以下代码,然后在命令行中输入 原密码字典 的文件存储位置,将会得到相应格式的文本。

Python 代码:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

# By clincat
import hashlib

filename = input('请输入字典文件路径: ')          # 输入密码字典路径
filename = filename.replace('\\', '/')          # 路径处理, 将反斜杠 \ 替换为 /

f = open(filename, 'r', encoding='utf-8')       # 打开文件

passwords = f.readlines()                       # 读取每一行
for password in passwords:
    password = password.rstrip('\n')            # 将每一行的换行符 \n 去除
    hl = hashlib.md5(password.encode('utf-8'))  # 进行 md5 编码
    print('carlos' + ':' + hl.hexdigest())      # 输出结果

f.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

新建 .txt 文件,将命令行输出的文本内容 保存到文件当中。

随机挑选一个加密后的密码,进行 md5 解码操作,确保加密结果无误(验算)。

# 暴破 stay-logged-in Cookie

抓取一个 GET /my-account 的数据包,添加Cookie: stay-logged-in=xxx标头,此时登录失败,说明 Cookie 不正确。

使用 Intruder 功能,将 “stay-logged-in” 的值添加到选区。

导入上一步生成的用户名:md5(密码)字典,但是先别攻击,因为我们还需要 Base64 编码。

选择 “Payload processing --> Add --> Encode --> Base64-encode --> OK” 。

启用该功能后,将自动对 Payload 进行 Base64 编码,形成base64(用户名:md5(密码))的格式。

一切准备就绪,点击 “Start attack” 开始攻击。

对攻击结果进行排序,发现异常条目。

对异常数据包的 Cookie 进行解码,获得用户名和密码carlos:monitor。

回到登录页面,进行登......?提示已经完成了,看来不需要手动登录。

至此,实验完成。

我不管,就是要登录。

编辑 (opens new window)
专家-双因素身份验证-通过暴力攻击绕过2FA
从业者-保持用户登录-离线密码破解

← 专家-双因素身份验证-通过暴力攻击绕过2FA 从业者-保持用户登录-离线密码破解→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式