发现微博 mobile web 版的登陆接口完全不设防

2017-02-18 16:12:40 +08:00
 fytriht

地址: https://m.weibo.cn 登陆接口: https://passport.weibo.cn/sso/login

不用抓包工具,直接用 chrome dev tools 就可以找到接口,没有验证码(试了几十次没有遇到过), Post 的账号密码数据也没有加密.... 是因为是测试版的缘故吗?

分享一下我模拟登陆的代码:

const superagent = require('superagent')

const weiboLogin = (username, password) => {
  const loginApi = 'https://passport.weibo.cn/sso/login'
  const formData = { username, password }
  const headers = {
    'Referer': 'https://passport.weibo.cn/signin/login',
    'Content-Type': 'application/x-www-form-urlencoded'
  }
  return new Promise((resolve, reject) =>
    superagent.post(loginApi)
      .set(headers)
      .send(formData)
      .end((err, res) => {
        if (err) reject('something went wrong.')
        try {
          const { rawHeaders, text } = res.res
          const cookie = rawHeaders.filter(item => item.startsWith('SUB='))
                           .map(item => item.split(';')[0])
                           .join()
          const uid = JSON.parse(text).data.uid
          if (uid === undefined) reject('wrong password or username')
          resolve({ cookie, uid })  // uid: user ID
        } catch (err) {
          reject('something went wrong.')
        }
      })
  )
}

weiboLogin('username', 'password')
  .then(res => console.log(res.cookie))
  .catch(console.error)

项目地址是 https://github.com/fytriht/weibo-cleaner

7740 次点击
所在节点    信息安全
61 条回复
gy911201
2017-02-19 23:49:21 +08:00
@340244120 其实对于担心密码隐私的用户来讲,使用类似 1password 或者 浏览器自带的密码工具生成密码做到一账户一密码应该是一个更好的选择吧……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341416

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX