学徒-不安全的直接对象引用-静态文件引用
# 实验室:不安全的直接对象引用
# 题目
此实验室将用户的聊天记录 直接存储在服务器文件系统上,并通过静态 URL 来检索它们。
若要解决实验室问题,请查找用户carlos
的密码并登录其帐户。
- 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/access-control/lab-insecure-direct-object-references
bgColor: '#001350'
textColor: '#39d50c'
1
2
3
4
5
6
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 通过 IDOR 漏洞获取其他用户的聊天记录,查找用户 carlos 的密码并登录其账户。
点击 “ACCESS THE LAB” 进入实验室。

实验室首页如下。
点击右上角的 “Live chat” 进入在线聊天页面。

在输入框中输入内容,然后点击 “Send” 即可发送对话。

发送上限是两次,两次过后就不能继续发送了。
点击 “View transcript” 可以下载本次的对话记录,下载的文件扩展名为.txt
。

在 BurpSuite 捕获这个下载的请求数据包。
第一个数据包,用于传递对话内容,然后跳转到文件地址。

第二个数据包,获取记录的文件内容。

在3.txt
之前,我还创建了一个2.txt
。
尝试将数据包中的 3.txt 修改为 2.txt ,访问成功,响应返回了 2.txt 的聊天记录。

尝试访问1.txt
文件,访问成功,这是 carlos 用户与机器人的聊天记录。
对话的大致内容是 “该用户忘记了密码,然后将某个密码发给机器人,让机器人判断这个密码是不是他当前的密码,机器人说是的 这就是你当前的密码” 。
从对话内容中获得密码snmjyx11wyl7hsa6yozj
。

来到登录界面,输入用户名 carlos 以及刚刚获得的密码snmjyx11wyl7hsa6yozj
,然后进行登录。

登录成功,实验完成。

(废话好奇心时间)
访问一个不存在的文件会发生什么?会获得信息 “没有找到记录” 。

编辑 (opens new window)