恩,慢慢更新,先挖个坑

写这个的主要原因是自己的微博被许多卖片的小姐姐们关注了,很恶心,准备一次清理掉

/*******--***********/

首先还是老样子,分析一下网站对账号密码的加密操作

老规矩,能从移动端入手就不从PC端入手,但是这次直接从PC入手,weibo.com(移动端weibo.cn)

当输入完账号按下tab切到密码框时,我们会捕捉到一个get请求,打开看看

https://login.sina.com.cn/sso/prelogin.php?checkpin=1&entry=mweibo&su=MTU2MDYxMzAwMDk=&callback=jsonpcallback1508381565848

返回的一个json串

retcode

    0
servertime
  1508381509
pcid
  "tc-f85808f34da5621cedf8bd9170eae0006ce2"
nonce
  "BR74OK"
pubkey
  "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrKjhWhmGIf6GAvdtcq9XyHHv9WcCQyy0kWoesJTBiiCcpKT5VBjUFCOf5qju3f0MzIxSQ+RX21jxV/i8IpJs1P0RK05k8rMAtt4Sru45CqbG7//s4vhjXjoeg5Bubj3OpKO4MzuH2c5iEuXd+T+noihu+SVknrEp5mzGB1kQkQwIDAQAB-----END PUBLIC KEY-----"
rsakv
  "1330428213"
is_openlock
  0
lm
  1
smsurl
  "https://login.sina.com.cn/sso/msglogin?entry=mweibo&mobile=15606130009&s=2ae11f76e8865a2a07492ed2dbab69f6"
showpin
  0
exectime
  9

挨个分析一下,retcode毫无疑问是返回的状态值,servertime顾名思义是时间,对这个敏感的同学应该发现这是一个去除小数点的时间戳,即time.time()*1000

中间几个后面会用到,这边先不说,showpin是对验证码是否弹出的一个设定,前两天测试的时候总是会弹出一个验证码图片,即showpin=0,今天测试的时候不知道为什么这个值变成了0,即没有验证码,不清楚触发的条件是什么

再对域名传过去的值进行分析

checkpin=1&entry=mweibo&su=MTU2MDYxMzAwMDk=&callback=jsonpcallback1508381565848

checkpin应该是检验是否请求验证码的值(猜测),entry入口是手机版微博,callback即我们上面截图里的json串,下面就是这个su了

su是什么值呢,根据我们申请的时间分析,毫无疑问这就是我们的账号进行了加密之后的显示

在js中寻找一下给账号加密的函数(用mac的同学可以尝试一下Charles,很不错的软件,LInux下不清楚怎么用,所以直接firebug慢慢找了)

我们在js中找到了这么一句

opt.data.su = utf8_to_b64(trim(that.loginName.value));

OK,这就是对我们用户名的加密的过程了,trim是js包中的一个函数,寻找一下他的定义

function trim(str) {
        return (!str) ? '' : str.toString().replace(/^\s+|\s+$/g, '');
    }

utf8_to_b64即是base64的加密方法

总结一下我们可以获得 su = base64.b64encode(urllib.parse.quote_plus(user_name).encode('utf-8')).decode('utf-8')

那么第一个函数可以着手写了

    def get_username(self):"""get legal username"""username_quote = urllib.parse.quote_plus(self.user_name)username_base64 = base64.b64encode(username_quote.encode("utf-8"))return username_base64.decode("utf-8")

那么用户名获取写完了后面毫无疑问要写密码的加密了

我们先尝试进行一次登录,看一下到底一次登录post了哪些数据

encoding

  UTF-8
entry weibo
from  
gateway 1
nonce Z3BWVX
pagerefer  
prelt 54
pwencode rsa2
qrcode_flag false
returntype META
rsakv 1330428213
savestate 7
servertime 1508384126
service miniblog
sp b223228fbe8bd7510d338871081ca1e01b346e9ea0c47dff16f7a72432ebac05f3064c65e07d97d1a48d747c4db3b2b0d94e7b109db80f1e9e430a4c2780f8b3e3a721723a30db41c951c03af6ea04d35c6f48e597fbf32e770fe574af1941bf6d3484443d3c83d2114f83d3b649c01d25d57b779efa031169ac880b5ac3e694
sr 1920*1080
su MTU2MDYxMzAwMDk=
url http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack
useticket 1
vsnf 1

其他就不看了,直接看到了sp,即加密之后的密码,我们拎出来看一下

b223228fbe8bd7510d338871081ca1e01b346e9ea0c47dff16f7a72432ebac05f3064c65e07d97d1a48d747c4db3b2b0d94e7b109db80f1e9e430a4c2780f8b3e3a721723a30db41c951c03af6ea04d35c6f48e597fbf32e770fe574af1941bf6d3484443d3c83d2114f83d3b649c01d25d57b779efa031169ac880b5ac3e694

因为看到了rsakv这个列,所以我们几乎可以确定,加密过程中必然有rsa的参与,让我们看看js里能否找到加密的过程

if(me.service){request.service=me.service}if((me.loginType&rsa)&&me.servertime
&&sinaSSOEncoder&&sinaSSOEncoder.RSAKey){request.servertime=me.servertime;request.nonce=me.nonce;request
.pwencode="rsa2";request.rsakv=me.rsakv;var RSAKey=new sinaSSOEncoder.RSAKey();RSAKey.setPublic(me.rsaPubkey
,"10001");password=RSAKey.encrypt([me.servertime,me.nonce].join("\t")+"\n"+password)}else{if((me.loginType
&wsse)&&me.servertime&&sinaSSOEncoder&&sinaSSOEncoder.hex_sha1){request.servertime=me.servertime;request
.nonce=me.nonce;request.pwencode="wsse";password=sinaSSOEncoder.hex_sha1(""+sinaSSOEncoder.hex_sha1(sinaSSOEncoder
.hex_sha1(password))+me.servertime+me.nonce)}}request.sp=password;

