Tắt Quảng Cáo [X] Đăng Nhập để ẩn Tất Cả Quảng Cáo Lâu lắm rồi không viết PoC về Meta (Facebook ) bug bounty Đây sẽ là bài viết mô tả lỗ hổng bảo mật mà mình đã tìm thấy đầu năm 2022, bao gồm 1 report gốc và 1 report Incomplete Fix report gốc Lỗ hổng này hiểu đơn giản là > Trong một trường hợp cụ thể, kẻ tấn công có thể xác định được **chủ sở hữu của bài viết ẩn danh** trong một nhóm ( group ) mà không cần bất kỳ vai trò gì ( tất nhiên attacker phải ở trong group nếu là group riêng tư ) ( In a specific case, it was possible to determine anonymous post owner in a group ) Chức năng này được hiểu nếu 1 người đăng bài viết trong group dưới dạng ẩn danh, thì chỉ admin hay kiểm duyệt viên mới biết được ai là chủ sở hữu của bài viết ẩn danh này. ( anonymous post ) Bằng cách kiểm tra xem ID_userA có phải là chủ sở hữu bài viết ID_postA, nếu kết quả phản hồi từ server trả về là null thì UserA chính là chủ sở hữu bài viết postA đó, ngược lại thì không phải. Video PoC: Sau đây là chi tiết về kỹ thuật. ``` Với variables={"displayCommentsFeedbackContext":null,"displayCommentsContextEnableComment":true,"displayCommentsContextIsAdPreview":false,"displayCommentsContextIsAggregatedShare":false,"displayCommentsContextIsStorySet":null,"feedLocation":"CREATOR_STUDIO_INSPIRATION_HUB","feedbackSource":0,"focusCommentID":null,"privacySelectorRenderLocation":"CREATOR_STUDIO_INSPIRATION_HUB","scale":1.5,"useDefaultActor":false,"storyID":"100007060651674_613891156361680","renderLocation":"creator_studio_inspiration_hub","UFI2CommentsProvider_commentsKey":null} và doc_id=4742821395755197 ``` Lỗ hổng được phát hiện như sau: tham số "storyID":"100007060651674_613891156361680" với cú pháp: "storyID":"[ID_USER_cần_xác_định]_[ID_BÀI_VIẾT_ẨN_dANH]" ví dụ ta cần xác định xem UserA có phải chủ sở hữu bài viết ẩn danh 61389115636168, hoặc UserB, UserC,.... thì ta sẽ thay lần lượt như sau: "storyID":"ID_UserA_613891156361680" "storyID":"ID_UserB_613891156361680" "storyID":"ID_UserC_613891156361680" "storyID":"ID_UserD_613891156361680" ... Sau đó submit lần lượt lên server, nếu request tương ứng với User nào mà response trả về "story":null, thì User đó chính là chủ sở hữu bài viết ẩn danh. Bounty: $$$$ ====================================== Incomplete Fix: report gốc Sau vài ngày, facebook đã fix lỗ hổng trên, ngay sau đó mình tìm ra những điểm khả nghi khác trong response trên cùng request, cũng có thể xác định được chủ sở hữu bài viết ẩn danh. Ngay sau đó mình cũng submit cho họ. Lần này thì bug được mô tả như sau: > Bằng cách xác định độ dài tham số encrypted_tracking được trả về, nếu như là chủ sở hữu bài viết ẩn danh thì độ dài chuỗi sẽ >=408, còn ngược lại nếu không phải chủ sở hữu bài viết ẩn danh đó, độ dài chuỗi chắc chắn sẽ là 280. Video PoC: Với doc_id và variables tương tự như report gốc Bounty: $$$$ ==================================== Với 2 bug trên và vài bug khác, mình đã lên được Hall of Fame của Meta 2022, với thứ hạng là 7 ( kể từ lúc viết bài ). ( Vui lòng đăng kí hoặc đăng nhập để thấy liên kết tại BigMMO ) Đồng thời cũng đạt được rank vàng Cảm ơn mọi người đã dành thời gian đọc bài viết này..... #j2team_share
Lỗi về bảo mật mà tình cờ phát hiện ra khi thao tác chứ không trực tiếp đụng tới code thì làm sao report ạ? Nó cũng không dễ dàng gì thực lại bởi chỉ khi bị check point bắt đổi pass mới làm được. Nhiều khi muốn report lỗi mình nói này cho FB fix luôn nhưng một phần cũng lười do chưa biết cách report và một phần lại thấy nó có lợi với mình