0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Khám Phá Hai Lỗ Hổng XSS: Hành Trình Từ Open Redirect Đến Reflected XSS Và Chiến Thắng Với 100€

Đăng vào 3 tuần trước

• 3 phút đọc

Tóm Tắt

Chào mọi người! Hôm nay mình muốn chia sẻ về một hành trình săn lỗi bảo mật đầy thú vị, trong đó mình vừa được chấp nhận hai lỗ hổng Reflected XSS trên nền tảng Intigriti. Câu chuyện không chỉ đơn thuần là tìm lỗi, mà còn là một chút 'may mắn' khi mình khám phá ra cách để nâng cao tác động của lỗi và nhận được bounty xứng đáng. Hãy cùng mình tìm hiểu chi tiết nhé!


1. Cơ Duyên Đến Với Các Chương Trình Bug Bounty Private

Sau khi nhận được khoản bounty khá lớn (1000€ cho lần báo lỗi trước), Intigriti đã mời mình tham gia vào nhiều chương trình private. Mình cảm thấy hơi choáng ngợp vì số lượng lựa chọn. Cuối cùng, mình quyết định chọn một chương trình có thể dễ dàng khai thác mà không cần đăng nhập (unauthenticated), giúp tiết kiệm thời gian.

2. Recon: Chuẩn Bị Trước Khi Săn Lỗi

Mình bắt đầu bằng một vài bước recon cơ bản với những lệnh đơn giản như sau:

  • subfinder để tìm kiếm subdomain
  • httpx để kiểm tra trạng thái và giao thức của các URL
  • gauwaybackurls để tìm kiếm các URL từ các nguồn lưu trữ khác nhau

Qua công tác này, mình tìm thấy một URL có dạng: https://sub.redacted.com/signup?redirectTo=/login. Ngay lập tức, ý tưởng hiện lên trong đầu: Tại sao không thử tìm lỗi Open Redirect trước nhỉ?

3. Khai Thác Lỗi Open Redirect

Mình lập tức thử một payload đơn giản cho lỗi Open Redirect:

Copy
?redirectTo=https://fb.com

Sau khi hoàn tất việc đăng ký tài khoản, trang web đã chuyển hướng mình tới https://fb.com thành công. Rõ ràng, lỗi Open Redirect đã được khai thác thành công.

4. Ý Tưởng Nâng Cao Tác Động: Từ Open Redirect Sang XSS

Tuy nhiên, lúc này mình nghĩ rằng chỉ báo cáo lỗi open redirect thì chỉ được đánh giá ở mức 'low', khi mà bounty của tier 2 cho lỗi này chỉ có 25€. Để tìm kiếm giá trị hơn, mình muốn nâng cao tác động lên thành XSS. Thông thường, lỗi open redirect có thể được mở rộng thành XSS với payload javascript:alert().

Do đó, mình thử luôn với payload sau:

Copy
?redirectTo=javascript:alert()

Và... thành công! Lỗi XSS đã được khai thác.

5. Khám Phá Lỗi XSS Thứ Hai Ở Endpoint Đăng Nhập

Tuy nhiên, mình vẫn chưa dừng lại ở đó. Khi thực hiện đăng nhập thông thường, chưa có gì xảy ra, nhưng bỗng nhiên mình nghĩ: Tại sao không thử biến tham số redirectTo tại endpoint /login? Vậy là ngay lập tức mình thử nghiệm với payload đó ở /login, và... bùm! Thêm một lỗ hổng XSS nữa xuất hiện. Lúc này, mình nhanh chóng viết báo cáo và nộp cả hai lỗi cùng một lúc.

Thành Quả

Sau gần một ngày chờ đợi, lỗi đã được pending và đội ngũ triage thông báo rằng vendor đang xem xét sẽ phản hồi sớm nhất có thể. Sau khoảng gần 5 ngày nữa, mình đã nhận được kết quả xứng đáng.


Tổng Kết

Hành trình săn bug này mặc dù ngắn nhưng đầy những bất ngờ và đem lại nhiều niềm vui. Chỉ với một chút thử nghiệm đơn giản và nhạy bén trong việc nâng cao mức độ nghiêm trọng của lỗi, mình đã thu được hai lỗi XSS được chấp nhận trên nền tảng Intigriti. Hy vọng những chia sẻ của mình sẽ hữu ích cho các bạn trong quá trình săn bug của mình!

Nỗ lực hết mình để có mặt trong top 100!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào