前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用python模拟登陆腾讯微博

使用python模拟登陆腾讯微博

作者头像
老高的技术博客
发布2022-12-27 15:54:29
9630
发布2022-12-27 15:54:29
举报
文章被收录于专栏:老高的技术博客

由于业务需要,研究了一下腾讯微博等登陆,下面分享一些经验给大家: 标题写的是腾讯微博的登陆,其实也可以隐身到腾讯旗下多个产品的登陆,比如QQ空间,webQQ等,想到这儿大伙是不是很激动呢?

[TOC]

表急,等我细细道来。

数据采集

有时候简单的数据不需要这么大费周折!使用某些语言自带的web工具也是可以的!下面我以Python为例:

分析登录过程

登录过程需要抓包,我是用的HttpWatch,大体步骤如下

第一步 手动登陆,抓包,记录登录过程
  1. 当输入完账号后想服务器请求验证码
  2. 等级登陆按钮后将登录信息发送至认证服务器,实现第一次认证
  3. 服务器返回登陆成功信息,其中包含最终URL
  4. 第二次认证,获取腾讯微博的cookie
第二步 伪造登录过程
  1. 获取验证码
  2. 根据验证码计算出加密后的密码以及其他信息,发送GET请求至认证服务器
  3. 根据返回URL获取最终cookie

工作难点

本文假设读者理解http协议及数据包的发送原理,以此为基础,工作的难点就集中在数据的准备上。

  • 密码的加密原理
  • cookie的处理
  • header的UA及refer的一致性
密码加密算法

以下提取自登录页面的c_login_2.js文件

代码语言:javascript
复制
function getEncryption(password, uin, vcode) {
    var str1 = hexchar2bin(md5(password));
    var str2 = md5(str1 + uin);
    var str3 = md5(str2 + vcode.toUpperCase());
    return str3
}


if (b == "login") {
    d.u = encodeURIComponent(pt.plogin.at_accout);
    d.verifycode = $("verifycode").value;
    if (pt.plogin.needShowNewVc && pt.plogin.pt_verifysession) {
        d.pt_vcode_v1 = 1;
        d.pt_verifysession_v1 = pt.plogin.pt_verifysession
    }
    if (pt.plogin.RSAKey) {
        d.p = $.Encryption.getRSAEncryption($("p").value, d.verifycode);
        d.pt_rsa = 1
    } else {
        d.p = $.Encryption.getEncryption($("p").value, pt.plogin.saltUin, d.verifycode);
        d.pt_rsa = 0
    }
}

加密方法大致如下:

  1. 判断是否RSA加密,如果不是,走getEncryption对称加密方法
  2. 对称加密用到了salt,参数分别为原密码,加密帐号和验证码 算法如下: a. 使用md5加密密码,并输出其二进制值 b. 解密验证码中的类似\x01等数字,再与第一步拼接再一次加密,输出输出32位的16进制 c. 再与验证码中类似!VXT的大写拼接加密,再输出输出32位的16进制
cookie及UA

UA和cookie数据比较基础,在此不赘述,主要需要搞清楚登录路径即可!

action和login_sig

action参数可以乱填,和登陆没关系

login_sig提取自登陆页面,需要在登陆时发送!

代码

部分参考自 http://www.oschina.net/code/snippet_95475_11051

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据采集
    • 分析登录过程
      • 第一步 手动登陆,抓包,记录登录过程
      • 第二步 伪造登录过程
    • 工作难点
      • 密码加密算法
      • cookie及UA
      • action和login_sig
  • 代码
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档