Làm một developer “có tâm”, chúng ta không chỉ phải đảm bảo code chạy được, mà còn phải bảo đảm về bảo mật (với các hệ thống quan trọng). Có nhiều lúc, lỗi bảo mật đến từ chính sự ẩu tả của developer. Hôm nay mình sẽ lôi trang web của Lotte Cinema ra làm mẫu để giải thích cho các bạn.
Lưu ý: Bài viết mang tính chất học thuật, bình luận về kĩ thuật. Mình không ủng hộ, cũng không chịu trách nhiệm nếu bạn mang kiến thức đề cập trong bài ra làm chuyện trái pháp luật! Thân.
Giới thiệu
Tại sao mình lại chọn Lotte Cinema? Đơn giản là cách đây mấy tháng, khi nhắc đến mật khẩu, mình đã nêu ra một lỗ hổng bảo mật khủng khiếp của Lotte Cinema: Lưu mật khẩu dưới dạng text.
Đến nay, lỗ hổng này vẫn chưa được sửa, điều này chứng tỏ hai chuyện: Đội ngũ lập trình web lotte cinema thiếu kiến thức cơ bản về lập trình và cũng không thèm quan tâm gì đến việc bảo trì sửa lỗi. Điều này đồng nghĩa với việc website sẽ có nhiều lỗ hổng để khai thác.
Với logic đó, mình bắt đầu tìm lỗ hỗng của lotte với tâm thế học hỏi. Thật không ngờ, mình tìm được không chỉ một, mà đến tận vài lỗ hổng… cực kì chết người, có thể làm toàn bộ hệ thống ngừng hoạt động.
Bắt đầu “câu cá”
Đầu tiên, hãy nhìn góc trên bên trái trình duyệt. Một website không có https, đồng nghĩa với việc toàn bộ thông tin bạn điền vào (username, password) hoàn toàn có thể bị hacker trộm nếu bạn dùng chung đường dây mạng/chung wifi với hacker đó (Xem thêm về sniffing). Đó là lý do các trang ngân hàng, facebook, gmail, thanh toán điện từ đều đòi hỏi phải dùng https.
Tiếp theo, ta bắt đầu với việc kiểm tra cookie. Các bạn tải addon EditThisCookie về để làm việc nhé. Thử đăng nhập và xem lotte cinema lưu gì trong cookie nào.
Các bạn không nhìn lầm đâu, chính là username của các bạn đấy? Thôi, chúng ta cứ cầu trời là họ lưu username để nhắc bạn khi bạn cần đăng nhập lại thui hạ. Thử đổi sang giá trị khác rồi refresh trang xem nào.
CÁI LỀ GÌ THỐN!!! Mình bị chuyển sang nick khác mất rồi. Thật không thể tin nổi. Một lỗi bảo mật to như bánh xe bò đã bị lộ chỉ sau 5p nghiên cứu. 1-0 cho Lotte Cinema. (Lỗi này có tên gọi là impersonation).
Câu nhầm … “cá mập”
Nhờ đổi cookie, mình đã hack được vào tài khoản người khác. Ok ngon, có thông tin người dùng luôn! Giờ mình thử đổi thông tin xem nào, được luôn. Thử đặt vé xem nào, cũng được nốt!
Có thể dụ dỗ Lotte Cinema gửi mật khẩu cho mình không nhỉ? Thử xem nào, đổi email của user này sang sang email mình, sau đó báo mất mật khẩu. Vào email xem sao?
Ồ, nhận được mật khẩu hiện tại luôn, mail của Lotte nhanh thật! Vì một user thường tái sử dụng mật khẩu ở nhiều trang, mình có thể thử dùng username và mật khẩu này ở một số trang khác để mò account. Thấy chết người chưa??
Thử đổi mật khẩu hiện tại xem, được luôn. Giờ mình đã có thể đăng nhập với mật khẩu mới đổi. Đây là lỗi thứ 2: Khi thay đổi mật khẩu, bắt buộc người dùng phải đổi mật khẩu cũ. Tỉ số giờ đã là 2-0 cho Lotte Cinema.
Bonus thêm “cá voi”
Hai lỗi trên đã đủ làm tơi tả toàn bộ hệ thống. Chỉ cần viết một con bot nho nhỏ, lần lượt thay giá trị membername trong cookie (từ a tới zzzzzzz) là có thể lấy gần như toàn bộ thông tin khách hàng, hoặc đổi toàn bộ password làm người dùng không đăng nhập được. (Các bạn khác dùng username dài quá thì chịu).
Thế nhưng mọi chuyện chưa dừng ở đây. Mình tiếp tục thử nghiệm điền tiên vào khung “Họ tên”. Lotte tiếp tục lòi ra lỗi XSS (Tấn công bằng cách chèn script vào trang chính).
Khá may mắn Lotte là đã cắt chuỗi thành 30 kí tự nên không thể điền JavaScript dài. Tuy nhiên, điều này vẫn không thể làm khó được mình khi viết file javascript ở nơi khác, sau đó embed script vào (Up file js lên dropbox rồi lấy shortlink là xong).
Lỗi XSS này chỉ hiện ra ở mỗi trang của user nên không thể dùng để deface website. Tuy nhiên, mình vẫn có thể hiện pop-up giả mạo người dùng tải virus như hình dưới. Dùng JS, mình có thể lấy số thẻ, số CMND để người dùng tin tưởng rằng message là của lotte (Một phần do bọn lotte chỉ dùng alert để code cho nhanh nữa).
Kết hợp với con bot đã nói phía trên, mình hoàn toàn có thể dụ dỗ rất nhiều người dùng Lotte tải virus khi họ đăng nhập vào hệ thống. Không còn lời nào để nói, 3-0 cho Lotte Cinema!
Kết luận
Những lỗi bảo mật mình chỉ ra không có gì cao siêu! Do mình không phải dân chuyên về bảo mật nên những kĩ thuật tấn công của mình cũng chỉ dừng ở mức vô cùng cơ bản. Vấn đề của Lotte Cinema là ở chỗ họ “không biết tí gì về bảo mật”, dẫn đến chuyện hệ thống bảo mật quá kém.
Như các bạn đã thấy, hành vi này là sự thiếu tôn trọng khách hàng và còn có thể gây nguy hại cho người dùng. Tuy nhiên, có vẻ Lotte Cinema đã rất khôn ngoan trong khâu pháp lý khi rũ bỏ mọi trách nhiệm trong phần “Thỏa Thuận”. Tuy thua 3-0 nhưng vẫn không phải chịu trách nhiệm gì, hoan hô Lotte Cinema.
Vì lý do đạo đức, mình đã gửi nội dung bài viết cho những người có trách nhiệm trên Lotte Cinema một khoảng thời gian khá lâu trước khi công bố. Tuy vậy, họ vẫn làm ngơ và không thèm quan tâm. RIP các bạn và các khách hàng của Lotte Cinema :D.
Dù vậy, mình vẫn khuyên các bạn không nên thử phá hoại hệ thống. Mình không muốn ngày mai lên Mương 14 lại thấy tin: [Hacker trẻ tuổi bị Lotte Cinema bắt. “Tất cả là do em lỡ xem Tôi đi code dạo”] đâu.
Lời khuyên cuối cùng: các bạn vẫn có thể xem phim ở Lotte, nhưng đừng điền bất kì thông tin cá nhân gì vào cái hệ thống trời đánh của nó nhé! Thân chào.
Các bạn có thể xem video tóm tắt bài viết ở đây. Nhớ like và subscribe trong link này nhé: https://www.youtube.com/c/toidicodedaoblog?sub_confirmation=1. Mình đang cần 100 sub để xin Custom URL cho Channel Tôi Đi Code dạo.
Update (30/08/2016): Sau khi bài viết được công bố rộng rãi trên MXH thì bên chịu trách nhiệm xây dựng website cho Lotte Cinema đã liên hệ trực tiếp với mình mình. Đến ngày 1/9/2016 thì các lỗi bảo mật trong bài đã tạm được fix rồi nhé.
Phát hiện lỗi và thông báo, cái kết là “không thèm quan tâm”, nản mấy ông bên Lotte
LikeLiked by 1 person
Đúng là toàn lỗi củ chuối. ^_^ (y) 1 like cho tác giả bài viết.
LikeLike
Khi change cookie qua gía trị khác thì bên server xóa luôn:D chắc người ta mới đọc blog sáng nay!!!
LikeLiked by 1 person
Vậy à? Éo thèm Pm mình nói 1 câu cảm ơn, Lotte Cinema như cái cổn lù ;))
LikeLiked by 3 people
Chí ít cũng vài bộ phim chứ anh nhỉ?
LikeLike
Ko cho cái gì cả ;))
LikeLike
Biết thế hack vài cái vé xem phim cho bõ tức bác nhỉ ? :))
LikeLike
Bài viết bổ ích
LikeLike
hay qua
LikeLike
đắng mề nhỉ
bình luận ở đây liệu bị mất thông tin gì không nhỉ :v
LikeLiked by 1 person
Theo lý thuyết thì khi bạn nhập dữ liệu trên bất kì trang http nào, hacker đều có thể dùng sniffing tool để chôm :v.
Trang này có https trên góc nên chắc ko bị đâu ;))
LikeLike
Lotte Cinema một ngày web sập chục lần mà bạn ơi :))
LikeLike
Ờ ha, vậy là ko phải do mình hack, buồn vl :((
LikeLike
Có cách nào liên lạc với bạn không. Hoặc bạn có thể liên hệ mình laiyazhen@gmail.com mình cần giúp đỡ. Thanks
LikeLike
Vừa thử thì đã fix đâu :))
LikeLike
Ủa, bên đó liên hệ với mình bảo đang fix mà ??
LikeLike
tính đến bây giờ thì fix rồi ạ 😀
LikeLike
hồi chiều mới chiếm được vài cái gmail :v
LikeLike
hay :”>
LikeLike
hay :”>
LikeLike
đầu tiên thử đăng kí rồi kiểm tra coi có user name nào trùng rồi không sau đó
đăng kí nick mới đăng nhập
đổi cookey theo username bị trùng
ez hacker
LikeLike
Ôi mẹ ơi, bác cho em xin mấy tài liệu về bảo mật với tìm lỗ hổng của 1 website được không ạ?
LikeLiked by 2 people
Bạn lên pluralsight tìm khoá Hack Yourself First nhé 😉
LikeLiked by 4 people
làm mj cái video dịch lại hết mấy cái này đi em!
LikeLiked by 1 person
Để từ từ rồi e làm dần anh ơi ;))
LikeLike
chỉ sợ lên kenh14 thấy admin page toidicodedao dang video chi nhung dev hack web lote cinema
LikeLike
Chào mọi người mình lên phường trước đây :))
LikeLike
Lên cafebiz.vn 7h trước nhưng không biết thế lực nào đã gỡ.
http://cafebiz.vn/trang-web-lotte-cinema-dinh-loi-bao-mat-nghiem-trong-co-the-khien-thong-tin-khach-hang-bi-lo-20160830153759777.chn
LikeLiked by 1 person
Lotte đó bạn ;))
LikeLike
Haha, bạn này quan tâm tới bảo mật thông tin của mình vãi. Đã cố xoá bớt CMND và mã thành viên của mình vậy mà vẫn sót mất 1 cái screenshot :))
Chúc mừng bạn đã đi tìm vết cho người khác.
LikeLike
À cái đó là của account xấu số bị hack chứ ko phải của mình ahihi ;))
LikeLiked by 1 person
Chưa kể mấy cái modem wifi dễ vào và thay đổi cài đặt nữa , nói chung vấn để bảo mật còn khá kém
LikeLike
bog này dạy hack ak các anh chị 😀
LikeLike
Ko, bạn tìm blog của thánh bảo mật Juno_okyo nhé.
LikeLiked by 1 person
Cái này lỗi lớn nhất là của developer hay tester anh có thể phân tích cho em ai chịu trách nhiệm lỗi này không ?
LikeLike
Cái này thì thú thật là anh cũng ko biết. Giống như xây là không bị sập là ok rồi, nhưng thiết kế để bị trộm vào thì ko rõ trách nhiệm là của thằng xây, thằng giám sát hay thằng nghiệm thu công trình =))
LikeLiked by 1 person
Update (30/10/2016): Sau khi bài viết được công bố rộng rãi trên MXH thì bên chịu trách nhiệm xây dựng website cho Lotte Cinema đã liên hệ trực tiếp với mình mình. Đến ngày 1/9/2016 thì các lỗi bảo mật trong bài đã tạm được fix rồi nhé. ( bay gio ka thang may ? ) ao vai
LikeLike
Ngày xưa cũng yêu thích hack hiếc này nọ nhưng h cuối cùng đi làm nghề méo liên quan cm gì luôn. Đọc bài viết của bác lại nhớ lại thời cấp 3 :))
LikeLike
Update (30/10/2016) la sao ad?
LikeLike
Em hỏi ngu phát, có phải giọng anh Hoàng!
LikeLike
Giọng anh, do tăng speed lên cho đỡ chán nên giống chipmunk đó :v
LikeLike
qua nay em ngồi chả code được chữ nào, có điều ngồi đọc hết mấy bài viết của a =)))
Hâm mộ a quá đê :3
LikeLiked by 1 person
Cảm ơn e đã ủng hộ blog, nhớ ghé mỗi thứ 3 thứ 5 để xem bài với nhé ;).
LikeLiked by 1 person
Dạ ok anh 😉
Khi nào anh hack kiếm 2 cái vé cinema cho em đi xem film ké với nha anh =)))))))))))
LikeLike
cảm ơn anh về bài viết hữu ích này
LikeLike
Lotte mới xây dựng lại web rồi, giao diện mới, giờ bắt cho thanh toán trước (thẻ tín dụng, ATM nội địa). vỏ ngoài mới mà không biết cái lõi bên trong đã thay chưa. Chứ thế này thì đặt vé lo lắm !!!
LikeLike
Có https rồi thì chắc cũng ko đến nỗi :))
LikeLike
Bạn co thể chỉ mình cách đăng nhập website wordpress không bạn ? mình chân thành cám ơn bạn rất nhiều. mail mình là simsodepnhatvn@gmail.com
LikeLike
cách đây 2 hôm tạo tài khoảng trên lotte cinema 2 lần 1 tài khoản tất cả đều thành công nhưng lúc đăng nhập thì bảo ko có tài khoản trên hệ thống :))))))
LikeLike
ban huong dan them cho mimh tí
LikeLike
a có nhận hack trang web o ạ e trả công ạ
LikeLike
Ko em ơi
LikeLike
trang web này của anh cũng lấy user facebook của người truy cập ak anh?(nếu không đúng thì coi như em chưa bl nha).
LikeLike
Rip luôn Lotter Cinema 🙂
LikeLike
Với nhưng trang web chuyên kinh doanh về nội thất văn phòng như này: http://chomuabannoithat.vn/ thì cần làm gì để bảo mật hả các. có công cụ gì để hỗ trợ bảo mật không
LikeLike
2019 mới đọc định tét thử nhưng mà hình như đã fix lỗi cookie hiển thị thông tin đã mã hóa
LikeLike
Best che tên :)) HienVoThai :)) a che hay quá ahihi
LikeLike
Cho mình xin ít tài liệu về bảo mật website nhé
https://rubyfitness.vn/danh-muc-thiet-bi/thiet-bi-phong-gym/may-tap-robot/
LikeLike