Tóm tắt
Lộ lọt thông tin nhạy cảm trong hệ thống là một vấn đề đã được nhắc đến nhiều lần trong cộng đồng DevOps và những người làm về bảo mật thông tin. Trong bài viết này, tôi sẽ chia sẻ một trường hợp cụ thể về việc phát hiện thông tin đăng nhập trong một file log hệ thống cần được bảo vệ.
Giới thiệu
Một ngày nọ, trong khi tìm kiếm các chương trình bug bounty, tôi đã chọn ngẫu nhiên một chương trình có miền thuộc dạng: *.redacted.com. Để bắt đầu, tôi thực hiện các bước thu thập thông tin (recon) và dò tìm subdomain.
Bài viết chính
Bước thu thập thông tin (Recon)
Tôi sử dụng công cụ subfinder với lệnh sau:
echo redacted.com | subfinder | httpx > scope.txt
Lệnh này giúp tôi xác thực các subdomain khả thi.
Sau khi có thôngtin từ file scope.txt, tôi kiểm tra lại bằng tay và phát hiện subdomain là xxx-api.redacted.com. Theo kinh nghiệm, những subdomain này thường chứa nhiều chức năng và do đó, có nhiều khả năng gặp lỗi bảo mật. Tôi quyết định tập trung vào subdomain này để tìm kiếm lỗ hổng.
Tôi tiếp tục thu thập thông tin từ subdomain này bằng dirsearch với lệnh:
dirsearch -u xxx-api.redacted.com --max-rate 5 -i 200,302 -o xxx_path.txt
Khai thác thông tin (Exploit)
Sau khi hoàn thành, dirsearch trả về path /log. Hào hứng, tôi truy cập vào đường dẫn này:
xxx-api.redacted.com/log
Tại đây, tôi tìm thấy một file log chứa thông tin của môi trường sản xuất (PROD). Khi mở file, tôi nhận thấy nhiều thông tin nhạy cảm, bao gồm các dữ liệu được mã hóa.
Quyết định tải cả folder log để xem chi tiết, tôi chạy:
wget -m https://xxx-api.redacted.com/log
Sau vài phút, tôi đã tải toàn bộ folder log về máy. Sử dụng VSCode để xem các file log, tôi nhận ra chúng chứa nhiều dòng thông tin có định dạng Encoded Attachment data, điều này cho thấy có khả năng thông tin nhạy cảm nằm trong đó.
Tuy nhiên, khi xem xét kỹ lưỡng, tôi nhận thấy những dữ liệu này được mã hóa bằng base64, cụ thể là có chuỗi bắt đầu bằng iVB.... Thực hiện decode các file này với lệnh:
cat data_encode.txt | base64 -d > xxx.yyy
Tôi phát hiện ra rằng một số file trong log là hình ảnh và có các file đuôi .msg, rõ ràng đây là các email, liên quan đến giao tiếp trong nội bộ. Số lượng file quá lớn, nên tôi đã viết một script Python để tự động hóa quá trình decode.
Kết luận
Sau khi thu thập được nhiều file .msg, tôi lọc thông tin và tìm ra một email thú vị. Qua thông tin trong email, tôi phát hiện ra thông tin đăng nhập của hệ thống, và rất tiếc rằng đây không phải là lỗi mới mẻ. Sau khi hoàn thiện báo cáo cho platform, tôi được thông báo rằng lỗi đã tồn tại trước đó (Duplicate).
Bài học rút ra
Điều quan trọng là cần phải thiết lập quyền truy cập hợp lý cho các file log, không nên để cho phép truy cập trái phép vào các folder nhạy cảm như vậy để đảm bảo an toàn thông tin hệ thống.
source: viblo