以下内容仅交流学习,请勿用于非法用途
为什么要模拟登陆腾讯企业邮箱呢?
就在前几天我收到了这么一封邮件
excuse me ? ? 我的邮箱居然满了,吓得我赶紧查阅了下自己的收件箱
因为公司有部分脚本会有邮件通知导致一堆无意义的邮件占满了我的邮箱存储空间
问题不大,满了删掉不就完事了
然而, 过程却没有那么顺利,
首先, 我尝试使用mac版网易云邮箱的一键清空邮件功能, 等待大约5分钟, 提示我"清空失败" !
我反复尝试几次均没能删除成功
然后, 我登录了腾讯企业邮箱的网页版, 经一顿乱点终于找到了清空指定文件夹邮件的功能,
但是, 网页端每次最多只能清空5000封邮件....我机灵的小脑袋转了起来,一共500000封,每次
删除5000封, 500000 / 5000, mmp想全部删除的话居然需要我连续点击50次,作为一个程序员
怎么能容忍这种重复性的操作呢!
于是便诞生了这篇文章
网站分析:
腾讯企业邮箱-登录入口exmail.qq.com首先我先输入了一个错误的密码,通过chrom抓包看下具体的登录所需参数
然后我看到了这么一堆东西, 要想登录得先post请求 https://exmail.qq.com/cgi-bin/login ,参数大
部分比较容易构造,但是其中有一个加密串p,这可咋办呢, 经验告诉我,不要慌 ! ! 我观察了所有请
求报文和响应报文,最终决定拿path"cgi-bin/login"尝试全局搜搜看, 经过阅读部分js
最终确定了请求是在这里发出的
https://rescdn.qqmail.com/bizmail/zh_CN/htmledition/js_biz/home/new_index/pkg47f67b.js
害 ! 简单, 把密码和时间戳进行RSA加密得到参数p, 公钥也在这里
不对! 等等, 似乎跟我想的不太一样, 这里这个hex2b64是什么意思, 是b64转16进制吗, 不行我得
瞅一眼源码
坏辽, 这一搜发现,这个RSA加密并不是我印象中的第三方包
https://rescdn.qqmail.com/bizmail/zh_CN/htmledition/js_biz/safeauth19d947.js
经过一顿阅读这个js文件, 我做出了重大决定, 放弃 !
加密过程太复杂, 要逆向实现起来工作量巨大, 用这个时间下盘棋他不香吗 ?
刚准备打开游戏的我,想了想, 作为21世纪的有志青年,怎么能把这么大好的时光浪费在游戏上
呢, 此时的我不禁陷入沉思, 有没有什么捷径呢, 对了! ! 谷歌, 写不出来, 我搜总行了吧, 白嫖别
人的成果不也挺快乐得嘛, 半小时过去了 .... 垃圾谷歌, 这都搜不到
就在我打算彻底放弃的时候, 突然有一束金光照到我的屏幕, 反射到我的眼睛, 啊,好刺眼, 我努
力睁开双眼, 感觉身体中又充满了力量, 一一得一,一二得二...九九八十一, 想到了 ! ! 我可以直
接执行他的js, 来获取这个加密参数!(此处纯属扯淡,如有雷同, 那他抄的我的)
于是我将整个js文件内容复制出来, 大概的阅读了内容, 在文件末尾添加了以下几行代码:
var
通过Python的第三方包 PyExecJS执行
PyExecJSpypi.orgwith
报错!! execjs._exceptions.ProgramError: ReferenceError: navigator is not defined
这个是因为我们python执行不能直接调用 navigator, 我们可以将js代码中的navigator相关部分
处理下
// 处理前
终于, 到这里就完成了登录接口参数的构造, 再往后的流程就是基本操作了