Trang web sendo bị hack thế nào?

0

Có thể nói rằng các lỗ hổng phổ biến nhất trên thế giới đến thời điểm hiện tại đều là những lỗ hổng đơn giản như: sql injection, xss, broken authentication,… Và những lỗ hổng đó vẫn còn tồn tại ngay cả trên những website lớn hiện nay.

Hôm nay tình cờ mình xem lại thấy có bài viết nói về quá trình phát hiện và cáo cáo 2 lỗ hổng bảo mật đơn giản của anonymous trên website sendo. Và giờ mình sẽ trình bày lại sơ qua về quá trình phát hiện và khai thác lỗ hổng bảo mật website này như thế nào.

Xem thêm: Trang web sinhvienit bị hack thế nào?

Lỗ hổng XSS

Trước hết, khi đăng ký tài khoản sendo và vào phần thông tin cá nhân, để ý vào phần họ tên và địa chỉ thì website này cho nhập các ký tự đặc biệt.

Check thử XSS bằng cách thêm thông tin như sau:

  • Họ và tên : <img src=a onerror=alert(1);>
  • Địa chỉ : <img src=a onerror=alert(1);>

Khi bấm lưu thông tin lại, thì alert xuất hiện >>> Thế là xong!

Từ đây, bạn có thể thay đổi giá trị “1” thành bất kỳ đoạn javascript nào khác mà bạn thích, thậm chí lưu cookie vào một server từ xa mà nạn nhân khi click chuột vào profile của bạn cũng không hề hay biết.

Có một điều đáng nói ở đây là tại phần địa chỉ nhân hàng của website, thì bất cứ nhân viên nào khi muốn xem đơn hàng của bạn cũng phải kiểm tra thông tin về địa chỉ đặt hàng của bạn. Trong trường hợp nhân viên của sendo click vào xem thông tin địa chỉ nhận hàng của bạn, cookie của nhân viên đó sẽ nằm trên server của bạn ngay.

Lỗ hổng brute force

Về việc cập nhật số điện thoại trên các website thương mại điện tử là điều quá hiển nhiên rồi, đối với website sendo, bạn muốn lưu thông tin cập nhật số điện thoại phải có mã OTP.

Tại đây nhập đại số điện thoại có đầu 0923 và sau đó bấm tiếp tục để mở lên bảng nhập mã OTP.

Tiếp đó mở phần mềm Burp Suite lên, chạy qua proxy 127.0.0.1 port 8080 và chuyển qua tab Intercept bật on lên.

Nhập đại mã 123456 và sau đó bấm xác nhận.

Khi Burp Suite bắt được request có tham số otpCode=123456 thì đây chính là mã OTP mới nhập.

Tiếp đó qua tab Payloads và chọn 123456 làm payload, set giá trị từ 1000 đến 9999. Lý do chọn từ điển có 4 số bởi vì sendo gửi mã xác nhận về điện thoại chỉ có 4 số.

Và chạy ra kết quả như sau:

Khi otpCode chạy đến số 6538 thì nó dừng lại báo mã 200 và hiện thông báo “tài khoản đã xác thực số điện thoại”.

Vậy nghĩa là mã OTP của sendo quá yếu và hoàn toàn có thể brutefoce nhanh chóng được.

5/5 (1 Review)