Prerequisites for Carrying out a Pre-Account Takeover Attack

Điều kiện cần để xảy ra lỗ hổng này:

  • Ứng dụng cho phép tạo tài khoản và tài khoản phải được lưu vào trong database trước khi email validation xảy ra hoặc không có email validation.
  • Ứng dụng cho phép xác thực sử dụng SSO (nhưng không bắt buộc).
  • User có thể lựa chọn giữa việc đăng nhập sử dụng cách truyền thống hoặc SSO.

How Pre-Account Takeover Works?

Để tấn công, attacker cần nhắm đến một user mà đã biết trước email và dụ dỗ họ đăng nhập vào ứng dụng sử dụng SSO (có thể thông qua phishing).

Attacker tạo tài khoản sử dụng email của nạn nhân theo cách truyền thống.

POST /register HTTP/2
Host: test.vaadata.com
User-Agent: Custom user agent
Content-Type: application/json
Content-Length: 104
 
{"email":"johnbrown@gmail.com", "firstname":"john", "lastname":"Brown", "password":"verystrongpassword"}

Việc có thể xác thực được email hay không là không quan trọng. Khi tài khoản được tạo ra, một email sẽ được gửi đến victim confirm rằng tài khoản đã được tạo.

Attacker sau đó chờ victim đăng nhập bằng SSO. Do email của victim đã được dùng để tạo tài khoản bởi attacker, họ sẽ được redirected về account của attacker mà không hề biết.

Sau đây là request dùng để upload một tài liệu riêng tư:

POST /documents HTTP/2
Host: test.vaadata.com
Cookie: session=***
User-Agent: Custom user agent
Accept: */*
Accept-Encoding: gzip, deflate, br
Content-Type: multipart/form-data; boundary=---------------------------41902792651389033399194766463
Content-Length: 1188
 
-----------------------------41902792651389033399194766463
Content-Disposition: form-data; name="doc"; filename="internal_network_doc.pdf"
Content-Type: application/pdf
[…TRUNCATED DATA…]

Attacker có thể đăng nhập vào tài khoản bất kỳ lúc nào sử dụng cách truyền thống và thực hiện xem, sửa hoặc xóa dữ liệu của nạn nhân.

Resources

-What is Pre-Account Takeover? Exploitations & Security Tips