js逆向教程1:某某威客登录

假设不会js语法来进行js破解

本文感谢挖掘机小王子提供的帮助

挖掘机小王子的github:https://github.com/EnjoyScraping

网站的登录接口

我们可以准备一组常用的账号密码,并记下对应的MD5、base64等密文,以后抓包会直观看出采用什么加密方式

登录手机号密码
66666666666666666

输入
在这里插入图片描述
在这里插入图片描述
Formdata有两个加密参数f分别是formhash、pwd_password
全局搜索formhash有如3个下js包含formhash单词

  • Common.js
    在这里插入图片描述
    根据js规则n("#字符串").val() 【ps:val() 方法返回或设置被选元素的值】,我们知道这个formhash可能被插入到html或者从html中提取,可以在此处打上断点
  • showdialog.js

在这里插入图片描述
根据名称猜测这是获得新的formhash值,我自己也看不懂,继续

  • login_and_reg.js
    这里有11个匹配先看最像的

在这里插入图片描述
265行首先函数的名字叫‘用户登录user_login’
283行cheackform译为‘’检查form表单‘’,百度JS语法中Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。没跑了就是它
278行不难猜出是对输入的数据合法性校验
那我们对287-295行参数进行分析

分析formhash:i

	i = $("#formhash" + l).val()

基础语法知识:
https://www.jianshu.com/p/99669d012404
https://www.w3school.com.cn/jquery/attributes_val.asp
JS中$
JS应用库JQUERY的作者将之做为一个自定义函数名了,这个函数是获取指定网页元素的函数,$ 相当于一个匿名函数,函数名
2.相当于定义一个\ $ 函数,返回的是通过id去获取对应的html元素
val() 方法返回或设置被选元素的值。
结论i =(html表单formhash标签的值 + l)其中l在266行定义为空字符串
验证方法:自己去html搜出来然后运行下

分析txt_account:t

从抓包工具返回formdata看,他就是‘’用户登录手机号‘’,以学习为主这里也进行推理

var t = (t = $("#txt_account" + l).val()) || $("#txt_account1" + l).val()
从html获得(txt_account的值+空字符串) ||html获得(txt_account1的值+空字符串) //就是两种登录方式的用户名输入栏呗

html中txt_account搜索结果
在这里插入图片描述
html中txt_account1不存在
推断是另一个登录接口,有可能是微信扫码
根据语法规则判断出他就是‘’用户登录手机号‘’

分析pwd_password: e

从抓包工具返回formdata看定义的名称看,他就是‘’用户登录密码‘’,以学习为主这里也进行推理

e = $("#pwd_password" + l).val()
      , e = hex_md5(e)
从html获得(pwd_password的值+空字符串),再使用md5()函数进行运算

我们知道MD5是一种常用加密方式,但是在有些项目中,有些网站可能修改了MD5的加密源码,这里需要测试,以密码输入’666666’为例,生成了32位的密文
在这里插入图片描述
在这里插入图片描述
测试的结果一致,可以直接使用MD5参数
拓展:假设MD5函数不是源码,应该怎么把生成函数从众多文件剔出来

分析login_type: 3

没啥分析的,固定参数为3

分析 ckb_cookie: 1 == s ? 1 : 0

看名称是和cookie有关的,因为使用的bool值表示,斗胆猜测是cookie是否存在或者是否设置cookie的开关
在这里插入图片描述

 s = $(":checkbox[name='autologin']").is(":checked")
 从html获得name='autologin'的选中框是否被选中,对应是否自动登录,那这就懂了,根据测试当打钩时其值1会生成登录后的cookie,

那其实ckb_cookie: 1 == s ? 1 : 0可以这么看,1==s 真就为1,假为0,这里的问号相当于映射

分析 hdn_refer: a

refer这个单词很常见,在HTTP 请求的头信息里面,Referer 是一个常见字段,提供访问来源的信息
refer的介绍
而且在抓包工具中formdata中这是明文’'https://www.epwk.com/‘’
这里我们假装不知道,来分析下

 a = $("#hdn_refer_mobile" + l).val()
 html中找到hdn_refer_mobile属性

在这里插入图片描述

分析 txt_code: t || “”

var t = $("#mobile_code" + l).val()
根据英文mobile_code是手机验证码,老规矩html里搜mobile_code,为了方便切换到手机登录

在这里插入图片描述

分析 pre: d || “”

d = $("#code_pre" + l).val()
html里找

在这里插入图片描述
找到是找到了,但是很好奇这个是什么,于是删除hidden属性看一下
在这里插入图片描述
原来是一个输入框

分析 inajax: 1

默认数字,没啥分析的

万能方法:调试

以上分析思路也可以使用打断点调试的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值