Web App Hacking: Sensitive Data Exposure – Underestimated Risk: Disclosure of Software Version

0
480

Disclosure of Software Version

Thông tin về phiên bản phần mềm đang dụng, dù có xét theo bao nhiêu chiều hướng, cũng không thể thấy được nó tiết lộ thông tin nhạy cảm gì. Chỉ đơn thuần là một con số thực bình thường. Nhưng ẩn sau con số đó, mang rất nhiều thông tin và mối hiểm họa đến cho hệ thống của bạn.

Từ việc nắm được thông tin về phiên bản phần mềm bạn đang dùng, kẻ tấn công ngay lập tức nắm được trong tay kha khá cách để khai thác và xâm nhập, với hình thức tiêu biểu nhất là remote code execution.

Làm cách nào kẻ tấn công nắm được thông tin phiên bản phần mềm mà bạn đang sử dụng?

Đầu tiên, kẻ tấn công sẽ gửi một request lên ứng dụng web của bạn. Dĩ nhiên, server sẽ trả lại một gói respone. Trong gói đó, hắn sẽ mở ra và xem header của respone đó.

Và thú vị hơn, trong các header của những gói trả về từ phía server, luôn thường kèm theo thông tin về phiên bản phần mềm hiện tại mà nó đang chạy.

Exploitation

Để khai thác được nạn nhân từ thông tin về phiên bản phần mềm, kẻ tấn công sẽ lợi dụng vào remote code execution. Hiểu đơn giản, đây chính là các đoạn mã nhằm đánh vào lỗ hổng của các phiên bản phần mềm bị lỗi.

Sở dĩ các phần mềm phải liên tục cập nhật các phiên bản, vì ứng với từng phiên bản có thể có ít hoặc nhiều lỗi khác nhau. Bằng nhiều phương pháp, mà tiêu biểu nhất là dịch ngược phần mềm, kẻ tấn công có thể nắm được lỗ hổng của phần mềm bất kỳ, từ đó viết code khai thác thực thi.

Trang web chuyên tổng hợp remote code execution lớn nhất chính là:

https://exploit-db.com

Ở đây, sau khi nắm được thông tin phiên bản phần mềm mà bạn đang sử dụng, kẻ tấn công sẽ truy tìm các lỗi của tương ứng, và chỉ việc tải về (miễn phí) các đoạn mã độc này để khai thác.

Demo

Ta có một trang web mục tiêu. Sau khi dùng công cụ Firebug trong trình duyệt đọc header của gói tin respone, ta thu được thông tin về phiên bản phần mềm đang dùng.

Tiếp, truy cập vào trang cơ sở dữ liệu về lỗi phần mềm và tìm phiên bản của nạn nhân.

Trong số các kết quả trả về, ta thấy có một kết quả phù hợp nhất.

Thử chạy remote code execution lên để đọc hướng dẫn.

Ta thử nghiệm với lệnh liệt kê để xem toàn bộ tập tin có trên server đó.

Ta quan sát có tập tin index.php, đây chính là trang chủ của web này.

Thử đổi (deface) nó thành một giao diện khác. Ở đây ta chỉ đơn thuần sửa tất cả lại thành một câu thông báo ngắn gọn.

Và kết quả thu được.

Summary

Có thể thấy, việc để lộ thông tin về phiên bản phần mềm đang dùng cũng cực kỳ nguy hiểm không kém. Tuy nhiên, dẫu có muốn thì ta cũng khó lòng tắt hẳn đi được.

Dĩ nhiên, vẫn có cách làm giả đi thông số đó nhằm đánh lừa kẻ tấn công. Nhưng trước hết, ưu tiên hàng đầu vẫn là người chịu trách nhiệm về nó nên cập nhật phiên bản mới nhất để tránh bị tấn công.

Có thể bạn quan tâm:

Bài 1: Web App Hacking: Sensitive Data Exposure (Guideline)

Bài 2: Web App Hacking: Sensitive Data Exposure – Insecure Error Handling

Bài 3: Web App Hacking: Sensitive Data Exposure – Disclosure of Sensitive Files

Bài 4: Web App Hacking: Sensitive Data Exposure – Information Disclosure via Metadata

Bài 5: Web App Hacking: Sensitive Data Exposure – Underestimated Risk: Disclosure of Software Version

Bài 6: Web App Hacking: Sensitive Data Exposure – Insecure Communication Channel

Bài 7: Web App Hacking: Sensitive Data Exposure – Leakage of Cookie with Sensitive Data

Bài 8: Web App Hacking: Sensitive Data Exposure – Leakage of Sensitive Data via Referer Header

This site uses Akismet to reduce spam. Learn how your comment data is processed.