Account Hijacking with XSS

6个vulnerability导致account takeover - Victim 访问黑客的页面后, 黑客就可以改变victim的密码.

Attacking Scenario

  1. User opens attacker's site
  2. Attacker site exploits vulnerabilities on www.google.com
  3. Password reset email is sent to the attacker

Exploit

Step 1 - Found an Xss on www.google.com (Vulnerability 1)

帮助页面存在XSS, Video中截图是google doc.

Step 2 - Starting Account Recovery

访问Account Recovery Page, 第一步需要输入Email. 利用XSS获取Email Address.

  • XSS payload runs on www.google.com.
  • Account recovery first step is on www.
  • Email address is easy to extract on www

Step 3 - CSRF on accounts.google.com (Vulnerability 2)

在Google Recovery Page中, 输入Email后, 第二步是要输入"你记得所使用过的密码". 这一步是在accounts.google.com, 与发现xss的domain不同, 无法利用xss点击"I dont know"按钮. Attack利用的是CSRF.

  • 图中的form所submit的URL = 该Page的URL.
  • Page URL带有一个叫CPR的token,作为CSRF protection.

Attacker要利用CSRF的话, 首先需要知道这个叫CPR的token.

  1. 读取EST token (该token在www上)
  2. 在attacker Server中repeat rediect 2请求
  3. Google server会返回CPR token
  4. Submit form using CPR token

第二步需要在server side进行, 因为cookie token都是http-only, XSS无法读取.
第二步之所以可以在attacker server中发送请求, 是因为该请求并不需要任何的session cookies.

Step 4 - Choosing the questionnaire

这一步回到了www domain, XSS可控制action. Attacker要做的是, 获取password reset email, 于是他需要点击"Verify your identity by answering multiple questions about your account".

Step 5 - The questionnaire

Transfer google data page有齐所有recovery其中一个问题的答案.

Step 6 - Win

Password reset email is sent to the attacker

Show Comments