JS逆向day02-空中网登录逆向

空中网登录逆向

空中网登录逆向相对来说难度不高,但是也有碰到许多坑,故写下此日志记录爬坑

接口解析

空中网的登录接口采用目前少见的get请求来设置cookie登录,但其中参数是有加密的,我们此次的目标就是逆向出其中的加密方式,首先我们来看一下登录get请求中需要的参数

可以见到基本的参数是显而易见的,username也没有加密,只有password_两个参数是我们需要探讨的东西

这时候的思路一般往两个方面衍生,1.通过监听事件调试跟进我们需要的加密函数 2.搜索关键词找到我们需要的加密函数 鉴于关键词越不偏僻越不好搜的原则我们这里采用监听事件 可以很容易定位到我们想要的关键函数

我们在此函数下个断点更进看看有什么收获.

F11不断跟进之后会发现我们来到了VM文件,VM是浏览器为匿名函数创建的内存空间,是无法清除的。
匿名函数需要运行,首先需要有一块内存空间来存储它,这块内存空间显示在浏览器调试信息中就是以VM开头的文件(但是其实并非真正的文件)
。右下角可以看见文件真正的来源是另一个JS文件中的eval语句,这也是十分常见的一种JS加密方式,使用chrome浏览器的大括号展开可以得到可读的关键函数代码.

可以发现login这个函数传入了很多参数 username,password等等 初步判断加密过程就在这里面,继续F11跟进找到关键代码

经常逆向或者英语同学好的同学知道encrypt就是加密的意思,并且上下行代码也是之前所衔接的参数,所以这函数应该就是我们所需要的加密函数.此时我们可以选择python模拟加密过程进行加密,或者通过直接调用JS函数的方式来实现加密,为了节约时间我们使用第二种方式来进行加密.所以我们只要了解所需要传入的参数就OK,第一个显而易见是我们的密码,第二个则是j_data数据里面的dc变量,通过短暂的分析可以得到dc变量来自于上一个请求中的rep,所以我们传入python时获取上一个请求就能获得我们想要的DC变量.

到这里password的逆向已经结束了,剩下的_如果不逆向JS文件的话通过不断的发送请求可以看出是13位时间戮,逆向的话则可以看见temptime这个参数,简而言之就是不难拿到这个参数的值.

至此空中网的逆向就告一段落了.

后记(心得体会)

  1. 小编一开始是用charles代理js文件来解密eval加密函数进行动态调试的,后面才发现原来强大的chrome浏览器有VM模式功能,算是一个小小的坑.
  2. 通过python的requests库中的session会话来保持会话完全模拟从主页面到login等协议请求的cookie获取
  3. 刚写完代码时,提交请求返回的是操作太过频繁,本以为是频繁恶意操作被banIP了,结果换了个IP代理发现还是这样,结合JS文件中对temptime的时间间隔判断(原JS文件只有间隔过长返回NULL的判断,间隔过段的判断应该是在后端,只是联想到了是否有这种可能).于是采用了python文件的time模块的sleep函数等待几秒发现status状态返回成功了.
  4. 虽然可能看日志觉得逆向很快,但还是要一步一步慢慢调试,才获取到的这些信息

my github

欢迎来全世界最大的同性交友网站和我一起学习交流

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值