有点乱,下午继续写

/*********************************************/

无意间看了看别人的博客,真是好看啊.........

继续/***********************************/

上面的对密码的加密我们可以看到几个熟悉的字眼, rsa,sha1,都是加密方式

代码已经基本写完了,丢在github上了,突然想把代码丰富成舆情分析类的,择日继续写

微博登录及删除粉丝/转发/评论的脚本[更新中]相关推荐

  1. 模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)...

    在上一篇随笔中已经将如何发布动态呈现了,那么现在来看一下剩下的评论动态.回复评论.删除动态和评论功能,这几个功能会有点绕~~~ 一.思路如下: (1)你发表动态之后,会有人评论这一条动态,当评论之后, ...

  2. python+selenium实现微博登录和自动评论

    作为杨超越的粉丝,我并不甘心做一个完全的白嫖党,所以有时我也会帮忙做做数据,点点赞.刷刷评等.今天,我突发奇想,能不能用python实现自动化刷评呢?要实现这个想法肯定是要自动化登录微博的,于是有了以 ...

  3. Mac上python+selenium实现微博登录和自动评论

    最近开始追星,希望能给他尽一份力.本文是基于Win的微博自动评论的基础上,在Mac电脑上进行的微博自动化评论尝试,包含登陆微博和评论两大功能,该尝试是基于mac电脑,win电脑可参考Win的微博自动评 ...

  4. thinkcmf5 微博登录

    1.前端: <a href="{:url('user/login/weiboLogin')}" >微博登录</a> 2.后台: # 微博登录public f ...

  5. pythonurllib微博登录怎么删_Python骚操作之删微博还需用手动吗?Python去做就好了!...

    原标题:Python骚操作之删微博还需用手动吗?Python去做就好了! 导语 利用Python来自动删除微博说说! 最近被被「新浪微勃」恶心到了,事件详情请见 王思聪杀死微博 ,决定删除所有微博动态 ...

  6. 玩转微博之如何增加粉丝

    一.谷歌浏览器(Google Chrome) 谷歌Chrome首次超过IE成为全球第一大浏览器. 新浪微博助手 5个帐号之间快速切换.批量移除粉丝.隐藏广告.自动加载新微博! https://chro ...

  7. Android 微博登录

    最近公司有要求接入微博的登录,这里记录下最新的接入方法, 一 .首先你要自己去微博平台申请好  appkey . 二.Androidstudio 集成 1.在Project的build.gradle文 ...

  8. 电商企业微博营销:挖掘粉丝深层价值

    微博营销要产生价值,它的基础是"粉丝",所以有企业就不断的追求粉丝数量.我们暂且不讨论粉丝的质量如何,也不说粉丝数量的多寡如何,我想问有多少企业想过如何有效利用粉丝,让粉丝真正为企 ...

  9. SpringBoot+Vue实现第三方微博登录(二)

    1. 准备工作(官方文档:地址) 本步骤的作用: 接入微博登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 1.1 保存appid和a ...

  10. java加按钮_如何从零开始对接第三方登录(Java版):QQ登录和微博登录

    阅读本文约需要8分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了HashMap和TreeMap的知识,今天跟大家分享下对 ...

最新文章

  1. Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false”
  2. java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)...
  3. EV3 直接命令 - 第 5 课 从 EV3 的传感器读取数据
  4. 用Shell脚本在推出的RAC节点上批量部署32个Oracle11gR2 RAC备份恢复案例场景的方法PART2...
  5. react性能优化方案_React灵敏且性能卓越的Spray + Akka解决方案,以“在Java和Node.js中发挥并发性和性能”...
  6. 重载和重写以及重写的权限问题
  7. Linus 在圣诞节想提前放假做了这些解释,哈哈哈
  8. 论文浅尝 | 基于置信度的知识图谱表示学习框架
  9. 没有Dubbo Admin,怎么查看zookeeper中注册的dubbo服务?
  10. C# 入门笔记(脚本)
  11. HarmonyOS 2.0:正式开源,年底面向开发者发布智能手机 Beta 版本
  12. java基础类的继承_JAVA核心技术I---JAVA基础知识(类的继承)
  13. Linux基本命令之grep命令常见用法
  14. yum与apt-get的区别以及两者更新源(阿里/网易【163】)
  15. kafka报错 WARN Session 0x0 for server null, unexpected error, closing socket connection
  16. 机械盘阵高并发——使用ImDisk 与 junction显著提高整体吞吐性能
  17. 计算机乘法函数公式word,Word表格怎么用公式乘法
  18. 思维模型篇:行业商业分析案例详解
  19. 摘抄笔记 centos内核优化
  20. layui模板引擎文档 - layui.laytpl的具体使用

热门文章

  1. 微信小游戏制作坦克大战(一)微信小游戏制作工具介绍
  2. Win10能聊微信不能上网的解决方案
  3. 暴风影音怎么旋转视频?暴风影音旋转视频方法
  4. 那些年京东出现的BUG损失惨重,你还敢瞧不起测试?
  5. simulink upd通信
  6. 为什么html中图片显示不出来,网页图片不显示怎么回事?网页图片不显示的解决方法...
  7. sdn主要包含哪些接口_SDN概述
  8. QGis(一)加载栅格图层和矢量图层
  9. Django笔记09:一招解决使用regroup模板标签出现的重复分组问题
  10. python复数类型的虚部通过_Python 复数数据类型详解(complex)[学习 Python 必备基础知识][看此一篇就够了...