QRCode Login Account Takeover

Introduction

  1. 发起qrcode login,黑客停留在qrcode的页面
  2. 黑客利用qr decoder 获取qrcode隐含的URL
  3. 黑客访问#2 URL会得到一个form,比如说form的action是https://fb.com/approve
  4. 创造一个csrf-attack poc
  5. 将#4的form地址,如https://attacker.com/poc 发送给已登陆fb的victim
  6. 由于服务器的设置
    6a. victim需要先点击打开form中action的地址
    6b. 然后用js代victim发送csrf-attack的form,victim并不知情地approve了请求
  7. 此时,发起qrcode login的黑客的页面将会自动跳转,并以victim的身份登陆。

NIN: 作者话由于该form是没有csrf-token,所以是整个漏洞的原因。 但是笔者认为,即使有了csrf-token也没用,因为在approve之前,服务器根本不知道是谁发送这个请求,csrf-token也无法对应起user。就算加入了csrf-token, 黑客可以将该token加入去csrf-attack poc中。

Mitigation

要修复该漏洞,笔者认为

  1. 服务器要检查发送请求的是否来自fb app
  2. 服务器要检查IP地址是否用户经常访问的地址
  3. MFA

延伸阅读

QRLJacking Attack · OWASP/QRLJacking Wiki · GitHub

Ref

HOW I WAS ABLE TO TAKEOVER FACEBOOK ACCOUNT | Bug Bounty Poc - Security Breached Blog

Show Comments