Đi câu cá với target="_blank"
Giới thiệu
Đi câu cá hay mấy anh Tây hay gọi Phishing có nghĩa là lừa đảo nhằm đánh cắp tài khoản, mật khẩu, thẻ tín dụng của người dùng. Bài viết này sẽ giới thiệu các bạn cách câu cá với thuộc tính target="_blank"
của trình duyệt.
Cách thức
Nếu bạn dùng thuộc tính target="_blank"
trên một liên kết mà không kèm thuộc tính rel="noopener noreferrer"
để mở một trang web không thuộc quyền kiểm soát của bạn. Trang vừa mở sẽ truy cập được toàn bộ window
object của bạn thông qua window.opener
Đoạn mã dưới đây sẽ minh họa điều đó
if (window.opener) {
window.opener.location = "https://khoanguyen.me/phishing-target-blank/landing.html?referrer="+document.referrer
}
Đâu có gì nghiêm trọng phải không nào? Hãy thử tưởng tượng https://khoanguyen.me/phishing
là một trang mồi của mấy anh câu cá với giao diện đăng nhập như trang của bạn, người dùng sẽ bị mất mật khẩu một cách dễ dàng.
Ví dụ
- Vào fanpage Khoa Nguyen dot me
- Bấm Like giúp mình (câu like rẻ tiền)
- Bấm vào liên kết
khoanguyen.me
. Một thẻ/ cửa sổ trình duyệt mới sẽ mở ra - Chú ý thẻ ban đầu (Facebook.com) đã được chuyển tới trang này
Khắc phục
Cách khắc phục là chèn thuộc tính rel="noopener noreferrer"
vào tất cả các liên kết có thuộc tính target="_blank"
. Hoặc ít nhất là vào những liên kết do người dùng chèn vào.
Và trên hết, nếu bạn phát hiện trang web nào có lỗ hổng này, hãy báo ngay cho quản trị của các trang web đó để khắc phục
P/S: Bài viết này được đăng tải lần đầu trên blog của mình
P/S 2: diễn đàn cũng dính cái này. Nhấp vào link này để kiếm tra (khoanguyen.me)
Uhmm, hổng hiểu lắm.
Dòng này nghĩa là sao?
Tức nếu anh có tab trên browser đang mở Facebook và tab này ở vị trí đầu tiên, nó sẽ đc chuyển tới trang chỉ định sẵn
sao e dùng firefox không bị sao nhỉ?
thêm cái target="_blank" cho mấy cái link
<a href="..." target="_blank" ...
nghĩa là khi bấm chuột trái vào link đó sẽ hiện ra tab mới, bình thường bấm chuột trái vô link là nó hiện ra trong tab hiện tại.Javascript hay HTML gì đó có 1 cái biến rất ư là “bự”, là
window
. Trong biến bự này có biếnwindow.opener
cho biết tab nào mở ra tab hiện tại. Thông thường nó lànull
, tức là người dùng bấm link từ thanh địa chỉ hay bookmark gì đó, ko cóopener
nào cả. Với các link target="_blank" thì tab mới mở ra biết tab cũ, tức làwindow.opener
của tab mới “trỏ” vào tab cũ. Vấn đề xảy ra ở đây, nếu tab mới mình cho chạy script như trên:thì tab cũ sẽ load trang
https://...
đó. Nếu mình tạo tranghttps://...
có nội dung y hệt trang facebook login, thông báo người dùng cần login lại vì cookies hết đát => lấy được mật khẩu của nạn nhân.link của Khoa đổi trang facebook cũ thành link tới
"https://khoanguyen.me/phishing-target-blank/landing.html?referrer="+document.referrer
đócái này bị người ta chửi nè https://redd.it/4zikpx
Để tí check. Khoa nhớ là làm được
mình cũng xài FF đây, bị đổi trang cũ mà. Có xài Noscript hay add-on gì chặn script trang lạ ko? Hay là nhìn trang mới rồi chả thấy xảy ra cái gì Cái trang bị dính là ở tab cũ đấy, ko phải ở tab mới mở ra.
nhấn chuột giữa vô link là nó hiện ra tab mới, ko bị vướng cái opener này thì phải. Với lại nhìn thanh địa chỉ là biết thật giả liền (ai cực kì cẩn thận mới để ý). Chỉ khi xài di động nó ẩn thanh địa chỉ đi thì mới chết.
Cũng FF (49.0.1) luôn và ko đc. Nhưng chrome được liền. :?
Mình dùng Safari trên iphone và cũng ko bị gì.
Trong tương lai chắc bọn browser sẽ tự động chặn hoặc hạn chế nên chắc cũng ko đáng lo ;).
Edit: vào mấy trang porn lâu lâu cũng bị vài cái ad popup với redirect thế này. Chắc kiếm ra tiền nên bọn browser sẽ ko chặn đâu :((
Mình vừa test trên FF 49.0 thì vấn được nhé. Có khi máy bạn cái thêm extensions, anti-phishing gì đó cũng có thể.
@Huy_Hoang_Pham safari coi phiên bản chỗ nào anh ? Em đang dùng iPad iOS 10 và vẫn bị lỗi này.
Nói chung là em test hết với mấy trình duyệt máy tính với di động mà em có thể tiếp xúc được trước khi viết bài này mà
A dùng iOS 8, vào đây bấm vào link vẫn ko thấy gì
Khoa Nguyen dot me
Khoa Nguyen dot me. 46 likes. Front-end Web developer. Thích viết về React.js, Redux.js, Webpack cũng như là công nghệ làm web tĩnh.
FF e chỉ cài Firebug thôi chứ ko cài gì thêm :?
làm cái gif cho sinh động nè, cho ai may mắn ko thấy nó hoạt động như thế nào
lạ thật, qua Windows e dùng Chrome với FF test đc hết.
Bạn dùng phần mềm gì để tạo file gif vây? Cho phép mình lấy hình của bạn bỏ vào bài viết nhé
Có lẽ trường hợp Phishing kiểu này khó mà lừa được mình (vì một lần vô tình mình đã bị lừa bởi chính mình) bởi vì mình không login từ bất cứ form đăng nhập nào thể hiện trên trình duyệt.
Mình chỉ login khi lần đầu mở trình duyệt lên vào gõ trực tiếp địa chỉ trang web cần vào, cần login. Một khi trang nào má session expired mà muốn login lại, mình đóng trình duyệt lại và rm -rf /thư-mục-chứa-trinh-duyệt và rồi lại tar lại một thư mục chứa trình duyệt từ một file .tar.gz được download từ Firefox có kiểm tra hash sum để tránh trường hợp trình duyệt “nhiễm bẩn” mất kiểm soát.
Troll chủ topic tí: bạn làm cách nào để câu được cá (là mình) khi mình dùng http://lynx.browser.org để duyệt web?
http://imgur.com/a/4wGL0
ShareX free trên Steam đó. Lấy thoải mái
Hơi off topic nhưng có tool nào tương tự cho Mac ko bạn hiền ơi
mình ko xài Mac nên ko biết
Em bó tay với thím. Thế thím có viết luôn một con shell script để tự động hóa luôn không?
lol. Trình duyệt nó không chạy Javascript thì làm sao em dụ thím đây.
Mấy anh tây trên Twitter hay dùng em này http://recordit.co/
Awesome!