Nguy cơ lộ thông tin hơn 4.7 triệu người dùng Chotot.com

Trước đây mình chưa từng nghe qua Chợ Tốt, tháng trước thấy báo chí đưa tin Chợ Tốt bán mình vào xem thử có gì hay ho.

Lỗi lần này thực sự không có gì, chỉ đơn thuần là sự dư thừa dữ liệu trả về từ API.

Quá trình tìm lỗi

Như mọi lần, bật console của browser lên check vài URL xem request có gì thì ..kinh hoàng. console.log được sử dụng mọi lúc mọi nơi, trải dài từ trên xuống dưới. Chắc đang check mấy cái tracking. Có lẽ bạn dev thích test trên môi trường live hơn là local.

Kiểu này thì nguy hiểm tiềm tàng luôn, đôi lúc thông tin được debug bị in ra mà gặp thằng rảnh như mình thì cũng buồn lắm chớ :)))

Ám ảnh :))

Xem một bài đăng bán bình thường thì thấy tin đăng bán kèm với thông tin user, capture request được kết quả như sau.

Thông tin bài đăng và data user được get thông qua 2 API:

  • https://gateway.chotot.com/v1/public/ad-listing/[ID]

API thông tin bài đăng

  • https://gateway.chotot.com/v1/public/profile/[ID]

API thông tin người dùng

Ok. ổn rồi, 2 API này đều được request thông qua get và không có param gì ngoài ID là một chuỗi số.

API Profile nghe kích thích hơn nên mình check nó trước. Mở nó trực tiếp trên browser, và dòm response trả về. Có gì đó không đúng thì phải. Bạn để ý xem có gì đặc biệt?

Như các bạn thấy, hầu hết thông tin của user, bao gồm email, số điện thoại, địa chỉ, thậm chí location chính xác của user đều được show ra, trong khi đáng ra chỉ cần trả về thông tin cần cho bài đăng như tên và số điện thoại.

Như đã nói ở trên, ID của mỗi request là một chuỗi số, bằng việc thay đổi ID này thì mình dễ dàng lấy được thông tin của user khác. Kiểm tra ở thời điểm hiện tại thì ID lớn nhất là 4700206.

Điều này đồng nghĩa với việc mình có thể dễ dàng lấy hơn 4,7 triệu thông tin người dùng từ chotot.com

Nguy cơ: rò rỉ thông tin người dùng.

Quay lại với API thông tin bài đăng. Cũng không ngạc nhiên khi end point này mắc các lỗi tương tự.

Những thông tin có thể trích xuất từ Endpoint này rất cụ thể. Ví dụ loại bài đăng là cần bán/cần mua, người dùng nào, bài viết có được quảng cáo hay không, địa chỉ, số điện thoại, target quảng cáo ở location nào….

Nguy cơ: thông tin business Chợ Tốt được thu thập dễ dàng.

Còn một số API khác cũng tựa tựa như vậy.

Một vài lỗi khác

  • Open redirect, mặc dù có filter nhưng edit chút là bypass được.

https://accounts.chotot.com/redirect?continue=http://codechoi.com%2523.chotot.com

  • Spam gate sms, khi đăng kí xong thì server yêu cầu verify tài khoản bằng số điện thoại, có cái nút gửi lại mã. Mình replay cái request đó thì sms gửi liên tục mà không có bất cứ sự ngăn chặn nào từ phía server. Tương tự với chức năng quên mật khẩu. Điều này có thể dẫn đến các vấn đề

Ảnh hưởng

Hơn 4,7 triệu profile người dùng, khoảng 29 triệu thông tin mua bán (kiểm tra từ ID của API) của Chợ Tốt coi như công khai cho tất cả mọi người. Con số quá lớn và là nguồn dữ liệu quý giá cho bất kì công ty nào, đặc biệt là thương mại điện tử, các trang C2C, B2B..

Nếu toàn bộ những thông tin này bị lấy, và attacker biết cách sử dụng tốt số dữ liệu đó, thì business của Chợ Tốt chắc chắn bị ảnh hưởng.

Thông báo lỗi

21/05/2017: Gửi email thông báo lỗi.

23/05/2017: Nhận email trả lời từ support, báo rằng kĩ thuật đã nhận thông tin.

Tuy nhiên đến hôm nay  13/06/2017. Hơn 4 tuần trôi qua, các API vẫn trả về full info như lúc đầu.

Có vẻ hơi lâu đối với những lỗi về API như thế này. Làm mình có 2 suy đoán:

  1. Có vẻ Chotot.com không coi đây là lỗi, nên bỏ qua.
  2. Đội kĩ thuật đã nhận thông tin, nhưng ..quên fix =)), cũng có thể nhiều task quá nên không ưu tiên.

Mình thì nghiêng về option 2 hơn.

Nhận xét

Nếu các bạn có theo dõi, trong thời gian vừa rồi cũng có vài doanh nghiệp bị lộ dữ liệu, thông qua các API như thế này

https://toidicodedao.com/2016/12/06/lozi-vn-lo-du-lieu-2-trieu-nguoi-dung/

https://junookyo.blogspot.com/2016/10/ro-ri-3-trieu-thong-tin-ca-nhan.html

Quan tâm một chút nữa, thì vấn đề bảo mật API hiện tại luôn là ưu tiên hàng đầu.

Xin phép copy nhận xét của bạn Hoàng từ Toidicodedao.com

[…]Điều đáng nói qua sự việc này là: các lỗ hổng bảo mật này thuộc loại vô cùng cơ bản, mình là dân “tay ngang” có thể khai thác mà không cần tool chuyên dụng (Kali Linux, Tool Penetration Test), chỉ cần Chrome và SublimeText.
Các hệ thống lớn mà đôi khi còn lỏng lẻo kiểu này, liệu dữ liệu của chúng ta có an toàn khi các hacker “chuyên nghiệp” ra tay??
[…]Điều gì sẽ xảy ra nếu người tìm ra lỗi này không phải là mình mà là một hacker “có tâm”, sẵn sàng cào hết dữ liệu về rồi chia sẽ hoặc bán cho các công ty khác, hoặc các công ty đối thủ cạnh tranh[…]

Đó là lí do mà Uber, Grab… đều sẵn lòng trả hàng ngàn USD cho mỗi lỗi có thể lấy được UID hay Email thông thường.

Tuy thông báo đã lâu, và API chưa được fix, mình vẫn công bố chi tiết lỗi. Có lẽ là mình hành động không đẹp, nhưng hi vọng Chotot.com sẽ xem xét đây là một vấn đề thực sự và nhanh chóng fix nó.

Trong bối cảnh đảng và nhà nước đặt mục tiêu đón đầu cách mạng 4.0. Trong tương lai có lẽ không ít  doanh nghiệp Việt Nam sẽ sánh vai với các cường quốc ..Đông Nam Á. Trách nhiệm của mỗi công ty là bảo vệ dữ liệu của chính mình, không được cho kẻ thù xâm chiếm =)) (nhảm)

A&C

About the Author

A&C

Thanh niên ham chơi hơn ham học, thích bay nhảy hơn đi mần, tinh thần giao lưu kết bạn nhưng ngại tiếp xúc. Mong manh khó vỡ, ảo tưởng sức mạnh >:)

Follow A&C:

Leave a Comment: