Vào một ngày mình đang xem phần backup trên hostvn và do quên mật khẩu của cpanel mà mình thấy có một số bug nguy hiểm trên hệ thống liên quan tới CSRF có thể khiến cho user mất thông tin đăng nhập cpanel của hostvn cụ thể thì bên dưới chi tiết
Đầu tiên để có thể có mật khẩu mới thì người dùng phải vào trang dịch vụ rồi dùng chức năng thay mật khẩu mới của dịch vụ
Có một điều bạn có thể thấy đấy là hệ thống không yêu cầu mật khẩu cũ cái này tiện cho mình đấy vì mình đang quên cơ mà liệu nó có vấn đề gì khi không check mật khẩu cũ không? ví dụ csrf chả hạn? nhìn qua http request tý thì thấy như sau
Như vậy dev hệ thống đã dùng cách là đưa 1 cái token vào để có vẻ như ngăn chặn CSRF thay vì check mật khẩu cũ nếu như token này bị xóa thì chuyện gì xảy ra hoặc nó bị sai thì sao? mình đã thử để token là 1 và dưới đây là kết quả
Kết quả là token này không có tác dụng gì cả mật khẩu được thay đổi thành công
Từ đó mình thực hiện tấn công CSRF thay đổi thành công mật khẩu của cpanel của hostvn, tuy nhiên đến đây có một vấn đề mà dev có thể nói điều kiện chưa đủ vì còn id rồi username để có thể chiếm và đăng nhập được vào bên trong từ đó mới gây ra nguy hiểm, để làm được điều này chúng ta sẽ dùng 2 api sau để trích xuất thông tin
API check my-products của hệ thống ngoài việc tiết lộ cho chúng ta thông tin về ID của người dùng nó còn cho chúng ta một link biết được thông tin link đăng nhập 1 lần vào dịch vụ DNS nữa, điều này sẽ gay nguy hiểm nếu người dùng dùng dns của hostvn
Để hoàn thành việc tấn công chiếm thông tin thì chúng ta tiếp tục lợi dụng api productdetails để tấn công lấy username cái này khó hơn và chúng ta phải tách dom html
Cách đơn giản hơn bạn có thể suy ra từ domain chính của cpanel cái này ai dùng cpanel tạo user thì đều rõ ha mình không đề cập
Với đủ các thông tin trên mình có thể làm
- Thay đổi mật khẩu đăng nhập của user cpanel và chiếm quyền tài khoản cpanel từ đó phát tán mã độc đánh cắp mã nguồn, thông tin khách hàng
- Chiếm quyền trang quản lý dns của domain từ đó chuyển hướng domain của user