Tôi đã hack vào GZone (Đấu Trường Kỳ Lạ) như thế nào? Thái độ support

Các bạn đã bao giờ gặp một game mà bạn có thể bug cả phần nạp thẻ chưa? Nếu chưa thì bạn tìm đúng nơi rồi đấy, bài viết này sẽ là report về quá trình thực thi tấn công của mình vào trang web của 1 NPH game, bug kim cương và nạp tiền miễn phí. Nhưng điều bất ngờ nhất là thái độ của NPH.



Đến với game

Ban đầu mình chỉ có ý định tìm đến game này để giải trí, nhưng bạn biết đấy, nhu cầu của con người đối với vật chất rất cao, mình thì cũng có khả năng đấy, nạp cũng nhiều, và nhờ vậy nên mình đã biết đến trang web nạp game của NPH và vô tình phát hiện kiểu thiết kế cổ điển của nó.
Nhìn vậy thôi chứ sau đó cảm ơn rồi khóa tài khoản game wtf?


Vì sao mình lại nghĩ rằng khả năng cao trang web này có bug?

Lý do khiến mình có thể tự tin "vào việc" đó chính là vì thiết kế trang web của GZone khá cổ điển, phần nạp tiền vào game được code bằng PHP và xử lý sự kiện gửi đi bằng Ajax nên rất dễ để xem Requests url được gửi đi.

Quá trình bug (hack) nạp miễn phí

Quá trình bug của mình bắt đầu khi mình gửi thành công request đến api login của trang web, thiết kế của trang web này là kiểu đăng nhập bằng ID và ID này người khác có biết cũng không thể đăng nhập. Nguyên nhân là khi đăng nhập, bạn buộc phải nhập vào 2 chữ số ngẫu nhiên được cài cho ID ví dụ SE123456 thì 123456 chính là id game và SE chính là dãy ngẫu nhiên được tạo.

Tuy nhiên cũng không có gì quá khó khăn, sau một thời gian dài mình tham gia cộng đồng code và có nhiều dự án với hàng chục ngôn ngữ lập trình khác nhau, không khó gì để mình có thể đoán rằng dãy 2 chữ ngẫu nhiên này thật ra được tạo ra chỉ để trang trí và đánh vào tâm lý người chơi, thực tế thì chả ai bảo mật theo kiểu đó vì brute-force cũng ra, và khi tạo như vậy thì khả năng lớn database phải có thêm 1 cột, chắc cũng chả ai rảnh, trường hợp lấy những kí tự cuối hoặc bỏ 2 kí tự đầu sẽ hiểm gặp. Từ nguyên nhân đó nên mình khẳng định rằng chắc chắn dãy id này sẽ không detect bằng 2 kí tự đầu. Vậy là mình có thể thoải mái đăng nhập vào tài khoản game của bất kì ai để thực hiện nạp kim cương.



Nạp tiền miễn phí

Sau khi đăng nhập được vào tài khoản của người khác, mình sẽ tiến hành kiểm tra số gạo hiện có của người đó, mình sẽ ưu tiên những nick nằm trên đầu BXH vì những người đó thì thường có nhiều gạo, quả nhiên chính xác, mình login vào 1 nick có tầm 190K gạo, mình lấy được các dữ liệu cần thiết qua API như: role_id,role_name,app,token
API request đến link nạp tiền

Token là cái rất quan trọng, nó giúp mình xác định danh được tài khoản nạp trong cơ sở dữ liệu, lỗ hổng lớn nhất ở đây là: Khi nạp tiền thì role_id nào được request, sẽ nạp vào tài khoản có id tương tự.

Sau khi nhận ra được lỗ hổng này, mình tiến hành request API, lấy role_id của tài khoản mình trong game và quả nhiên đã hack thành công kim cương mà không cần nạp tiền, như vậy mình chỉ cần code tool auto dò uid, số tiền là đã có thể nạp hàng trăm nghìn kim cương mà không cần bỏ ra 1 xu nào, nhưng mình chỉ test 2 lần 500 kim cương (gói thấp nhất) và gửi về NPH

Thái độ của NPH

Sau khi gửi báo cáo lên NPH, đầu tiên mình nhận được thư cảm ơn từ NPH game qua mail, nhưng sau đó vài ngày tài khoản game của mình bị khóa, mình nhắn tin cho support bảo rằng số tài nguyên mình bug được chỉ dùng để quay video gửi NPH nhưng họ vẫn giữ nguyên quyết định. Vậy, rốt cục là game lỗi hay NPH lỗi?

2 Nhận xét

Mới hơn Cũ hơn