Chào các bạn
Đây là bài Write-up đầu tiên của mình về săn lỗi bảo mật, và kiến thức bảo mật của mình còn chưa chắc nên có thể có sai sót, mong các bạn góp ý
Mình xin gửi lời cảm ơn tới bạn đã báo lỗi cho mình, các anh trong J2 Team đã tận tình giúp đỡ mình phân tích lỗi
Nếu các bạn coi thấy hình ảnh nhỏ quá thì Click vào ảnh để phóng to ra nhé
Nhắc lại: Mọi thứ tôi nói đây không phải là nói suông, tất cả đều có bằng chứng xác thực. Và tôi sẵn sàng cung cấp đủ nếu các bạn yêu cầu
CHAPTER 1: Lỗi tình cờ được phát hiện ra từ thất bại
Mọi chuyện bắt đầu như sau
Một buổi tối nọ, tôi đăng thông báo lên 1 group của người chơi Chinh Phục Vũ Môn (CPVM) rằng tôi đang nghiên cứu cách login CPVM không cần User và Pass (Tuy nhiên cách của tôi đã thất bại). Thì có 1 bạn Inbox tôi bảo rằng bạn đó cũng có 1 cách, nhờ tôi kiểm tra. Tất nhiên là OK và tôi bảo bạn đó trình bày thì bạn đó nói như sau
B4: Tôi được 1 cái link như sau
http://game.cpvm2.vn/cpvm/?ui=4810478&code=6991241744dd53392c75062d76fbb277&un=cpvmbypasser&from=
B5: Giờ ta thoát nick ra
B6: Paste link lại xem điều gì sẽ xảy ra
B7: Oắt đờ heo. Login bình thường
CHAPTER 2: Từ Hackbar tới tìm ra mấu chốt vấn đề
B1: Do cái URL quá dài nên tôi đã dùng công cụ HackBar (Công cụ vang danh để tìm XSS) để tách các thành phần của URL ra. Kết cục tôi được như sau
http://game.cpvm2.vn/cpvm/
?ui=4810478
&code=6991241744dd53392c75062d76fbb277
&un=cpvmbypasser
&from=
Và tôi đã khái quát cấu trúc 1 đường link đó là như sau
http://game.cpvm2.vn/cpvm/
?ui=ID Nick đó
&code=Cái này là bản chất vấn đề
&un=Tên đăng nhập đó
&from=
B2: Do chưa có nhiều kiến thức về bảo mật. Tôi bèn làm Video sau gửi J2 Team,
Vậy ta có thể tạm coi cái &code trên là một mã Token.
Nhưng, Mã Token là cái gì: Tôi có tham khảo một số trang web của Ngân Hàng và Hack like Facebook. Cuối cùng chốt lại mấy khái niệm sau
Chúng ta có thể hiểu token Facebook là một đoạn mã được Facebook sinh ra cho mỗi đối tượng sử cụ thể (Ví dụ 1 cá nhân, 1 Fanpage hay 1 ứng dụng). Đoạn mã này có thể giúp bạn thực hiện nhiều động tác cho đối tượng đó mà không cần phải trực tiếp quản lý (không cần biết mật khẩu).
Token tên đầy đủ Access Token là đoạn mã sinh ra ngẫu nhiên khi người dùng đồng ý cho ứng dụng thứ 3 thực hiện các thao tác quan trọng, hay truy cập vào tài khoản của người dùng. Bạn có thể tạm hiểu access token trong trường hợp này như một đường hầm bí mật để vào ngôi nhà của bạn. Các hình thức xác thực như username, password giống như khóa và chìa khóa cửa nhà của bạn vậy. Access token sẽ không đi qua cánh cửa này.
Chốt lại: Token là 1 đoạn mã mà ta có thể dùng để kiểm soát tài khoản không cần User và Pass
Vậy lỗi ở đây là server CPVM đã không hủy token khi user đăng xuất ra. Hehe.
Gợi ý cách fix: Xem xét với thời gian tồn tại của bộ phận &code= (Tốt nhất là tự hủy sau khi user logout)
Kịch bản tấn công 1 (Sử dụng SET+Ettercap+Tonken)
CHAPTER 3: TIMELINE BÁO CÁO ADMIN
- Từ 14h-16h ngày 18/10: Sau khi đã tập hợp đủ căn cứ và lí lẽ, tôi xách lap đi báo lỗi. Tôi thử báo lỗi ở chatbox hỗ trợ trên Website. Thì 3 lần họ không trả lời tôi
- 17h ngày 18/10: Tôi gọi vào SĐT hỗ trợ kĩ thuật 0967 345 456. Và được yêu cầu làm mail gửi vào email hotro@egame.vn
File ghi âm lại cuộc nói chuyện: https://drive.google.com/open?id=0B0QLXZ0JRxnrN0ctVmU1QzB5dm8
- 17h03 ngày 18/8: Mail số 1 được gửi đi
- 17h09 ngày 18/10: Phía hỗ trợ phản hồi là đã nhận được Mail
- 10h22 ngày 19/10: Hỗ trợ kĩ thuật phải hồi lại. Nhưng WTF, bọn họ viết cái éo gì thế này. À hóa ra đây bọn họ Copy và Paste 1 cái tus đăng trên Fanpage hồi tôi dùng SEToolkit và Ettercap để Hack nick. Các bạn có thể xem bài 1 của Series Hacking with Kali Linux nhé. Hồi đấy mình có war lớn với bọn Admin nên tôi chụp ảnh lại rất cẩn thận nên bạn xem ảnh thấy là 7h trước nhưng thực ra nó chụp cách đây 2 tháng rồi
-11h47 ngày 19/10: Tôi gửi phản hồi lại. Lần nay hơi chửi tục tí vì đã quá ức chế rồi
-17h44 ngày 19/10: Tôi gửi luôn cả bài blog cho họ. Giờ đang chờ phản hồi
Tới khi nào lỗi này được fix, tôi sẽ cập nhật lại
Đây là bài Write-up đầu tiên của mình về săn lỗi bảo mật, và kiến thức bảo mật của mình còn chưa chắc nên có thể có sai sót, mong các bạn góp ý
Mình xin gửi lời cảm ơn tới bạn đã báo lỗi cho mình, các anh trong J2 Team đã tận tình giúp đỡ mình phân tích lỗi
Nếu các bạn coi thấy hình ảnh nhỏ quá thì Click vào ảnh để phóng to ra nhé
Nhắc lại: Mọi thứ tôi nói đây không phải là nói suông, tất cả đều có bằng chứng xác thực. Và tôi sẵn sàng cung cấp đủ nếu các bạn yêu cầu
CHAPTER 1: Lỗi tình cờ được phát hiện ra từ thất bại
Mọi chuyện bắt đầu như sau
Một buổi tối nọ, tôi đăng thông báo lên 1 group của người chơi Chinh Phục Vũ Môn (CPVM) rằng tôi đang nghiên cứu cách login CPVM không cần User và Pass (Tuy nhiên cách của tôi đã thất bại). Thì có 1 bạn Inbox tôi bảo rằng bạn đó cũng có 1 cách, nhờ tôi kiểm tra. Tất nhiên là OK và tôi bảo bạn đó trình bày thì bạn đó nói như sau
Hmm, rồi để mk test xem. Nhưng mà link đó xuất hiện nhanh quá rồi lại mất đi. Làm sao copy lại được. Tôi bèn thử cách sau và đã thành công
B1: Vô trang login http://cpvm.vn/home.html và mở Kiểm tra phần tử lên
B2: Chuyển sang thẻ Console và Login 1 cái nick clone vào
B3: Nhìn dòng login complete và copy cái link đó
http://game.cpvm2.vn/cpvm/?ui=4810478&code=6991241744dd53392c75062d76fbb277&un=cpvmbypasser&from=
B5: Giờ ta thoát nick ra
B6: Paste link lại xem điều gì sẽ xảy ra
B7: Oắt đờ heo. Login bình thường
CHAPTER 2: Từ Hackbar tới tìm ra mấu chốt vấn đề
B1: Do cái URL quá dài nên tôi đã dùng công cụ HackBar (Công cụ vang danh để tìm XSS) để tách các thành phần của URL ra. Kết cục tôi được như sau
http://game.cpvm2.vn/cpvm/
?ui=4810478
&code=6991241744dd53392c75062d76fbb277
&un=cpvmbypasser
&from=
Và tôi đã khái quát cấu trúc 1 đường link đó là như sau
http://game.cpvm2.vn/cpvm/
?ui=ID Nick đó
&code=Cái này là bản chất vấn đề
&un=Tên đăng nhập đó
&from=
B2: Do chưa có nhiều kiến thức về bảo mật. Tôi bèn làm Video sau gửi J2 Team,
B3: Và lời phân tích dưới đây được tôi chú ý nhất
Nhưng, Mã Token là cái gì: Tôi có tham khảo một số trang web của Ngân Hàng và Hack like Facebook. Cuối cùng chốt lại mấy khái niệm sau
Chúng ta có thể hiểu token Facebook là một đoạn mã được Facebook sinh ra cho mỗi đối tượng sử cụ thể (Ví dụ 1 cá nhân, 1 Fanpage hay 1 ứng dụng). Đoạn mã này có thể giúp bạn thực hiện nhiều động tác cho đối tượng đó mà không cần phải trực tiếp quản lý (không cần biết mật khẩu).
Token tên đầy đủ Access Token là đoạn mã sinh ra ngẫu nhiên khi người dùng đồng ý cho ứng dụng thứ 3 thực hiện các thao tác quan trọng, hay truy cập vào tài khoản của người dùng. Bạn có thể tạm hiểu access token trong trường hợp này như một đường hầm bí mật để vào ngôi nhà của bạn. Các hình thức xác thực như username, password giống như khóa và chìa khóa cửa nhà của bạn vậy. Access token sẽ không đi qua cánh cửa này.
Chốt lại: Token là 1 đoạn mã mà ta có thể dùng để kiểm soát tài khoản không cần User và Pass
Vậy lỗi ở đây là server CPVM đã không hủy token khi user đăng xuất ra. Hehe.
Gợi ý cách fix: Xem xét với thời gian tồn tại của bộ phận &code= (Tốt nhất là tự hủy sau khi user logout)
Kịch bản tấn công 1 (Sử dụng SET+Ettercap+Tonken)
Kịch bản tấn công 2: (Cái này mình tự nghĩ ra, chắc nó hơi điên rồ): Thuê 1 VPS cấu hình mạnh, cài 1 Add on có khả năng tự đổi IP mỗi khi Refresh (Hoặc dùng TOR). Paste Link Tonken vào và nhân đôi ra khoảng vài chục Tab. Cài thêm Add on AUTO RELOAD nữa là OK. Thế chả khác nào DDOS máy chủ
CHAPTER 3: TIMELINE BÁO CÁO ADMIN
- Từ 14h-16h ngày 18/10: Sau khi đã tập hợp đủ căn cứ và lí lẽ, tôi xách lap đi báo lỗi. Tôi thử báo lỗi ở chatbox hỗ trợ trên Website. Thì 3 lần họ không trả lời tôi
- 17h ngày 18/10: Tôi gọi vào SĐT hỗ trợ kĩ thuật 0967 345 456. Và được yêu cầu làm mail gửi vào email hotro@egame.vn
File ghi âm lại cuộc nói chuyện: https://drive.google.com/open?id=0B0QLXZ0JRxnrN0ctVmU1QzB5dm8
- 17h03 ngày 18/8: Mail số 1 được gửi đi
- 17h09 ngày 18/10: Phía hỗ trợ phản hồi là đã nhận được Mail
- 10h22 ngày 19/10: Hỗ trợ kĩ thuật phải hồi lại. Nhưng WTF, bọn họ viết cái éo gì thế này. À hóa ra đây bọn họ Copy và Paste 1 cái tus đăng trên Fanpage hồi tôi dùng SEToolkit và Ettercap để Hack nick. Các bạn có thể xem bài 1 của Series Hacking with Kali Linux nhé. Hồi đấy mình có war lớn với bọn Admin nên tôi chụp ảnh lại rất cẩn thận nên bạn xem ảnh thấy là 7h trước nhưng thực ra nó chụp cách đây 2 tháng rồi
Nội dung mail rất chi là WTF
Ảnh chụp cái Tus đã đăng cách đây 2 tháng trên Fanpage
-17h44 ngày 19/10: Tôi gửi luôn cả bài blog cho họ. Giờ đang chờ phản hồi
- 20h45 ngày 19/10: Té ra lỗi này đã được phát hiện cách đây 4 tháng. Nhưng Admin éo thèm fix
- 10h07 ngày 20/10: Hỗ trợ kĩ thuật trả lời là đã nhận được tài liệu bổ sung
- 18h52 ngày 21/10: 1 kịch bản tấn công giả định được công bố
- 18h00 ngày 23/10: Hỗ trợ Egame.vn gọi cho mình và thông báo rằng do hệ thống IDS cũ không hủy Tonken nên mới xảy ra hiện tượng trên. Hệ thống đó sắp được gỡ bỏ và thay thế bằng 1 hệ thống mới
Về vấn đề lỗi XSS, bên họ cũng đã kiểm tra và cho người fix
Cung cấp thông tin thêm về hệ thống IDS: http://quantrimang.com/he-thong-phat-hien-xam-pham-ids-phan-1-37334
Tới khi nào lỗi này được fix, tôi sẽ cập nhật lại
Không có nhận xét nào:
Đăng nhận xét