Phần 2: Open Redirect Vulnerabilities
Bài đăng này đã không được cập nhật trong 6 năm
Mô tả
Khi nạn nhân truy cập vào một website cho phép mà website này lại cho phép điều hướng trình duyệt đến một URL khác. Ví dụ như trang web www.example.com có chức năng điều hướng đến 1 website dịch vụ con của nó như sau:
https://www.example.com/?redirect_to=https://www.sub.example.com
- Khi người dùng truy cập vào
URLtrên trang example sẽ trả về 1responsecó code 302 để điểu hướng trình duyệt của người dùng. Sau đó trình duyệt người dùng sẽ gọi 1 GET request đến trang https://www.sub.example.com. Bây giờattackersẽ thay đổi url trên để điều hướng người dùng đến trang không an toàn doattackertạo ra ví dụ:
https://www.example.com/?redirect_to=https://attacker.com
Nếu trang example.com này không kiểm tra lại request param mà người dùng gửi lên thì nó sẽ tạo 1 response chuyển hướng sang trang của attacker rồi trả về cho người dùng. Và người dùng sẽ bị điều hướng đến trang chứa mã độc, quảng cáo, ... của attacker.
Theo xếp hạng của The Open Web Application Security Project (OWASP) thì nó nằm trong top 10 nguy cơ bảo mật web của năm 2013.
Việc dính lỗi này từ các web site mà có lượng người sử dụng lớn và có độ tin cậy cao có thể đưa nhiều nạn nhân đến với các trang web nguy hiểm. Nó còn có thể dùng để để lừa đảo người dùng gửi các thông tin các nhân lên các website giả mạo mà nạn nhân vẫn tin tưởng rằng mình đã gửi thông tin cho website có thể tin tưởng được. Và nó cũng cho phép attacker phát tán malware từ trang web nguy hiểm, hoặc ăn cắp tokens xác thức Oauth(Khái niệm này mình sẽ nói trong một phần nào đó sau phần này).
Nếu các bạn muốn thử tìm kiếm các website có thể bị dính nguy cơ bảo mật này bạn có thể tìm kiếm các website có sử dụng GET method để chuyển đang trang mà bạn cần test, với một param là URL để điều hướng đến.
Ví dụ:
-
Shopify Theme Install Open Redirect
- Độ khó: Thấp
- Url: app.shopify.com/services/google/themes/preview/supply–blue?domain_name=XX
- Report Link: https://hackerone.com/reports/1019621
- Date Reported: November 25, 2015
- Bounty Paid: $500
- Description:
Trong ví dụ đầu tiên, lỗ hổng
open redirectđược tìm thấy ở websiteShopify. Một chức năng về thương mại điện tử trên website này cho phép người dùng tạo một gian hàng đển bán các sản phẩm. Hệ thống này cho phép người quản trị tùy biến giao diện của của hàng của họ bằng cách cài đặt cáctheme(giao diện) khác nhau.Shopifycho phép người dùng xem trước giao diện và kèm theo một tham số chuyển trang trênURL. Nó có dạng như sau:
Ta có thể sửa đổi link này để dẫn nạn nhân điều hướng đến trang web nguy hiểm hoặc lừa đảo nạn nhân.https://app.shopify.com/themes/preview/blue?domain_name=example.com/admin
Tóm tắt: Không phải tất cả các nguy cơ bảo mật đều phức tạp.
Open redirectđơn giản chỉ cần sửa đổiparamdomain_name củaURLlà ta có thể điều hướng người dùng đến các website không phải của Shopify. -
HackerOne Interstitial Redirect
- Difficulty: Medium
- Url: N/A
- Report Link: https://hackerone.com/reports/111968 3
- Date Reported: January 20, 2016
- Bounty Paid: $500
- Description: Có một cách để tránh nguy cơ bảo mật từ việc
open redỉrectlà mỗi khi người dùng rời khỏi website để chuyển hướng đến một trang web khác thì sẽ dẫn người dùng qua một trang thông báo rằng họ đang được chuyển hướng đến trang khác không phải là trang web của bạn nữa trước khi người dùng thực sự được điều hướng qua đó.- Nhưng việc sử dụng phương pháp trên không triệt để vẫn có thể dẫn đến lỗ hổng:
https://hackerone.com/zendesk_session?return_to=https://support.hackerone.com/ping/redirect?state=compayn:/ - Ta thấy rằng đường link trên đã dính
open redirectdo không kiểm tra việc điều hướng ởsub domainsupport.hackerone.com.
Tổng kết
Open redirectscho phép kẻ tấn công điều hướng người dùng thiếu cảnh giác đến các website nguy hiểm. Để tìm kiếm chúng, cũng giống như các ví dụ mình giới thiệu vừa rồi, chúng ta cần phải chú ý. Các tham số để điều hướng thường dễ dàng nhận biết ví dụ như : redirect_to = , checkout_url=, domain_name=, ...Hoặc đôi khi chúng được rút gọn lại ví dụ: r=, u=,..- Kiểu tấn công này sẽ đánh vào lòng tin của nạn nhận. Dẫn nạn nhân đến trang web nguy hiểm của kẻ tấn công. Nếu bạn là 1 web dev thì bạn cần kiểm tra kĩ lưỡng các tham số này và nhớ kiểm tra kĩ url được đưa vào.
All rights reserved