新浪邮箱模拟登录java
抓包分析
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相关推荐
- VC POST表单——登录验证新浪邮箱
1.本机环境: Windows XP SP3.ADSL 2.开发工具: WildPackets OmniPeek V5.1.4 Visual C++ 6.0 IE6.0 FlexEdit V2.3.1 ...
- Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
加油加油. --WH 一.发送邮件的原理 在了解其原理之前,先要知道两个协议,SMTP和POP3 SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协 ...
- web实验新浪邮箱、下拉小说列表、验证用户登录
html.css.js 新浪邮箱 下拉小说列表 验证用户登录 新浪邮箱 1.制作以下的新浪 邮箱登录界面: 要求: 1)首先给文本框制作细边框样式,当鼠标放在文本框上时,输入框的边框颜色发生变化,当鼠 ...
- Linux上的服务器无法调用新浪邮箱发送邮件
问题背景: 在web网站开发中,有许多功能的实现需要发送邮件,比如用户的密码找回功能,可能就需要通过服务器向用户的注册邮箱发送验证码邮件来实现.而发送邮件功能可以通过很多方式实现,比如HTML中的ma ...
- web开发(九) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6506027.html>,在此仅供学习参考之用. 一.发送 ...
- 破解sina新浪邮箱密码
这里我们采用sina新浪邮箱密码破解工具进行破解.关于QQ,微信,网络等问题可加技术人员QQ.616 99 58.邮箱密码破解工具是邮箱密码破解软件.破解器的统称.我们选择新浪邮箱密码破解工具好了,现 ...
- 华为手机自带邮箱如何添加新浪邮箱账号
1.登录PC端新浪邮箱 2.打开POP3设置 3.保存 4.华为自带邮箱,新增新浪邮箱账号和密码,确认即可. 转载于:https://www.cnblogs.com/cqxjzh/p/10997842 ...
- selenium新浪邮箱注册句柄切换实战
多窗口切换,新浪邮箱注册界面 from selenium import webdriver import time as t driver = webdriver.Chrome() driver.ma ...
- 新浪邮箱(@sina.com/@sina.cn):启用IMAP4/SMTP服务+授权码
新浪邮箱是由新浪公司(sina.com)提供的邮局服务,分为免费邮箱(@sina.com/@sina.cn/@2008.sina.com)和付费的VIP邮箱(@vip.sina.com). 不同于谷歌 ...
- 新浪邮箱SMTP开启
codeblocks 逐个创建c程序,每个程序都创建一个独立的工程, c程序编译报错,可以反复编译,一旦编译完成,谨慎再次编译.但可以随意运行. c程序头文件stdio.h, c++头文件iost ...
最新文章
- C#帮助类:MD5加密
- Windows Server 2016之RDS部署之添加RD网关
- 标准浏览器的选择器封装
- 小程序存emoji表情 不改变数据库
- 【技术综述】深度学习新手如何开始合适的“调参”任务
- 计算机一级单元格公式设置错误是什么原因,excel表格公式出错怎么解决,电子表格求和出错...
- MySQL 5.5 手册下载
- UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 24: invalid start byte
- python 面向对象 类的内置方法
- 栈的基本操作(C/C++)
- windbg内核诊断方式--转载
- java压缩图片thumbnails_Java压缩图片、减小图片文件体积大小,Thumbnails使用教程...
- 从Oracle迁移到MySQL的各种坑及自救方案
- [转载]JSP利用组件实现文件上传的全攻略
- 绘制交互流程图的方法
- 自适应滤波:递归最小二乘
- 书写软件之钢笔笔迹实现(一)
- MYSQL修改初始化密码的方法
- DBlink 入门案例
- C. Interesting Sequence
热门文章
- [源码]UnicodeTOGB,能够将Unicode串转换成GB码,方便开发。
- Linux 下文件和目录的特点
- 恢复训练记录20210809
- php 读取 eml,php如何读取解析eml文件以及生成网页的示例分享
- mysql .idb_mysql.idb
- 红外检测传感器的C语言,基于51单片机的红外反射式光电传感器测速机的简易设计...
- 3.5 Python 实例4-文本进度条
- android检测蜂窝网络,怎么检查您的Android设备蜂窝信号强度?
- Python函数之def定义函数
- Retrofit2 详解和使用(一)