Phần 2: Open Redirect Vulnerabilities
Bài đăng này đã không được cập nhật trong 5 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
URL
trên trang example sẽ trả về 1response
có 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ờattacker
sẽ thay đổi url trên để điều hướng người dùng đến trang không an toàn doattacker
tạ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.Shopify
cho 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 đổiparam
domain_name củaURL
là 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ỉrect
là 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 redirect
do không kiểm tra việc điều hướng ởsub domain
support.hackerone.com
.
Tổng kết
Open redirects
cho 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