Mình đã khiến các researcher đi sau phải lau nước mắt như thế nào?

0 0 0

Người đăng: Bách Trần

Theo Viblo Asia

Summary

Hello mọi người, lại là mình đây! Đợt vừa rồi, mình vừa có một hành trình "cày bug" đầy thú vị trên Intigriti. Không phải mình muốn khoe, nhưng lần này mình đã tìm được tận 5 lỗi Unrestrict File Upload ở các API khác nhau của cùng một hệ thống! Kết quả? Công ty không chỉ sửa lỗi mà còn cập nhật cả Out of Scope để bỏ qua các lỗi tương tự trong tương lai. Nghe thú vị đúng không? Cùng mình ngồi xuống, làm một ly cafe và khám phá hành trình này nhé!


Hành Trình Tìm Lỗi – Khi Một Lỗ Hổng Dẫn Đường

Vẫn là phương châm:

Biết mình biết ta, trăm trận trăm thắng

Mình đã ngồi tìm hiểu tất cả các chức năng của hệ thống, list ra các chức năng của nó. Việc hay nhất là mình có một cái Threat modeling đơn giản nhằm tối ưu thời gian tìm lỗi của mình. (Nếu mọi người thấy hay, có thể comment vào bài viết để mình chia sẻ nhé!)

Bắt tay vào tìm lỗ hổng thôi!

Nhìn vào threat modeling thì mình thấy được rằng nên bắt đầu từ đâu, đó là các lỗ hổng đơn giản trước: XSS, SQLi, Invalid input... Và lỗ hổng lần này khá thú vị. Về cơ bản, hệ thống đã không kiểm tra chặt chẽ loại file được upload, cho phép mình "vượt rào" và tải lên những file không được phép như script thực thi hoặc file độc hại.

Câu chuyện bắt đầu khi mình phát hiện ra một endpoint upload file. Nhưng mà có điều là ở FE thì việc kiểm tra rất tốt, nếu không hợp lệ sẽ bị loại, còn hợp lệ thì sẽ thực hiện 2 request lên hệ thống là:

  1. Tải lên thông tin của tệp như tên, id, địa chỉ upload. Kỳ lạ ở bước này đổi tên file thành gì cũng được vẫn ok !?!
  2. Ở bước 1 sẽ không tải lên kèm data, ở request 2 này thì mới tải lên file, và lúc này là lúc để chúng ta bypass (thay đổi nội dung file, content-type...)

Thấy cơ hội, mình thử nghiệm và thành công tải lên một file PHP đơn giản. File được chấp nhận và lưu lại trên hệ thống mà không gặp bất kỳ hạn chế nào. Một cảm giác "ngọt ngào" dâng trào khi mình nhận ra đây là một lỗi tiềm năng. Và rồi, mình quyết định mở rộng phạm vi:

  • Kiểm tra các API upload khác.
  • Áp dụng mẹo tương tự để thử tải file độc hại lên.
  • Kết quả? Bùm! Thêm 4 lỗi tương tự ở các API khác nhau!

Triage: Khi Báo Cáo Nhiều Đến Mức Công Ty Phải Đổi Scope

Khi gửi báo cáo đầu tiên, mình nhận được phản hồi rất nhanh, còn chả thèm nhắn gì luôn:
image.png

Đầy tự hào, mình tiếp tục gửi báo cáo thứ hai, thứ ba, và rồi... đến báo cáo thứ năm. Mỗi lần gửi, mình đều nhận được phản hồi kiểu:

"Lại lỗi tương tự hả? Cảm ơn bạn vì đã giúp chúng tôi phát hiện vấn đề ở những endpoint khác."

Đến lúc này, mình bắt đầu cảm thấy như mình đang làm QA nội bộ cho công ty. Và quả thật, công ty không chỉ sửa lỗi mà còn quyết định thay đổi Out of Scope để chặn trước các lỗi tương tự trong tương lai.

image.png)


Out of Scope: Khi Lỗi Của Bạn Trở Thành Cột Mốc

Với nhiều người, việc một lỗi bị đưa vào Out of Scope có thể là điều đáng buồn. Nhưng với mình, đây lại là một khoảnh khắc đáng tự hào. Tại sao ư? Vì điều đó chứng minh rằng những phát hiện của mình đã tạo ra thay đổi thực sự trong chính sách bảo mật của công ty.


Bài Học Rút Ra

  1. Kiểm tra mọi ngóc ngách: Đôi khi, một lỗi ở một endpoint có thể tồn tại ở nhiều endpoint khác. Hãy kiểm tra tất cả!
  2. Đừng ngại gửi nhiều báo cáo: Miễn là lỗi hợp lệ, bạn đang giúp công ty cải thiện bảo mật của họ.
  3. Chill dù được gì hay mất gì: Đôi khi, kết quả không phải chỉ là bounty, mà còn là cảm giác đã đóng góp thực sự vào việc tăng cường an ninh hệ thống.
  4. Nên có một kế hoạch: Việc định hình và hiểu hệ thống giúp tăng cơ hội nhìn thấy lỗ hổng

Lời Nhắn Nhủ Cuối

Nếu bạn cũng từng tìm thấy những lỗi tương tự như mình, đừng quên kiểm tra toàn diện các API liên quan. Đôi khi, một phát hiện nhỏ có thể dẫn đến hàng loạt lỗi khác và tạo nên một thay đổi lớn.

Hẹn gặp lại trong những hành trình bug bounty thú vị tiếp theo! Cheers! 😎

image.png

Bình luận

Bài viết tương tự

- vừa được xem lúc

Hành trình pass OSCP trong lần thi đầu tiên (2020)

Vào một chiều đông 17/12/2020, tôi nhận được cái email thông báo đã pass OSCP ngay lần thử đầu tiên. Sau đó, tôi bắt đầu tìm hiểu về Security và quyết định học cái gì đó cho riêng mình.

0 0 195

- vừa được xem lúc

Segmentation penetration testing for PCI compliance

Giới thiệu – tổng quan về Network Segmentation. Các phân đoạn mạng(Network segment) hiện là một phần của cơ sở hạ tầng của bất kỳ tổ chức hoặc doanh nghiệp nào.

0 0 40

- vừa được xem lúc

Cài đặt môi trường Pentest Android trên Windows (Phần 1)

Một trong số các vấn đề khó nhất với những ai muốn tìm hiểu về Kiểm thử xâm nhập ứng dụng Android (Pentesting Android applications) là cách cài đặt môi trường kiểm thử. Kiểm thử xâm nhập ứng dụng di đ

0 0 138

- vừa được xem lúc

Một vài mẹo mà mình sử dụng với Burp Suite

Tự sự. Chuyện là có mấy thằng em hỏi mình về cách sử dụng Burp Suite như thế nào, rồi có tips and tricks nào hay hay không cho chúng nó học, tiện đây mình cũng chia sẻ kinh nghiệm của một người sử dụn

0 0 120

- vừa được xem lúc

Cài đặt môi trường Pentest Android trên Windows (Phần 2)

Sau phần 1 của series thì chúng ta đã có được môi trường java, python và máy ảo Android rồi. Trong phần 2 này chúng ta sẽ tiến hành cài đặt môi trường trong máy ảo để hỗ trợ pentest, cụ thể là cài roo

0 0 65

- vừa được xem lúc

Một vài mẹo mà mình sử dụng với Burp Suite (phần 2)

Bài này là bài nối tiếp về một bài mà mình đã viết tại Một vài mẹo mà mình sử dụng với Burp Suite. Bài đầu tiên mình đã viết về một vài tips và trick mình hay sử dụng với Burp Suite mặc định rồi, bài

0 0 84