Thứ Bảy, 23 tháng 5, 2020

Stored XSS account takeover

Tinhte.vn chắc khá quen thuộc với anh em trong làng công nghệ ở VN, mình cũng hay xem tin tức ở trang này. Hôm nay mình sẽ trình bày cách mình đã mượn tạm tài khoản admin “cuhiep” như thế nào 😅
Tinhte.vn account takeover
Bạn nào chưa biết về Cross-site scripting (XSS) có thể tham khảo ở trang này: https://portswigger.net/web-security/cross-site-scripting
Trước khi viết bài này, mình đã gửi vài report nhỏ nhỏ khác cho tinhte, hôm nay dạo lại một vòng lanh quanh các chức năng đang có trên website để xem có phát hiện nào không. (A few moment later) mình thấy chức năng post bài có chèn background để trang trí cho đẹp, thử post đoạn text demo:
Intercept request, nội dung body có đoạn:
Tham số “post_body” đang dùng theo dạng BBCODE, giá trị cho background photo là một url. Thử view-source của những bài post khác và search keyword: “thread_background_url”. Tìm thấy trong code họ in ra giá trị của “post_body”, tại đây mình xác định victim có khả năng bị stored XSS:
Quay lại nội dung intercept request lúc nãy, thay đổi nội dung của “post_body” thành: [meta=]
Submit post và xem kết quả, victim dính Stored XSS 😍
Code của “attacker” đơn giản là một đoạn javascript lấy cookies từ trình duyệt của user đã đăng nhập vào website và gửi về cho attacker.
Việc tiếp theo là tìm một topic nào đó trên website thu hút nhiều người xem (trong đó những user thuộc các group như Admin, Mod…sẽ ra vào xem bài thường xuyên) , post comment kèm XSS script rồi…ngồi chờ kết quả 🥳
Attacker got admin cookies
Tinhte sử dụng cookie có dạng “tt_user=id,token” (admin cuhiep có id là 3). Sau khi có được cookie của account admin, chỉ cần replace vào browser & refresh là bạn sẽ biến hình thành trùm cuối 😋
Bài viết này được viết sau khi đã report và tinhte đã đồng ý cho public nội dung. Thanks for reading!

Không có nhận xét nào:

Đăng nhận xét