Rate this post

Giai đoạn này, người kiểm tra sẽ kiểm tra xem ứng dụng có hướng dẫn chính xác trình duyệt để không giữ lại dữ liệu nhạy cảm hay không.

Trình duyệt có thể lưu trữ thông tin cho mục đích lưu vào bộ nhớ đệm và lịch sử. Bộ nhớ đệm được sử dụng để cải thiện hiệu suất, do đó thông tin đã hiển thị trước đó không cần phải tải xuống lại.

Các bài viết liên quan:

Cơ chế lịch sử được sử dụng để tạo sự thuận tiện cho người dùng, vì vậy người dùng có thể xem chính xác những gì họ đã thấy tại thời điểm tài nguyên được truy xuất. Nếu thông tin nhạy cảm được hiển thị cho người dùng (chẳng hạn như địa chỉ, chi tiết thẻ tín dụng, Số an sinh xã hội hoặc tên người dùng) thì thông tin này có thể được lưu trữ cho mục đích lưu vào bộ nhớ đệm hoặc lịch sử và do đó có thể truy xuất thông qua kiểm tra bộ nhớ cache của trình duyệt hoặc đơn giản nhấn nút Quay lại của trình duyệt.

Mục tiêu kiểm tra

Xem lại xem ứng dụng có lưu trữ thông tin nhạy cảm ở phía máy khách hay không.

Xem lại nếu quyền truy cập có thể xảy ra mà không có sự cho phép.

Làm thế nào để kiểm tra

Lịch sử trình duyệt

Về mặt kỹ thuật, nút Quay lại là lịch sử chứ không phải bộ đệm (xem Cache trong HTTP: History Lists). Bộ nhớ cache và lịch sử là hai thực thể khác nhau. Tuy nhiên, chúng có chung điểm yếu là đưa ra những thông tin nhạy cảm đã được hiển thị trước đó.

Thử nghiệm đầu tiên và đơn giản nhất bao gồm nhập thông tin nhạy cảm vào ứng dụng và đăng xuất. Sau đó, người kiểm tra nhấp vào nút Quay lại của trình duyệt để kiểm tra xem thông tin nhạy cảm đã hiển thị trước đó có thể được truy cập trong khi chưa được xác thực hay không.

Nếu bằng cách nhấn nút Quay lại, người kiểm tra có thể truy cập các trang trước đó nhưng không truy cập được các trang mới, thì đó không phải là vấn đề xác thực mà là vấn đề lịch sử trình duyệt. Nếu các trang này chứa dữ liệu nhạy cảm, điều đó có nghĩa là ứng dụng đã không cấm trình duyệt lưu trữ dữ liệu đó.

Việc xác thực không nhất thiết phải tham gia vào quá trình thử nghiệm. Ví dụ: khi người dùng nhập địa chỉ email của họ để đăng ký bản tin, thông tin này có thể được truy xuất nếu không được xử lý đúng cách.

Nút Quay lại có thể bị dừng hiển thị dữ liệu nhạy cảm. Điều này có thể được thực hiện bằng cách:

  • Cung cấp trang qua HTTPS.
  • Setting Cache-Control: must-revalidate

Bộ nhớ cache của trình duyệt

Ở đây người thử nghiệm kiểm tra xem ứng dụng không bị rò rỉ bất kỳ dữ liệu nhạy cảm nào vào bộ nhớ cache của trình duyệt. Để làm điều đó, họ có thể sử dụng proxy (chẳng hạn như OWASP ZAP) và tìm kiếm thông qua các phản hồi của máy chủ thuộc về phiên, kiểm tra xem đối với mọi trang có chứa thông tin nhạy cảm, máy chủ đã hướng dẫn trình duyệt không lưu vào bộ nhớ cache bất kỳ dữ liệu nào. Một lệnh như vậy có thể được phát hành trong tiêu đề phản hồi HTTP với các lệnh sau:

  • Cache-Control: no-cache, no-store
  • Expires: 0
  • Pragma: no-cache

Các chỉ thị này nói chung là mạnh mẽ, mặc dù các cờ bổ sung có thể cần thiết cho tiêu đề Cache-Control để ngăn chặn tốt hơn các tệp được liên kết liên tục trên hệ thống tệp. Bao gồm các:

  • Cache-Control: must-revalidate, max-age=0, s-maxage=0
