2 điểm bởi GN⁺ 2024-01-27 | 1 bình luận | Chia sẻ qua WhatsApp

Phát hiện XSS trên Chess.com

  • Trong lúc chơi cờ như một sở thích và nghịch ngợm với kỹ thuật, tôi đã phát hiện một lỗ hổng XSS trên Chess.com.
  • Chess.com là trang web cờ vua lớn nhất trên Internet với hơn 100 triệu thành viên.

Tổng quan

  • Đầu năm 2023, tôi bắt đầu hoạt động nhiều trên Chess.com.
  • Tôi rủ bạn bè đăng ký trang và dùng tính năng kết bạn để trở thành bạn ngay lập tức.
  • Tôi bắt đầu tự hỏi liệu có thể tự động thêm bạn theo cách tương tự sâu MySpace hay không.
  • Tôi tạo một tài khoản mới và kiểm tra tab Network trong công cụ dành cho nhà phát triển để tìm ra URL tự động thêm bạn.

Trung cuộc

  • Tôi thử XSS bằng trình soạn thảo văn bản phong phú TinyMCE.
  • Tôi dùng proxy Burp để chèn trực tiếp mã HTML vào phần mô tả 'About'.
  • Tôi kiểm tra cấu hình TinyMCE và tạo payload XSS bằng thuộc tính kiểu background-image.
  • Tôi thử nhiều ký hiệu khác nhau để tìm ra cách thực thi XSS.
  • Cuối cùng tôi phát triển được cách trích xuất cookie và các đối tượng JavaScript.

Tàn cuộc

  • Tôi cố gắng thực thi XSS hoàn chỉnh.
  • Tôi tìm ra một cách mới dùng thuộc tính srcset để có thể sử dụng cú pháp JS rộng hơn.
  • Tôi dùng mã hóa Base64 để thực thi trực tiếp payload XSS.
  • Trình soạn thảo TinyMCE được dùng trên toàn bộ trang nên mức độ ảnh hưởng rất lớn.

Phân tích

  • Nguyên nhân gốc của lỗ hổng là tính năng tải lại ảnh.
  • Có thể vượt qua bước kiểm tra lưu trữ ảnh bằng cách chèn tên miền của Chess.com.
  • Trình soạn thảo văn bản phong phú cho phép nhiều phần tử HTML nên rất thuận lợi để đạt được XSS.
  • TinyMCE đã ở phiên bản mới nhất, nhưng thiếu bước khử độc cho HTML đầu ra cuối cùng.
  • Chess.com cần thực hiện khử độc đối với HTML cuối cùng được hiển thị cho người dùng.

Ý kiến của GN⁺:

  1. Bài blog này mô tả rất thú vị quá trình phát hiện và báo cáo một lỗ hổng bảo mật có thể xảy ra trên một nền tảng trực tuyến quy mô lớn như Chess.com.
  2. Lỗ hổng XSS có thể là mối đe dọa nghiêm trọng đối với bảo mật website, và việc tìm ra cũng như khắc phục các lỗ hổng như vậy là rất quan trọng để bảo vệ quyền riêng tư của người dùng.
  3. Bài viết nhấn mạnh với các nhà phát triển phần mềm và chuyên gia bảo mật tầm quan trọng của việc nhận diện các lỗ hổng trong những thành phần ứng dụng web như trình soạn thảo văn bản phong phú và phòng tránh chúng.

1 bình luận

 
GN⁺ 2024-01-27
Ý kiến trên Hacker News
  • Giới thiệu về tác giả bài gốc (OP) và thông tin nền tảng

    • Là một học sinh 17 tuổi ở Anh đang học A-Levels và đang cân nhắc giữa lựa chọn vào đại học và chương trình học nghề lấy bằng.
    • Có thể xác nhận từ hồ sơ GitHub rằng đây là thành viên nòng cốt của HashPals, người tạo ra Search-That-Hash, và là người duy trì kho mã nguồn mở phần mềm miễn phí cho máy tính bảng ReMarkable.
    • Có đề cập đến việc đánh giá tích cực về lichess.org và chia sẻ các mối quan tâm kỹ thuật.
  • Bình luận về tính năng liên quan đến sâu MySpace

    • Nhắc đến sâu MySpace vào khoảng năm 2005, và tác giả cho biết khi đó mình còn chưa ra đời.
    • Chỉ ra rằng một người dùng khác đã chứng kiến và ghi lại hiện tượng có người điều khiển nước đi trong ván cờ của mình, đồng thời đã báo cáo vấn đề này cho chess.com nhưng không được xử lý.
  • Câu hỏi kỹ thuật liên quan đến lỗ hổng XSS

    • Đặt câu hỏi vì sao cookie PHPSESSID không phải là HttpOnly và vì sao lỗ hổng XSS đã được biết đến lại không được vá.
    • Thể hiện sự quan tâm đến báo cáo bug bounty về XSS và nhận thức được những khó khăn trong quá trình đó.
  • Ý kiến về trình soạn thảo rich text của chess.com

    • Phản ứng hài hước với việc gọi trình soạn thảo rich text là "chén thánh", đồng thời bày tỏ lo ngại rằng ngay cả một website lớn cũng có thể có lỗ hổng trong tính năng như vậy.
  • Câu hỏi về chữ viết tắt kỹ thuật

    • Hỏi về ý nghĩa của "OSRF" và suy đoán rằng nó có thể là "Own-Site Request Forgery", tương tự như CSRF.
  • Câu hỏi kỹ thuật liên quan đến chuyển hướng subdomain

    • Yêu cầu giải thích việc chuyển hướng từ subdomain (chess.com.foo.bar) đã vượt qua chính sách cùng nguồn gốc (same-origin policy) như thế nào.