一步一步教你刷【极客学院VIP会员】(二)之抓包分析

准备工作

还没有看过《一步一步教你刷【极客学院VIP会员】(一)之原理分析》的读者,请先移步到这里

先注册好一个极客学院的账号,然后进入到http://e.jikexueyuan.com/invite/invite.html

小编使用的测试浏览器是Chrome 版本 46.0.2490.86 (64-bit)

开始着手

http://e.jikexueyuan.com/invite/invite.html 页面截图:

http://7u2ne2.com1.z0.glb.clouddn.com/jikexueyuan_01.png

走一遍正常邀请小伙伴的流程

  • 随便填一个手机号码,手机验证码也随便填,开好chrome的网络调试工具,点击注册,抓包得到的请求信息如下图:

我们可以看到请求的地址是:
http://passport.jikexueyuan.com/submit/reg_phone

参数有:

jsoncallback:jQuery21305480092712678015_1450081324705 //可无视,可以不传
is_ajax:1 //固定内容,写死就行
phone:13787876566 //注册的手机号码,飞码接口得到的手机号码
verify_code:123123 //短信验证码,飞码接口接收到的短信验证码
password: //密码,自己设定
verify:0631 //图形验证码,云速接口识别
event:friend_code //固定内容,写死就好
from_code:VSRU50 //这就是我们寻寻觅觅的邀请码,还不知道怎么得到
refrere:http://e.jikexueyuan.com/invite/index.html?ZnJvbV9jb2RlPVZTUlU1MCZ1bmFtZT1oZWxsc2FtJmNoYW5uZWw9aW52aXRlXzEwMHdfc2hhcmVidXR0b25fY29weTE= 
//邀请的地址,就是我们之前打开进入注册页面的地址,还不知道怎么得到
client:www //无视,可以不传
_:1450081324713 //无视,可以不传

通过程序员的直觉分析,from_code就是所谓的邀请码,是跟用户账号一一对应的。

那这个邀请码是从哪里来的呢???

于是乎,小编又去请求了一遍http://e.jikexueyuan.com/invite/index.html?ZnJvbV9jb2RlPVZTUlU1MCZ1bmFtZT1oZWxsc2FtJmNoYW5uZWw9aW52aXRlX3NoYXJlYnV0dG9uX2RpcmVjdDA0,通过抓包查看各种返回信息,又查看网页源代码,依然未能发现VSRU50的踪迹。

正当迷惑不解的时候,喝了一瓶AD钙奶,顿时思如泉涌_

想到在邀请页面不管是通过第三方分享还是直接复制得到最终有用信息都只是一个链接。因此通过程序员第六感判断,邀请码信息肯定藏在这个链接中。此时我注意到了链接后面的一长串内容

ZnJvbV9jb2RlPVZTUlU1MCZ1bmFtZT1oZWxsc2FtJmNoYW5uZWw9aW52aXRlX3NoYXJlYnV0dG9uX2RpcmVjdDA0

这一看就知道是Base64加密的,不要问我是怎么知道的_

赶紧找一个Base64在线解密网站http://www1.tc711.com/tool/BASE64.htm,(随便百度到的,这样的网站很多), 解码结果如下图:

from_code=VSRU50&uname=hellsam&channel=invite_sharebutton_direct04

终于见到熟悉的VSRU50,此时就如梦中情人突然出现了在你的面前般的兴奋。

这几个参数也都比较好理解

from_code=VSRU50 //邀请码
uname=hellsam  //邀请人的用户名
channel=invite_sharebutton_direct04  //固定内容

此时,隐隐的觉得好像哪里不太多,邀请码是通过解密链接中的加密内容得到的,链接中的加密内容又是邀请码和用户名等信息加密得到的,好像进入死循环了@_@

真是百思不得其姐~

再重新理一下思路,后台应该是新用户注册了,就会为该用户生成一个唯一的邀请码,此时就有两种猜想:

  • 后台传到前端的就是链接后面的ZnJvbV9jb2RlPVZTUlU1MCZ1bmFtZT1oZWxsc2FtJmNoYW5uZWw9aW52aXRlX3NoYXJlYnV0dG9uX2RpcmVjdDA0这段内容。

  • 后台传到前端的是from_code=VSRU50&uname=hellsam&channel=invite_sharebutton_direct04这些内容,再加密成链接给用户看到的。

根据程序员的第六感判断,第二种应该更靠谱一些,所以优先尝试第二种。

下面抓下登录的包看看,返回的信息里面有没有我们要的信息。抓包截图如下(记得勾上Preserve log不然页面跳转了之前的记录就没有了):

请求地址:

POST http://passport.jikexueyuan.com/submit/login?is_ajax=1&client=www

请求参数:

expire=7&referer=http%3A%2F%2Fwww.jikexueyuan.com%2F&uname=hellsam&password=xxxxxx&verify=1392

注意Response Headers里面的信息,里面unamecode都有,终于所有需要的信息都可以得到了✌️

经过实践,注册成功的Response Headers里面同样有这些信息,那么只要注册成功后把邀请码和用户名存起来,之后邀请链接后面的一串加密内容也可以通过邀请码和用户加密得到了。

总结一下

  • 每个账号注册成功后,把获取到的用户名和邀请码保存起来

那么注册接口里面的参数就都能获取到了

jsoncallback:jQuery21305480092712678015_1450081324705 //可无视,不用传
is_ajax:1 //固定内容,保持一致就行
phone:13787876566 //注册的手机号码,飞码获取的手机号码
verify_code:123123 //短信验证码, 飞码获取的短信验证码
password: //密码,可以随机生成密码,也可固定一个
verify:0631 //图形验证码, 用云速识别
event:friend_code //固定内容, 保持一致就行
from_code:VSRU50 //这就是我们寻寻觅觅的邀请码,已经存下了
refrere:http://e.jikexueyuan.com/invite/index.html?ZnJvbV9jb2RlPVZTUlU1MCZ1bmFtZT1oZWxsc2FtJmNoYW5uZWw9aW52aXRlXzEwMHdfc2hhcmVidXR0b25fY29weTE= 
//邀请的地址,就是我们之前打开进入注册页面的地址,后面这段`from_code=邀请码&uname=用户名&channel=invite_sharebutton_direct04`Base64加密这段信息就能得到了
client:www //无视
_:1450081324713 //无视

这时,我们可以判断,这个方案是可行的,接下来就差代码实现了_

本文只做纯粹的技术探讨。

敬请期待《一步一步教你刷【极客学院VIP会员】(三)之代码实现》

因本文内容具有一定时效性(当极客学院网站有改动后,本文方案可能就无效了),所以还请正在阅读本文的你如果发现本文方案已失效,在评论区提醒小编和其他读者,万分感谢!

<span style="color:#18DDDD"><strong>欢迎留言交流,如有描述不当或错误的地方还请留言告知。</strong></span>

自建博客: http://hellsam.com/

CSDN博客: http://blog.csdn.net/qp23401

简书博客: http://www.jianshu.com/users/8af058e7d824/latest_articles

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 灵感 如上图,极客学院有个活动是邀请小伙伴注册极客学院的账号就可以得到30天的VIP会员,每个账号最多邀请12个小...
    hellsam阅读 12,581评论 5 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,273评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,676评论 25 709
  • 1 - 线程安全的定义 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行...
    彬彬酱阅读 2,594评论 0 12
  • 即将又是一周,我要去上班吗?我该何去何从?如果去上班,就再不能陪孩子出去玩儿了?可是我自己呢?还是去吧?
    希望的今天明天阅读 215评论 0 0