HTTP/1.1:
Cache-Control: no-cache
HTTP/1.0:
Pragma: no-cache
Expires: "past date or illegal value (e.g., 0)"

Ví dụ: nếu người kiểm tra đang kiểm tra một ứng dụng thương mại điện tử, họ nên tìm kiếm tất cả các trang có chứa số thẻ tín dụng hoặc một số thông tin tài chính khác và kiểm tra xem tất cả các trang đó có thực thi lệnh no-cache hay không. Nếu họ tìm thấy các trang có chứa thông tin quan trọng nhưng không hướng dẫn trình duyệt không lưu nội dung của họ vào bộ nhớ cache, họ biết rằng thông tin nhạy cảm sẽ được lưu trữ trên đĩa và họ có thể kiểm tra lại điều này đơn giản bằng cách tìm trang trong bộ nhớ cache của trình duyệt .

Vị trí chính xác nơi thông tin đó được lưu trữ phụ thuộc vào hệ điều hành máy khách và trình duyệt đã được sử dụng. Dưới đây là một số ví dụ:

Mozilla Firefox:
Unix/Linux: ~/.cache/mozilla/firefox/
Windows: C:\Users\<user_name>\AppData\Local\Mozilla\Firefox\Profiles\<profile-id>\Cache2\
Internet Explorer:
C:\Users\<user_name>\AppData\Local\Microsoft\Windows\INetCache\
Chrome:
Windows: C:\Users\<user_name>\AppData\Local\Google\Chrome\User Data\Default\Cache
Unix/Linux: ~/.cache/google-chrome
  1. Xem lại thông tin được lưu trong bộ nhớ đệm

Firefox cung cấp chức năng xem thông tin đã lưu trong bộ nhớ cache, điều này có thể mang lại lợi ích cho bạn với tư cách là người thử nghiệm. Tất nhiên, ngành công nghiệp này cũng đã tạo ra nhiều tiện ích mở rộng và ứng dụng bên ngoài khác nhau mà bạn có thể thích hoặc cần cho Chrome, Internet Explorer hoặc Edge.

Thông tin chi tiết về bộ nhớ cache cũng có sẵn thông qua các công cụ dành cho nhà phát triển trong hầu hết các trình duyệt hiện đại, chẳng hạn như Firefox, Chrome và Edge. Với Firefox, bạn cũng có thể sử dụng URL about: cache để kiểm tra chi tiết bộ nhớ cache.

  1. Kiểm tra Xử lý cho Trình duyệt Di động

Việc xử lý các lệnh trong bộ nhớ cache có thể hoàn toàn khác đối với các trình duyệt trên thiết bị di động. Do đó, người thử nghiệm nên bắt đầu phiên duyệt web mới với bộ nhớ đệm sạch và tận dụng các tính năng như Chế độ thiết bị của Chrome hoặc Chế độ thiết kế đáp ứng của Firefox để kiểm tra lại hoặc kiểm tra riêng các khái niệm đã nêu ở trên.

Ngoài ra, các proxy cá nhân như ZAP và Burp Suite cho phép người thử nghiệm chỉ định Tác nhân người dùng nào sẽ được gửi bởi trình thu thập thông tin / trình thu thập thông tin của họ. Điều này có thể được đặt để phù hợp với trình duyệt di động Tác nhân người dùng đổ chuông và được sử dụng để xem chỉ thị bộ nhớ đệm nào được gửi bởi ứng dụng đang được kiểm tra.

Thử nghiệm hộp xám

Phương pháp kiểm tra tương đương với trường hợp hộp đen, vì trong cả hai trường hợp, người kiểm tra có toàn quyền truy cập vào tiêu đề phản hồi của máy chủ và mã HTML. Tuy nhiên, với kiểm tra hộp xám, người kiểm tra có thể có quyền truy cập vào thông tin đăng nhập tài khoản cho phép họ kiểm tra các trang nhạy cảm mà chỉ người dùng đã xác thực mới có thể truy cập được.

Công cụ

OWASP Zed Attack Proxy

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now