抓包分析

1、破解用户名和密码

首先访问链接:

/*** stage 1*/
String url = "http://login.sina.com.cn/sso/prelogin.php?entry=cnmail&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.18)&_=" + new Date().getTime();

这步和新浪微博的模拟登录一样,因为新浪是使用SSO进行单点登录,所以前期破解步骤是一样的。
这一步获得:
在分析过程中,我们知道我们所输入的用户名和密码都是经过加密了的,用户名加密比较简单,是用Base64进行加密:

 public static String encode(String  str) {  byte[] bytes = URLEncoder.encode(str).getBytes();return new String(Base64.encode(bytes));}

而密码的加密是通过以下四个值进行加密:
加密js在http://2008mail.sina.com.cn/js/ssologin.js?ver=201610101这链接里面

nonce = obj.getString("nonce");
servertime = obj.getString("servertime");
pubkey = obj.getString("pubkey");
rsakv = obj.getString("rsakv");
password=sinaSSOEncoder.hex_sha1(""+sinaSSOEncoder.hex_sha1(sinaSSOEncoder.hex_sha1(password))+me.servertime+me.nonce)}}

把加密js抠出来以供我们来调用破解。
破解之后,我们设置header来请求链接:

http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)

2、获取部分cookies

/*** stage 2*/
String url2 = "http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.18)";
Map<String,String> headers = new HashMap<String, String>();
Map<String,String> params = new HashMap<String, String>();
params.put("su", encode(username));
params.put("service", "sso");
params.put("servertime", servertime);
params.put("nonce", nonce);
params.put("pwencode", "rsa2");
params.put("rsakv", rsakv);
params.put("sp", encoding(pubkey, servertime, nonce, password));
params.put("prelt", "122");
params.put("cdult", "3");

通过多次偿试返回header中的cookies只有以下三个值有用:

SUB=开头的值
SUBP=开头的值
sso_info=开头的值
SWEBAPPSESSID=开头的值

上面步骤只能获得前三个值,然后又发现SWEBAPPSESSID这个值是从访问以下这个链接来的,

3、获取完整cookies

http://m0.mail.sina.com.cn/?sid=XXXXXXXXXXXXXXXXXXXXXXX&a=1479276717769&b=1479276718751

面这个链接是从链接

http://mail.sina.com.cn/cgi-bin/sla.php?a=1479276717769&b=1479276718751&c=0&ssl=0

重定向而来的。那么我们首先访问这个链接获得目标链接,然后获得SWEBAPPSESSID的值。

终于获得所有的目标cookies,后面就可以愉快的爬取邮箱咯。

新浪邮箱模拟登录java相关推荐

  1. VC POST表单——登录验证新浪邮箱

    1.本机环境: Windows XP SP3.ADSL 2.开发工具: WildPackets OmniPeek V5.1.4 Visual C++ 6.0 IE6.0 FlexEdit V2.3.1 ...

  2. Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

    加油加油. --WH 一.发送邮件的原理 在了解其原理之前,先要知道两个协议,SMTP和POP3 SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协 ...

  3. web实验新浪邮箱、下拉小说列表、验证用户登录

    html.css.js 新浪邮箱 下拉小说列表 验证用户登录 新浪邮箱 1.制作以下的新浪 邮箱登录界面: 要求: 1)首先给文本框制作细边框样式,当鼠标放在文本框上时,输入框的边框颜色发生变化,当鼠 ...

  4. Linux上的服务器无法调用新浪邮箱发送邮件

    问题背景: 在web网站开发中,有许多功能的实现需要发送邮件,比如用户的密码找回功能,可能就需要通过服务器向用户的注册邮箱发送验证码邮件来实现.而发送邮件功能可以通过很多方式实现,比如HTML中的ma ...

  5. web开发(九) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

    在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6506027.html>,在此仅供学习参考之用. 一.发送 ...

  6. 破解sina新浪邮箱密码

    这里我们采用sina新浪邮箱密码破解工具进行破解.关于QQ,微信,网络等问题可加技术人员QQ.616 99 58.邮箱密码破解工具是邮箱密码破解软件.破解器的统称.我们选择新浪邮箱密码破解工具好了,现 ...

  7. 华为手机自带邮箱如何添加新浪邮箱账号

    1.登录PC端新浪邮箱 2.打开POP3设置 3.保存 4.华为自带邮箱,新增新浪邮箱账号和密码,确认即可. 转载于:https://www.cnblogs.com/cqxjzh/p/10997842 ...

  8. selenium新浪邮箱注册句柄切换实战

    多窗口切换,新浪邮箱注册界面 from selenium import webdriver import time as t driver = webdriver.Chrome() driver.ma ...

  9. 新浪邮箱(@sina.com/@sina.cn):启用IMAP4/SMTP服务+授权码

    新浪邮箱是由新浪公司(sina.com)提供的邮局服务,分为免费邮箱(@sina.com/@sina.cn/@2008.sina.com)和付费的VIP邮箱(@vip.sina.com). 不同于谷歌 ...

  10. 新浪邮箱SMTP开启

    codeblocks 逐个创建c程序,每个程序都创建一个独立的工程, c程序编译报错,可以反复编译,一旦编译完成,谨慎再次编译.但可以随意运行.  c程序头文件stdio.h,  c++头文件iost ...

最新文章

  1. C#帮助类:MD5加密
  2. Windows Server 2016之RDS部署之添加RD网关
  3. 标准浏览器的选择器封装
  4. 小程序存emoji表情 不改变数据库
  5. 【技术综述】深度学习新手如何开始合适的“调参”任务
  6. 计算机一级单元格公式设置错误是什么原因,excel表格公式出错怎么解决,电子表格求和出错...
  7. MySQL 5.5 手册下载
  8. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 24: invalid start byte
  9. python 面向对象 类的内置方法
  10. 栈的基本操作(C/C++)
  11. windbg内核诊断方式--转载
  12. java压缩图片thumbnails_Java压缩图片、减小图片文件体积大小,Thumbnails使用教程...
  13. 从Oracle迁移到MySQL的各种坑及自救方案
  14. [转载]JSP利用组件实现文件上传的全攻略
  15. 绘制交互流程图的方法
  16. 自适应滤波:递归最小二乘
  17. 书写软件之钢笔笔迹实现(一)
  18. MYSQL修改初始化密码的方法
  19. DBlink 入门案例
  20. C. Interesting Sequence

热门文章

  1. [源码]UnicodeTOGB,能够将Unicode串转换成GB码,方便开发。
  2. Linux 下文件和目录的特点
  3. 恢复训练记录20210809
  4. php 读取 eml,php如何读取解析eml文件以及生成网页的示例分享
  5. mysql .idb_mysql.idb
  6. 红外检测传感器的C语言,基于51单片机的红外反射式光电传感器测速机的简易设计...
  7. 3.5 Python 实例4-文本进度条
  8. android检测蜂窝网络,怎么检查您的Android设备蜂窝信号强度?
  9. Python函数之def定义函数
  10. Retrofit2 详解和使用(一)